読者です 読者をやめる 読者になる 読者になる

Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Go Conference 2016 SpringでgRPCの現状について発表してきました

こんにちは、SREチームの @kazegusuri です。

2016年4月23日にGo Conference 2016 Springが開催されました。今回は参加者だけでなく発表希望者も多かったそうですが、メルカリからは自分が、ソウゾウからは @ttsuruokaが発表しました。そのときの発表資料を公開します。

発表資料

GRPCの実践と現状での利点欠点 / Go Conference 2016 Spring

speakerdeck.com

GoとGAEによるWebアプリケーション開発(Go Con 2016 Spring)

speakerdeck.com

gRPCの現状と今後について

自分の発表では、メルカリでgRPCを使ったバックエンドを実装した時に行ったことの解説と、そのときに感じた課題や良かったことをまとめました。現状ではライブラリなどがほとんどないので下回りを整えるために時間を取られてしまいますが、一度できてしまうと、protoでインタフェイスを定義して実装を行うといった流れで本質的な部分だけに集中できるのが非常に良いです。

gRPCはまだベータですが、GAの予定はGitHub上のマイルストーンによると2016年5月21日となっています。また、リポジトリのdocを見るとServer ReflectionやHealth Checkingなどの機能も予定されているようです。特にServer ReflectionができるとgRPCでcurlのようなことができるツールが出てくるかもしれません。今後もgRPCの更新を追いかけて紹介していきたいと思います。

メルカリとソウゾウでのGolangの活用について

メルカリでは運用ツールやミドルウェアといったところで以前からGolangを使っています。最近ではメルカリとソウゾウで機能を共有するためにマイクロサービスとして切り出しており、その実装にGolangを使用しています。サービスのビジネスロジックなどを含むAPIはPHPで開発し、共通の基盤となるバックエンドはGolangで開発するという住み分けになっています。

一方でソウゾウでは初期からサーバサイドの開発言語としてGolangを使用しており、GAE(Google App Engine)を積極的に活用することでGolangのパフォーマンスや安定性を活用しつつも開発速度はLLと比較して遜色ない状態となっています。

今後もメルカリとソウゾウではGolangを活用し、新しいことに挑戦していきますので、興味がある方はぜひご連絡ください。

www.mercari.com