SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

メルカリの「Platform Engineering」7年間の取り組み~プラットフォームをどのように立ち上げ発展させたのか【PEK2024】

「Platform Engineering Kaigi 2024」メルカリ 中島大一(deeeet)氏 講演レポート

  • X ポスト
  • このエントリーをはてなブックマークに追加

マイクロサービス移行をきっかけにプラットフォームチームを立ち上げ

 deeeet氏によれば、メルカリがPlatform Engineeringを導入したのはマイクロサービスアーキテクチャへの移行がきっかけだ。7年前、メルカリのサービスはモノリシックなアーキテクチャだった。各開発フェーズでは分業が行われ、サービスの開発チームとは別に、QAチームがテストフェーズを、SREチームがデプロイや運用を担当していた。やがて事業の成長に伴う人員増加で、プロダクト開発のスピードが遅くなり始めた。そこで、メルカリが開発スピード向上のために取り組んだのが、モノリスをマイクロサービスに分割することだった。

 その際、テストや運用が専門チーム任せだと、そこがボトルネックになって、マイクロサービスのメリットを享受できない。モノリスの分割だけでなく、各開発チームが、開発から運用までのサイクルを自律的に回すための組織変革も重要だと、deeeet氏は言う。しかし、それぞれの開発チームが、DevOpsに伴う膨大な作業を自分たちだけで行うのは、認知負荷的にも作業負荷的にも現実的ではない。

 この矛盾を解決するのが、Platform Engineeringだ。つまりプラットフォームチームが、セルフサービスで利用できるツールやインフラを提供することで、各開発チームによる自律的なDevOpsを実現することが、プラットフォームを立ち上げた理由だ。

 「プラットフォームが必要となる理由は組織によってまちまちだが、最も重要なのは、どういう課題を解きたいのかを明確に定義してから、立ち上げに臨むことだ」と、deeeet氏はPlatform Engineeringの導入当時を振り返る。

プラットフォームは、各開発チームが自律的なDevOpsを実現するためにある
プラットフォームは、各開発チームが自律的なDevOpsを実現するためにある

 モノリスからマイクロサービスへの分割は、以下の流れで行われた。元々、フロントエンドのアプリは、バックエンドのモノリスと直接通信していた。新しいプラットフォーム上で最初に行ったのは、アプリとモノリスの間にAPI Gatewayを置いて、アプリからのリクエストをコントロールすることだ。そして、段階的にモノリスの機能を分割し、新しいプラットフォーム上にマイクロサービスとして抽出していく。この作業は、担当する開発チームとプラットフォームチームの共同プロジェクトとして進められた。同時に、初期のプラットフォームには最低限の機能しかなかったので、移行作業と並行して、段階的に必要なツールを整備していった。

マイクロサービスへの分割は、アプリとモノリスの間にAPI Gatewayを置き、モノリスの機能を分割しながら段階的に実施していった
マイクロサービスへの分割は、アプリとモノリスの間にAPI Gatewayを置き、モノリスの機能を分割しながら段階的に実施していった

 共同プロジェクトには以下のメリットがあった。まず、開発チームが直面している問題をプラットフォームチームも共有し、課題発見が容易になったこと。また、同じ場所で働いているので、新しい仕組みやツールを作った時にすぐフィードバックを得られ、エンジニアにとって期待外れなツールを作ることを防げたことだ。このような進め方は書籍『チームトポロジー』によれば、インタラクションモードの「コラボレーション」に当たる。

 「初期のプラットフォーム開発は、開発チームとのコラボレーションから始めることが大切だ。この進め方は意図したものではなく、そうせざるを得なかったのが実情だが、とても良い戦略だった」と、deeeet氏は当時を総括する。

次のページ
プラットフォームチームの成長と全社プラットフォームへの拡大に向けた取り組み

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

Innerstudio 鍋島 理人(ナベシマ マサト)

 ITライター・イベントプロデューサー・ITコミュニティ運営支援。 Developers Summit (翔泳社)元スタッフ。現在はフリーランスで、複数のITコミュニティの運営支援やDevRel活動の支援、企業ITコンテンツの制作に携わっている。 Twitter:@nabemasat Facebook Web

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19938 2024/12/26 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング