Microservices 始めました!#mercari_techmeetup レポート #メルカリな日々 2018/08/08

f:id:mercan:20180807165601j:plain

こんにちは!PRチームの石川です。
8月6日の夜、TECH PLAY SHIBUYAでメルカリ Tech Meetupが開催されました。

techplay.jp

今回は、メルカリCTO 名村卓のキーノートを筆頭に、Microservices化を行っている各領域のエキスパートが登壇。
今、メルカリのサービス基盤のMicroservices化に向けて、なぜ我々がMicroservices化に舵を切ったのか、どのようなロードマップを描いているのか、現場は具体的にどのようなことをしているのか、などを中心にお話しさせていただきたました。

f:id:mercan:20180807171509j:plain

MicroServiceとは「ひとつのアプリケーションを、複数の軽量なサービスを連携させたアーキテクチャでつくろう」というアプローチです。
CTOの名村の話では、飛行機の機体の開発に例えて紹介。
一機の飛行機を作り上げるには、世界各国にあるそれぞれの開発会社でエンジンからウィングから各パーツが生産され、最終的にひとつの機体になります。
このような巨大な飛行機の開発においては、ウィングを作っている人たちはエンジンを変えたいと思っても変えることができない、逆にエンジンを作っている人たちがウィングを変えようと思っても変えることは容易ではありません。
しかしながら、ソフトウェア開発の世界だと、他のチームが開発しているもの対しても変更を加えることが可能です。その変更をマージするかどうかはオーナーが管理することができるし、さらにモジュールとしての独立性も担保できます。
それに最適なアーキテクチャがMicro Servicesです。

f:id:mercan:20180807180136p:plain

またカオスエンジニアリングにも対応できるのがMicro Services。
カオスエンジニアリングとは「プロダクション環境の過酷な状況に耐えられるというシステムの能力に自信を持つため、分散システムで実験するという規律」という原則をNetflixが提案しているのですが、MicroServiceであれば、それぞれ独立したコンポーネントが存在しているので、あるコンポーネントは障害が起きていてもサービスは問題なく動いている状態にすることができます。
そうすれば開発スピードを落とすことなく、より強固でロバストで柔軟に対応できるサービス開発が実現するとのことでした。

これからメルカリが1000人規模のエンジニア組織になっても、試行の回数を減らさないようにするために、MicroService化というスケールが大事になってくるということです。

f:id:mercan:20180807180440j:plain

その後、 Microservices DevelopmentチームのテックリードであるTonghuiによる「Mercari API: from Monolithic to Microservices」のセッション。
MicroService化を具体的にどうやるのか、をお話しました。

f:id:mercan:20180807180742j:plain

休憩を挟んだ後、 Microservices PlatformチームのソフトウェアエンジニアのVishalより、Microservicesの開発とスケールについてお話しました。

f:id:mercan:20180807180800j:plain

Web Re-architectureチームのテックリードである杉浦より、日本のメルカリWebが進化するための新しいアーキテクチャやこのプロジェクトで実現する世界をお話しました。
そのスライドはこちらのリンクよりご覧いただけます。

そして懇親会! f:id:mercan:20180807181045j:plain

f:id:mercan:20180807181025j:plain

当日の様子は、Twitterのハッシュタグ、#mercari_techmeetup からも見ることができますよ! それではまた、#明日のメルカリな日々 でお会いしましょう。