狠狠撸

狠狠撸Share a Scribd company logo
grpc-gatewayを試してみた
@saboyutaka
2018/06/14
Fukuoka.go #11
● 立花 豊(@saboyutaka)
● 福岡県北九州市出身 -> 東京 -> 沖縄
● ギークハウス沖縄オーナー
● フリーランス/リモート/Webエンジニア
● Rails/Laravel/Go/Python/AWS/Azure
● okinawa-go
● 最近、Microservices, k8sなんかに興味あります
自己紹介
最近のトレンド
Microservers
● コンポーネントをサービスごとに切り小さなサービス群をたくさん作ってたくさんの
サービスが連携することで1つのサービスを運用する
Microservers
● 各サービスはHTTP(S) のAPIを持ちJSONベースで通信する
● REST-ishなAPIを持つ
● Swaggerなどのドキュメントで開発者間のやりとりを行っていた
これまでのMicroservers
● REST APIをつくるサービスをどうやって作るか
○ Go? Rails? Laravel? Express?
● Swaggerと実装が乖離しないようにメンテするのが面倒
● Goで書くとしてJSON marshal/unmarshal がつらい
これまでのMicroserversの問題点
gRPC
● Google製のRPCプロトコル
● Protocol Buffersでインターフェースを定義 (default)
● クライアント、サーバーの実装のinterface, stubを自動生成
○ Go, PHP, JavaScript, Ruby, Python, Java, C++, etc...
gRPC
grpc-gateway
https://github.com/grpc-ecosystem/grpc-gateway
● gRPCのサーバーの手前に立てるリバースプロキシを定義
● このgatewayはHTTPSをしゃべれる
● grpc-gatewayの設定でURLを定義し、呼び出される処理はgrpcのサーバーに記述
する
grpc-gateway
w/o grpc-gateway
sample.proto
with grpc-gateway
protoc でserver, gateway, docs, swaggerを生成
蝉别谤惫别谤(驳搁笔颁侧)の実装
驳补迟别飞补测の実装(ほぼおまじない)
実行してみる
Swagger
docs
● 通信の定義はprotocファイルを見ればわかる
● サーバー実装はgrpcが対応している言語であれば何でも良い
● protocからSwagger, docsを自動生成できる
● HTTPSの通信が必要なところはgrpc-gatewayで実装し、他のmicroservicesは
grpcで書ける
grpc-gatewayで書くメリット
ご清聴ありがとうございました
https://github.com/saboyutaka/grpc-gw-sample

More Related Content

What's hot (10)

PDF
RxSwift
Kosuke Usami
?
PPTX
10分て?わかるOpenAPI V3
Kazuchika Sekiya
?
PDF
Sansan様 登壇資料
Daisuke Nagata
?
PDF
Rx swift,Repro framewolrk
Daisuke Nagata
?
PPTX
Editorlt
Masaki Suzuki
?
PDF
搁虫厂飞颈蹿迟のテ?ータハ?インテ?ィンク?た?け
Hironytic
?
PPTX
Our Track to Modern Angular
Yuta Shimizu
?
PDF
搁别补肠迟.箩蝉でサービスを作ってみた话
GIG inc.
?
PDF
搁别补肠迟狈补迟颈惫别を语る勉强会
yohei sugigami
?
PPTX
骋颈迟を使おう
takemaedenki
?
RxSwift
Kosuke Usami
?
10分て?わかるOpenAPI V3
Kazuchika Sekiya
?
Sansan様 登壇資料
Daisuke Nagata
?
Rx swift,Repro framewolrk
Daisuke Nagata
?
Editorlt
Masaki Suzuki
?
搁虫厂飞颈蹿迟のテ?ータハ?インテ?ィンク?た?け
Hironytic
?
Our Track to Modern Angular
Yuta Shimizu
?
搁别补肠迟.箩蝉でサービスを作ってみた话
GIG inc.
?
搁别补肠迟狈补迟颈惫别を语る勉强会
yohei sugigami
?
骋颈迟を使おう
takemaedenki
?

Similar to grpc-gateway を試してみた fukuoka.go#11 (20)

PPTX
20200807勉强会词驳搁笔颁に入门しよう词
TatsuyaKono1
?
PDF
驳搁笔颁入门
ssuser0f153f
?
PPTX
驳搁笔颁を使ったメディアサービス
gree_tech
?
PDF
驳搁笔颁入门
Kenjiro Kubota
?
PDF
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
虎の穴 開発室
?
PPTX
Web socket and gRPC
TIS Inc
?
PDF
gRPC と nginx による HTTP/2 サービスメッシュ構築
Kazuki Ogiwara
?
PPTX
gRPCurlDotNet.pptx
Takao Tetsuro
?
PDF
RakSulのInternal API開発で gRPCを導入した話
nixiesan
?
PDF
驳搁笔颁をちょこっと调べた话
Shuzo Kashihara
?
PDF
CloudSpiral 2014年度 Webアプリ講義(2日目)
Shin Matsumoto
?
PDF
lua_nginx_module JSON-RPC 2.0 Batch Request
mosa siru
?
PDF
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
?
PPT
about Thrift
Naoya Ito
?
PDF
20120423 hbase勉強会
Toshiaki Toyama
?
PDF
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
?
PDF
【狈骋滨狈齿セミナー】 滨苍驳谤别蝉蝉を使ってマイクロサービスの运用を楽にする方法
NGINX, Inc.
?
PDF
PaaSの作り方 Sqaleの場合
hiboma
?
PPT
Thrift
guestf259ae
?
PDF
骋碍贰と驳搁笔颁で実装する多言语対応?スケーラブルな内部础笔滨
BrainPad Inc.
?
20200807勉强会词驳搁笔颁に入门しよう词
TatsuyaKono1
?
驳搁笔颁入门
ssuser0f153f
?
驳搁笔颁を使ったメディアサービス
gree_tech
?
驳搁笔颁入门
Kenjiro Kubota
?
【とらのあなラボ Tech Day #3】新規システムにおける技術選定?GoとgRPCを採用した話?
虎の穴 開発室
?
Web socket and gRPC
TIS Inc
?
gRPC と nginx による HTTP/2 サービスメッシュ構築
Kazuki Ogiwara
?
gRPCurlDotNet.pptx
Takao Tetsuro
?
RakSulのInternal API開発で gRPCを導入した話
nixiesan
?
驳搁笔颁をちょこっと调べた话
Shuzo Kashihara
?
CloudSpiral 2014年度 Webアプリ講義(2日目)
Shin Matsumoto
?
lua_nginx_module JSON-RPC 2.0 Batch Request
mosa siru
?
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
?
about Thrift
Naoya Ito
?
20120423 hbase勉強会
Toshiaki Toyama
?
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
?
【狈骋滨狈齿セミナー】 滨苍驳谤别蝉蝉を使ってマイクロサービスの运用を楽にする方法
NGINX, Inc.
?
PaaSの作り方 Sqaleの場合
hiboma
?
骋碍贰と驳搁笔颁で実装する多言语対応?スケーラブルな内部础笔滨
BrainPad Inc.
?
Ad

More from Yutaka Tachibana (8)

PDF
骋谤补辫丑蚕尝はどんな时に使うか
Yutaka Tachibana
?
PDF
ク?ラフモテ?ルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
Yutaka Tachibana
?
PDF
サーバーサイドから見るGraphQL Serverless Meetup #19
Yutaka Tachibana
?
PDF
Playing capitalism game as engineer
Yutaka Tachibana
?
PDF
笔丑辫蝉迟辞谤尘を使いこなす
Yutaka Tachibana
?
PDF
キ?ークハウス沖縄rebuild with リノヘ?スイッチ
Yutaka Tachibana
?
PDF
搁耻产测の実装を搁耻产颈苍颈耻蝉で便利
Yutaka Tachibana
?
PDF
Ruby and I at 神奈川Ruby会議01
Yutaka Tachibana
?
骋谤补辫丑蚕尝はどんな时に使うか
Yutaka Tachibana
?
ク?ラフモテ?ルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
Yutaka Tachibana
?
サーバーサイドから見るGraphQL Serverless Meetup #19
Yutaka Tachibana
?
Playing capitalism game as engineer
Yutaka Tachibana
?
笔丑辫蝉迟辞谤尘を使いこなす
Yutaka Tachibana
?
キ?ークハウス沖縄rebuild with リノヘ?スイッチ
Yutaka Tachibana
?
搁耻产测の実装を搁耻产颈苍颈耻蝉で便利
Yutaka Tachibana
?
Ruby and I at 神奈川Ruby会議01
Yutaka Tachibana
?
Ad

Recently uploaded (9)

PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
色について.pptx .
iPride Co., Ltd.
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?

grpc-gateway を試してみた fukuoka.go#11