🦮

gRPC トレイルマップ

2022/10/11に公開

はじめに

gRPC について、そこそこ勉強したので、やったこと&やりたいこと、参考にしたドキュメントを整理してみる。
gRPC 気になっていくつか技術ブログ読んだけどいまいちわからんって人のちょっとした道標になれたらいいなと思う。

トレイルマップ

準備

どの技術ブログもある程度、ここら辺を前提としてる気がします。
完全に理解してなくても良いと思うけど、分かりやすそうな記事を眺めるなどして雰囲気掴んでないと gRPC の説明みてもよくわからんと思う。
最後の、Go 言語を読めるってのは、少し敷居高いけど、groutineとか Go 特有の概念以外を読めるようになっておくと、情報収集しやすい気がしてる。

  • REST API について説明できる
  • HTTP/2 と HTTP/1.1 について説明できる
  • スキーマ駆動開発について説明できる
  • マイクロサービスについて説明できる
  • (Go 言語を読める)

お試し

次に、gRPC の本とか自分の好きなコードで書かれてる試してみた系記事を読みながら試してみるのが良いと思う。Go とか TypeScript は情報見つけたけど、他の言語だとどうかよくわからん。

  • gRPC と Protocol Buffers の概要を説明できる
  • proto3 ファイルで、スキーマを定義したことがある
  • Unary RPC の proto を書いて、サーバーとクライアントのコードを生成したことがある
  • 生成されたコードを利用してサーバー・クライアント間で通信したことがある
  • CLI/GUI の grpc クライアントから呼び出したことがある
  • メタデータをやりとりしたことがある

ここらの情報が整理されててよかった。
サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ
スターティング gRPC (技術の泉シリーズ(NextPublishing)) | 武上 将樹 | 工学 | Kindle ストア | Amazon
作ってわかる! はじめての gRPC
gRPC and REST with gRPC in practice - Speaker Deck

応用

まだ、やってないけど、次はここらを試していく感じかなと思ってる。
ただ、サーバー側のインターセプタは TypeScript では実装されていなさそう。
言語仕様的になくて、大丈夫やからなのか、単純に対応できてないからなのか、よくわからない。

  • ストリーミングを実装したことがある
  • インターセプタを導入したことがある
  • 認証を実装したことがある

運用

最後に、ここらかなと思う。

  • proto と自動生成したコードを良い感じに管理できる
  • CICD でいい感じにコード・パッケージを管理できる
  • クラウド上で実装できる
  • ロードバランシングを良い感じに実装できる

ロードバランシングとかクラウド上での実装とかは、ここらが分かりやすかった。まだ実践できてないけど。
gRPC サーバーを AWS 上で動かす|作ってわかる! はじめての gRPC
Kubernetes 上で gRPC サービスを動かす | Taichi Nakashima
gRPC のロードバランシング - はこべにっき ♨

コード管理はここら。
Protocol buffers の proto ファイルの管理と配布 - Qiita
gRPC の各言語向けパッケージ生成を一括管理する - Qiita

CICD はこの辺。
npm モジュールを GitHub Actions で GitHub Packages にデプロイする | 豆蔵デベロッパーサイト

おわりに

gRPC を学ぶときに必要な情報をざっと集めて整理してみた。
なんとなくな知識なので、ご指摘ウェルカムです。

GitHubで編集を提案

Discussion