Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Comparison between Golang microservices frameworks
y_matsuwitter
April 23, 2016
Programming
4
1.7k
Comparison between Golang microservices frameworks
GoCon 2016 Springにて
y_matsuwitter
April 23, 2016
Tweet
Share
More Decks by y_matsuwitter
See All by y_matsuwitter
ymatsuwitter
21
9.1k
ymatsuwitter
2
2.7k
ymatsuwitter
2
1.4k
ymatsuwitter
0
1.7k
ymatsuwitter
32
43k
ymatsuwitter
1
610
ymatsuwitter
2
2.3k
ymatsuwitter
3
7.2k
ymatsuwitter
11
10k
Other Decks in Programming
See All in Programming
meemeelab
0
290
manfredsteyer
PRO
0
150
dbrumann
0
110
grapecity_dev
0
170
grapecity_dev
0
180
layzee
1
210
minamijoyo
3
500
bkuhlmann
2
310
emmaglorypraise
0
130
grapecity_dev
0
180
itok
1
580
mrtc0
2
970
Featured
See All Featured
addyosmani
1346
190k
3n
163
22k
philhawksworth
192
8.8k
tanoku
258
24k
sachag
267
17k
cherdarchuk
71
260k
keithpitt
401
20k
jonyablonski
19
1.2k
danielanewman
1
520
destraynor
146
19k
philhawksworth
190
17k
addyosmani
311
21k
Transcript
GoのマイクロサービスFWについて tracerの観点から⽐比較する Gunosy Inc. 2016.03 @y_̲matsuwitter
2 ©Gunosy Inc. ⾃自⼰己紹介 n Gunosy Inc. – 開発本部執⾏行行役員 n
業務 – 開発全般のマネジメント – Go⾔言語布教係 – パフォーマンスチューニング – ISUCONとか好きです n 担当 – 右⼿手でiOS、左⼿手でAndroid – Web – Infrastructure(AWSのみ) n 最近の興味 – HTC Viveに感動した 松本 勇気 @y_̲matsuwitter
3 ©Gunosy Inc.
4 ©Gunosy Inc. 今⽇日の話 n マイクロサービスフレームワークを知る n kit, gizmo, micro
n Tracerの観点から n 最後に Go⾔言語のマイクロサービスフレームワークの紹介
5 ©Gunosy Inc. マイクロサービスフレームワークを知る Microservices FWに触れることで必須な要素を知ることができる n 運⽤用にはモノリシックと⽐比べてより複雑な考 え⽅方が必要 –
ログ収集 – サービスディスカバリ – ロード・バランシング – プロトコル – メトリクス管理理 – APIクライアント提供 – …etc n 現状のチームではAWSに頼りつつ、こうした 機能をまかなっている状況 単にRPCでつなぐだけがマイクロサービスではない。 API Gateway Auth Content Log
6 ©Gunosy Inc. GoでのMicroserviceフレームワーク go-‐‑‒kit/kit gizmo micro n 3854star n
他⾔言語との協調も睨み つつ、⼤大規模な micorserviceの運⽤用を サポート n Pluggableで多くのプ ロトコルをサポート n Pub/subなどはサポー トしていない n 1345star n NYタイムズが開発元 n Config, service, pubsubの3つを提供 n 軽量量、基本的な機能以 外はミドルウェアを通 じて実装する n 多数のrepoに分割 n microservicesに必要 な多くの機能をmicro ⾃自⾝身で開発している n 最もfullstackなFW n Go以外の⾔言語との協調 n Dockerによる動作環境 なども提供している Go⾔言語でのmicroservicesフレームワークはその他にもKiteなど登場 go-‐‑‒kit, gizmo, microの3つを⾒見見てみた
7 ©Gunosy Inc. Tracerに⾒見見る各フレームワークの考え⽅方 n Tracing packageにて 提供 n 基本機能はZipkinへの
tracingパラメタ送信 n ⾃自⾝身で定義したService を、zipkin packageに annotation付けてもら う形式 kit n Tracer機能は持たない n Readmeによれば、 middlewareとして⾃自⾝身 で作成・追加するとの こと n 軽量量なライブラリであ ることがわかる gizmo n Micro⾃自⾝身がtrace-‐‑‒srv を持ち各サービスから 投げる n 各サービスはgo-‐‑‒ platform/traceという ⼦子パッケージを利利⽤用 n KafkaなどのBrokerを 間で利利⽤用する n “Full-‐‑‒stack!!!” micro フレームワークごとに⽤用意しているレイヤーが異異なっている Tracer = 障害発⽣生時にどういった経路路のアクセスがあったか追跡するもの
8 ©Gunosy Inc. 最後に GoのMicroservicesフレームワークからエッセンスを汲み取ろう Microservicesは銀の弾丸ではない、モノリシックとの間で悩もう Microservicesにおいて考えること グノシーでのmicroservicesの現状 n 複雑なサービス依存を管理理する⽅方法
– 多くのGo製フレームワークから 学ぶことができる n 本当にサービスを分割するべきか – 登場するドメインが少ないシステ ムでモノリシックから移⾏行行する必 要はない n 多数のシステムから単⼀一のデータを触 る際の拘束具としてのサービス分割 n Opsworksの運⽤用が確⽴立立しているゆえ の⼤大量量のサービス管理理 n より適切切な解を模索索している
9 ©Gunosy Inc. Gunosyでは、新規サービス⽴立立ち上げで microservicesに挑戦したい! そんなエンジニアを募集しています!
10 ©Gunosy Inc. 参考資料料 各フレームワークについて https://github.com/micro https://github.com/go-‐kit https://github.com/NYTimes/gizmo