GitHub hokaccha
Comment7
Like
Created atMarch 23, 2019 17:32
Updated atMarch 23, 2019 17:32

Questions and feedbacks (7)

hokaccha
hokaccha commented 4 months

公式のgrpcジェネレータでは達成できなかった内容(主な内製理由)はどのようなものがありますか?

マルチプロセスの問題、Graceful Shutdown などの問題です。詳しくはこちらによくまとまっています。 https://speakerdeck.com/ganmacs/grpc-in-cookpad

Like(0)

hokaccha
hokaccha commented 4 months

Cookpad社ではEnvoyを使っている話が昨日あがりましたが、nginxとの組み合わせはどのようにやっているのでしょうか?

gRPCのフロントや service mesh の data plane には envoy、gRPC以外の reverse proxy には nginx という感じです。nginx のレイヤーが envoy に置き換わっていく可能性もあるかもせんが、今のところは未定です。詳しくはこちらを。 https://techlife.cookpad.com/entry/2018/05/08/080000

Like(0)

hokaccha
hokaccha commented 4 months

デザインの統一やボタン配置といった、複数のチーム間で揃えないといけないユーザ体験はどのようにコントロールしているのでしょうか

sara という UI フレームワークがあります。内製の Bootstrap のようなものです。昔の資料ですがこちらを参照ください。 http://cssnite.jp/lp/lp26/CSSNiteLP26-s9-ikeda.pdf

Like(0)

hokaccha
hokaccha commented 4 months

Aggrigation LayerとしてのGraphQLという話が出ましたが、grpcやREST APIとの使い分けはどういう視点で考えられてるんでしょう?

バックエンドのマイクロサービスは gRPC や REST などで機能単位で実装し、BFFやモバイルアプリなどは、裏にどういうサービスがいくつかるのかを意識せずに GraphQL だけにクエリする、ということができればいいのかなと考えています。もしからしたら GraphQL は必要なくて、フロントのほうも各サービスのgRPCを呼び出すのでも済むかもしれませんし、まだ構想中なのでたしかなことは言えないです。すいません。

Like(0)

hokaccha
hokaccha commented 4 months

ガラケー版は基本的にメンテナンスしてない、とのことですが、アクティブに開発されているアプリケーションに起因する変更によってガラケー版が壊れたりすることはないのでしょうか?また、壊れたときは直すと思うのですが、そのメンテナンスコストは払えているのでしょうか?

します!その場合はもちろん直しますし、そのメンテナンスコストが払えないのでサービスを分離したいと思っています。

Like(0)

hokaccha
hokaccha commented 4 months

Webのフロントエンドはマイクロ化できますが、iOS/Androidアプリの場合はどのように解決されているのでしょうか

こちらはまた別アプローチで、内部のモジュール単位ごとに分割していくという戦略です。詳しくはこちらをごらんください。 https://speakerdeck.com/giginet/cookpad-techconf-2019-xia-gaguan-kutukupatudoiosapurifalse-po-huai-tochuang-zao-sositewei-lai

Like(0)

hokaccha
hokaccha commented 4 months

grpcはhttp2が必要だと思うのですが、railsでgrpcをやり取りする場合の実装はどうされているのでしょう? 内製のgrpc gemでカバーしているんでしょうか? (本題でないのでということであれば懇親会で聞きます)

はい、そのあたりは以下のgemで実装されています。 https://github.com/cookpad/grpc_kit

http2の部分でいうと、上記gemが依存している以下のgemですね。 https://github.com/tenderlove/ds9

Like(0)

This software is available as open source under the terms of the MIT License.
Copyright © 2018 Yoshiyuki Hirano