SHOEISHA iD

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

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

プラットフォームづくりを成功に導く!開発者のための「Platform Engineering」入門

Platform Engineeringの先人 メルカリに学ぶ! プラットフォームチームの意義と実践のポイント

第7回 「Platform Engineering Kaigi 2024」のふりかえり/基調講演スピーカー メルカリ中島大一さんインタビュー(前編)

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

Platform Engineeringの先人に学ぶ──メルカリ中島さんインタビュー

インタビュー参加者

  • メルカリ:中島大一(インタビュイー)
  • Platform Engineering Meetup:四七秀貴(インタビュアー)・草間一人(インタビュアー、オブザーバ)
  • CodeZine:近藤佑子(オブザーバ)
メルカリ 中島大一氏(左上)、Platform Engineering Meetup 四七秀貴(右上)、Platform Engineering Meetup 草間一人(左下)、CodeZine編集部 近藤佑子(右下)
メルカリ 中島大一氏(左上)、Platform Engineering Meetup 四七秀貴(右上)、Platform Engineering Meetup 草間一人(左下)、CodeZine編集部 近藤佑子(右下)

──PEK2024ではキーノートのご登壇ありがとうございました。まず率直に今回参加した感想を教えてください。

中島:メルカリでは、7年前よりPlatform Engineeringのような取り組みをしてきました。1年前にPlatform Engineering Meetupが始まり、Platform Engineeringという言葉が色々な記事やブログに書かれるようになりました。それがついにカンファレンスにまでなり、しかも大勢の参加者がいたことに驚いています。最初のカンファレンスでキーノートとして講演できたのは、自分としても非常に楽しかったし良かったです。

──ちなみに、他の講演で気になったことや参考になったものはありましたでしょうか。

中島:個人的に面白かったのはUbieさんの発表です。Ubieさんの、クラウドやアプリケーションなどいろんな設定ファイルを一箇所でテンプレートとして管理し、そのテンプレートを書いたらいろんな設定ファイルが生成され、それがインターナルのBackstageと連携される仕組みはかなり完成度が高いです。特にすごいのは、動いている既存のシステムに対して、新しいインターナルのプラットフォームに移行できていることです。新規サービスをそのシステムに乗せるのは簡単ですが、既存のものを移行するのは難しいものです。

メルカリにおけるプラットフォームチームの存在意義

──では、さっそくPlatform Engineeringの実践について、メルカリで7年間実践してきた今、メルカリにどう貢献できているでしょうか?

中島:いくつかピックアップして紹介します。「セルフサービス」については、実践できていると思います。例えば、開発者が新しくサービスを立ち上げたいと思ったとき、サービス開発のひな型から、レポジトリを書いて、それを本番にデプロイして、モニタリングして、オンコールを回す、といったことを全部一貫して、開発者自身がプラットフォームチームに頼らずにできるようになっています。他にも、メルカリでは年に一度、開発者サーベイをしているのですが、直近のサーベイ結果によると、バックエンドエンジニアとして新しく入社したほぼ全員が、2、3日~1週間のうちに本番に何かしらデプロイできるようになっています。

 ビジネス的な観点では、メルカリハロのような新規サービスも同じプラットフォーム上にあり、新規サービスのリリースもしやすくなっています。今年はメルカリハロ、2023年はメルコインといった形でサービスを次々と出せているのも、プラットフォームチームが取り組んできた成果だと思います。

SREとプラットフォームエンジニア

──Platform Engineeringは、これまでのSREやインフラチームとは何が違うのかといったことがよく話題に上がります。中島さんはもともとSREとしてメルカリに入社されていますが、SREからPlatform Engineeringに移行されたきっかけは何だったのでしょうか?

中島:僕がメルカリに入社した時は、メルカリはまだオンプレミス上で、モノリスアーキテクチャーで動いている状態でした。当時のメルカリはUS進出から1年以上経ち、メルカリUKも始めようとしていた頃です。それに伴い開発者も増えている状況で、このオンプレミス上のモノリスのアーキテクチャで開発を続けていくのは、限界に来ていた時期でした。今後さらにスピード感を持って開発していくために、オンプレミスからクラウドへ、モノリスからマイクロサービスへと移行していくという意思決定をしました。

 マイクロサービスへの移行は、アーキテクチャを変えるだけでなく、開発者がいかにマイクロサービスの開発フローを自分たちで回すかというプロセス自体も変えていく必要がありました。これまではバックエンドエンジニアがバックエンドの開発だけをして、SREがその後のデプロイから運用モニタリングを行うといった形で、プロセスが分断されていました。しかし、マイクロサービスのメリット(独立したサービス群として運用されるため、各サービスの開発・リリースのサイクルを短くできる)をちゃんと享受したい場合は、運用で得た情報をもとにすぐにサービスの改善や新機能の追加を行う必要があり、そのためには、開発者がサービス開発から運用まで全部自分たちで回せるのが理想だと思ったんです。それを実現していくためには、ツール基盤を準備していかなければならないと。

 その基盤開発を始めたというのが、僕がSREからPlatform Engineeringに移行しプラットフォームチームを立ち上げた経緯です。

──アーキテクチャの変更だけでなくて、プロセスも変える必要があると気づいたことが、今の原型になっているんですね。

中島:そうですね。当時書いたブログでも、アーキテクチャの変更だけをしてもメリットはなく、組織と一緒に変えて初めてマイクロサービスのメリットを享受できるということを強調しています。

──ちなみに、SREチームとプラットフォームチームが分かれたり、もしくは合体したりなどの組織の変遷はあるのでしょうか?

中島:今でもSREとプラットフォームチームは分かれていて、違う組織となっています。特にPlatform Engineeringを始めたばかりの頃は、意識的にSREとは違うチームにしようとしていました。

 なぜかというと、重要視するところがプラットフォームとSREで違うからです。SREはSLO(サービスレベル目標)をいかに良くするかという「信頼性」に責任を持ちます。一方で、Platform Engineeringにとっても信頼性は重要な観点なのですが、それよりもいかに「生産性」をよくするか、自動化などどう「効率化」するかという観点に重きを置いています。

 SLOを良くしていくことと、みんなが使えるような自動化の仕組みを作るのは、スキルセットが違うと思っています。なので、チームを分けて、それぞれ違う目標を持って動いた方がうまくいくのではと思い、立ち上げの時から違うチームとして歩んできました。

 基盤ができてきた今でも、SREチームとプラットフォームチーム分けているのは他にも理由があります。

 プラットフォームチームは、組織全体のさまざまなユースケースの80%をカバーできるような基盤やツールを作るチームだと思っています。すべてのユースケースを想定して自動化やツール開発をするのは不可能ではないかと。

 一方で、そのドメインや事業により、カバーしきれない特殊な要件が数多くあるので、ドメインに特化した信頼性の改善や自動化によるプロセスの改善を担うチームとしてSREがあると考えています。

 全体を見て80%をカバーするプラットフォームチーム、ドメインに特化した残りの20%をカバーするSREチーム、という役割分担になっています。逆に、プラットフォームが特定のユースケースに寄りすぎてしまうと、そのユースケースでしか使えないものになってしまい、また別の基盤を作らなければならない……といった話にもなり得るんですよね。なので、プラットフォームチームが下にあり、プロダクトエンジニアリングチームが上にいて、その間にSREチームがいるというのが、今のメルカリでの組織体系です。

次のページ
Platform Engineeringとチームトポロジー

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
プラットフォームづくりを成功に導く!開発者のための「Platform Engineering」入門連載記事一覧

もっと読む

この記事の著者

四七 秀貴(シナ ヒデキ)

 株式会社JPデジタルに所属。NTT研究所での通信基盤ソフトウェアのR&Dや事業会社DX推進部門での業務システム開発経験を経て、現在、日本郵政グループのDX推進に従事。仕事以外ではこれまでの基盤開発や社内技術コミュニティ運営の経験からPlatform Enginnering Meetupの運...

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

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング