Slide 1

Slide 1 text

(PͰH31$Λ࢖ͬͯΈͨ DesignOne Go #4 by Nayu T. S.

Slide 2

Slide 2 text

自己紹介 • 名前: Nayu T. S. • SNS:@tasotasoso • 仕事:インフラがメイン / AWSとか • 趣味: ビール • Go歴:3ヶ月くらい

Slide 3

Slide 3 text

話したいこと • gRPCとProtocol Buffersを使ってみた ü Goからライブラリを使うだけで簡単なのでぜひ • Dockerで動かしてみた ü Goサーバーの知識があればOK ! Dockerの勉強にも。

Slide 4

Slide 4 text

理想 どのサービスにも共通して使えるインターフェースを 約束する必要がある。 新規契約、 氏はXXX 名はXXX、 電話は△△△-XXX- ○○○ 契約種別 氏・名 電話番号 を文字列で送って。 結果を文字列で 送って。 gRPC& ProtocolBuffers こんなサービスがあったら嬉しい。 水道屋さん ご契約ありがとう ございます! (Go) 電気屋さん (Ruby) ご契約ありがとう ございます! ガス屋さん (Java) ご契約ありがとう ございます!

Slide 5

Slide 5 text

gRPCとは 1. Protocol Buffers(IDL)で、 インターフェース(型付き)を定義する。 2. 様々なプログラミング言語のコードを 自動生成する。 3. HTTP2上で動作する。 - 単項gRPC - ストリームgRPC 様々な環境で動作するハイパフォーマンスRPC (Remote Procedure Call)フレームワーク。 特徴 What is gRPC? から引用

Slide 6

Slide 6 text

実際にやってみる フロント サーバー (Go) 契約サービス ( Go ) http 単項gRPC ▼申し込み画面 ▼申し込み結果画面 コンテナ コンテナ ローカル コードはgithubにあります。https://github.com/tasotasoso/go-gRPC

Slide 7

Slide 7 text

Protocol Buffers ▼今回の.protoファイル protocコマンド & protoc-gen-go ▼生成したGoのコード 構造化データをシリアライズする仕組み。XMLなどより軽い。

Slide 8

Slide 8 text

gRPC Client側

Slide 9

Slide 9 text

gRPC Server側

Slide 10

Slide 10 text

Dockerで動かしてみる Step1 Step2 Step3 • gRPC & Protocol Buffers の使い方 • Goサーバーのdocker化の方法 • Docker-composeの使い方 • Docker間通信の仕方 Goサーバー間の通信さえ分かれば、あとはDockerの勉強が中心になった。

Slide 11

Slide 11 text

まとめ • Protocol Buffersで作ったgRPCのGoコードを使うだけで、 簡単にgRPC通信が実装できた。 • GoサーバーをDockerで動かすネタとしても良かった。 ↑ gRPCならではの実装ではなく、サーバーとDockerの開発に 専念できた。

Slide 12

Slide 12 text

参考文献 • gRPC に Go言語 で入門する方法(環境構築から通信まで) https://webbibouroku.com/Blog/Article/grpc-sample • 単項RPCのサンプル https://github.com/vvatanabe/go-grpc-basics/tree/master/echo • gRPC https://grpc.io • Protocol Buffers https://developers.google.com/protocol-buffers/

Slide 13

Slide 13 text

おわり