メルカリSRE発足から7年、グループ会社が増えるなかでの変化と「今」を担当メンバーに直撃

2015年に立ち上がり、お客さまに安心・安全なサービスを提供するためにシステムの維持・向上に取り組み続けているのがSRE(Site Reliability Engineering)です。2018年ごろに本格始動したマイクロサービスへの移行などを経て、チーム体制に変更はあったものの、基本的な役割は変わっていません。

一方で、メルペイをはじめ、メルコインやソウゾウといった新たなグループ会社も登場しています。いずれのサービスもメルカリというアプリの中にある=各社SREは連携しながら動くことも多いわけですが…具体的な違いは?

今回は、メルカリSREの中島大一(@deeeet)、メルペイ(メルコイン)SREの高木潤一郎(@tjun)、ソウゾウSREの山本竜三(@dragon3)が登場。これまでの変遷をたどりながら、現在各社でどんなことに取り組んでいるのか?を渡部啓吾(@keigow)が聞きました。

※撮影時のみマスクを外しています

この記事に登場する人


  • 中島大一(Taichi Nakajima、@deeeet)

    大学院を修了後、新卒で楽天に入社、2017年にSREとしてメルカリに転職し、翌年より現職。現在はPlatform DXチームとMicroservices SREのマネージャーを務める。著書に『みんなのGo言語』(技術評論社、2016年、共著)


  • 高木潤一郎(Junichiro Takagi、@tjun)

    学生時代は未踏クリエイターとしても活動しその後、ソニーに入社。ソニー製品向けのネットワークライブラリ開発等を担当する。2014年にはソニーコンピュータサイエンス研究所で新規事業立ち上げを行う。2018年4月、メルペイ一人目のSREメンバーとして入社。現在はManager of Managerを担当。


  • 山本竜三(Ryuzo Yamamoto、@dragon3)

    ソフトウェアエンジニア。2005年に株式会社ヌーラボに入社し、プロジェクト管理ツール Backlogの初期から開発や運用に携わる。2015年からは同社ニューヨーク拠点のエンジニアリングチーム立ち上げや US 向けのプロダクト拡大のための開発を担当。2018年にメルカリへ入社し、Microservices Platformチームにて、メルカリ・メルペイの開発。現在はソウゾウEnablingチームに所属。


  • 渡部啓吾(Keigo Watanabe、@keigow)

    ソフトウェアエンジニア/エンジニアリングマネージャー。2010年DeNAに入社、ソーシャルゲームや新規事業のBackend/iOS開発を担当。 2016年に旧ソウゾウに入社し、メルカリ アッテを開発。2018年メルペイ立ち上げのタイミングでProduct Managerとしてジョイン。 BackendのEngineering Manager、Manager of Engineering Managersを経て、2021年4月から新ソウゾウに異動し、組織や採用をメインに担当。


メルカリの事業・組織の歩みとともに変化してきたSRE

@keigow:メルカリグループにはそれぞれSREチームがあり、共通する業務も多いので連携して動くこともよくあります。だからこそ、各プロダクトでSREがどういった役割・体制なのかを知りたいです!まず、メルカリはどうですか?

@deeeet:メルカリにはSRE的なチームが大きく分けて3つあります。それがPlatformグループ、Microservices SRE、そしてCore SREです。今回はその中でも私がメインに関わっているPlatformグループとMicroservices SREについて紹介しますね。

Platform Engineeringを行うPlatformグループは、4つのチームで構成されています。

DX(Developer Experience)チーム
CI/CDチーム
Networkチーム
Platform Infraチーム

@deeeet:DXチームでは、Platformによる機能を簡単に使用するためのインターフェースを提供。CI/CDチームは「CI」としてテスト環境やQA環境をつくるためのツール、「CD」としてアプリケーションやサービスを本番にデプロイするための基盤ツールなどをつくっています。そして、Networkチーム。ここでは、モバイルアプリからエッジネットワーク、Microservices間のネットワーク、最後のデータベースまで、あらゆるレイヤーのネットワークを管理しています。最後のPlatform Infraチームは、クラウドの管理からKubernetesのようなすべてのベースとなるインフラの開発運用を手がけています。

そしてMicroservices SREチームでは、世間的に認知されているSREのイメージに近い役割を担っています。Platformグループとの関連性でいうとメルペイSREに近いチームです。形式としては「Embedded SRE」としてプロダクト開発チームにEmbedされることで、そのチームのオンコールの改善や新機能リリースのサポートなどを行い、サービスの信頼性の改善に取り組んでいます。定期的にEmbedされるチームをローテートしていくことで組織全体にSREとしてのプラクティスを浸透。SREがいなくてもプロダクト開発チームが自分たちで信頼性にも責任を持てるようにすることをミッションとしています。

@keigow:どんな経緯で今の体制へ?

@deeeet:メルカリSREは歴史が長いのでひと言では語れないんですが(笑)。歴史に沿って説明すると、これまで大きく3つの世代がありました。

中島大一(メルカリSRE、@deeeet)

@deeeet:第1世代は、2015年に@kazeburoさんが立ち上げたSREチーム。初期メルカリのスケールを支えてくれたチームで、僕が入社したのもそのタイミングです。第2世代は、2017年頃。当初のSREチームに加え、MSPと呼ばれるMicroservice Platformチームを立ち上げています。

というのも当時、マイクロサービス化を始めたタイミングでした。マイクロサービス化の目的は、開発スピードやお客さまに提供する価値を落とさずに組織・事業を拡大させていくことです。その実現のために、それまではデプロイから本番のオペレーションまでをSREチームが担当していましたが、それぞれのチームが独立して開発・テスト・運用・デプロイまでのサイクルを回す体制に変化していく必要がありました。そのためのPlatformをつくることが、Microservice Platformチームの役割だったんです。

第3世代は、マイクロサービスの移行がある程度進んできた2020年頃。Microservice Platformはチームの拡大により1つのチームから複数のチームで構成されるPlatformグループへ組織変更を行いました。またマイクロサービスが増えていくにつれ、Platformグループには中立的な立場で各チームを見ていく必要性が生じていました。よりチームに近いところでサービスの信頼性を改善していくため、Microservices SREチームが誕生。この体制によって互いに補い合う形で動くことができるようになっています。

メルペイとメルコインの連動性、ソウゾウのSRE第0世代

@keigow:続いて、メルペイについて。メルペイ立ち上げ当時からマイクロサービスプラットフォームはありましたよね。今、どんな動き方をしているんですか?

@tjun:現在、メルペイSREは中央SREチームと、各開発チームにEmbeddedする「Embedded SRE」というスタイルを併用する形でサービスの信頼性に関わる動き方をしています。メンバー数は、メルペイ・メルコイン合わせて14〜15名。そのうちマネージャーが私を含めた3名です。

その中でメルコインを担当しているのが、4名ほどです。創業したばかりのメルコインは構築フェーズなので、セキュリティチームやPlatformチームと話し合いながら、設計と実装を進めています。

高木潤一郎(メルペイ・メルコインSRE、@tjun)

@keigow:特にメルコインはセキュリティ面で求められる精度が高いです。そのあたりはどうですか?

@tjun:メルカリやメルペイと同様の設計ではなく、クラスタもゼロから設計しています。メルカリ・メルペイのクラスタではすでに多くのサービスが動いているため、新たなセキュリティの制約を後から入れることは難易度が高い。それに、時間もかかってしまいます。しかし、メルコインはゼロベースでつくれるから、最初からさまざまな制約を入れておくことができます。そのあたりは大きな違いですね。

@keigow:@tjunさんはメルペイSREのManager of Managerですが、メルコインにはどう関わっているんですか?

渡部啓吾(ソウゾウEM、@keigow)

@tjun:メルペイのインフラをつくってきた知見や運用経験があるので、設計や組織に関してフィードバックなどしています。基本的にはメルコイン担当のSREがオーナーなので、任せて設計・実装してもらっていますね。メルカリやメルペイと大きく違うシステム構成にはしたくないので、そのあたりは意見を深めながら進めています。

先ほどお話ししたように、メルペイとメルコインはSRE組織を分離することを想定して動いています。メンバーの兼任は、セキュリティ観点からもよろしくないですし。ただ、共通で使える仕組みはあったほうがいいと思っています。

@keigow:メルペイとメルコインのメンバーの配属はどう決まるんですか?

@tjun:「やりたい」という強い意思があれば、なるべく尊重します。今後は能力や適性を踏まえて、現実的に判断していく予定です。

@keigow:最後にソウゾウSREの@dragon3さん!

@dragon3:ソウゾウにはSREチームがないんですよね。プロダクト開発をサポートしたり、技術的にややこしい部分を手助けするEnablingチームのなかに、SREの機能が集約されています。ちなみに、SREの役割を持っているのは僕と@suguruさん(ソウゾウCTO、名村卓)です。

※ Enabling TeamはTeam Topoligiesを参考にStream Aligned Team(プロダクトの開発チーム)の技術を強化していく役割と責任を担っているチームで、SouzohのSREメンバーはEnabling Teamの一員として活動しています。詳細についてはこちらもご覧ください。

山本竜三(ソウゾウSRE、@dragon3)

メルカリグループにおけるSREのこれから

@keigow:直近の課題はなんですか?

@deeeet:メルカリではKubernetesをメインで使用しています。しかし、新しくマイクロサービスをデプロイするときに、Kubernetesが提供するローレベルのマニュフェストを毎回全部書かなければなりませんでした。1つのProduction Readyなサービスのためには、1,000行ぐらいのマニフェストを書かなければいけないため、なかなか難易度も高いし、本質的ではないところで時間がかかってしまっていたわけです。

@deeeet:直近では、このあたりの改善をしていました。例えば、最近ではマニフェストを抽象化するツールをDXチームでつくったことにより、1,000行書かなければいけなかったところが、100行ぐらいで済むようになりました。これによりプロダクト開発へより注力できるようになったと思っています。

このようにPlatformチームが提供するツールのなかにはローレベルなAPIを公開してしまっているものがまだ多く、ツール間の連携もできてないところもあります。今後は、これらの開発者体験の改善に力を入れていきたいと思っています。

@tjun:メルペイは、基本的に2つあります。それが、信頼性を守るための仕組みづくりと、運用しやすくするための取り組みです。

「信用性を守るための仕組みづくり」では、インフラレイヤーで安定性を高める取り組みや自動化、セキュリティ観点での改善を進めています。金融サービスとして、外部システムの障害やリクエストの急増など、外部要因に対して堅牢なサービスインフラを提供していきたいんですよね。「運用しやすくするための取り組み」は、簡単に言ってしまうとアラートを減らすためにいろいろなことに取り組んでいる感じです。オンコールを簡単にし、より少ない負担で運用できるようにしていきたいと思っています。

メルコインは、クラスタとネットワーク、CI/CDの設計と初期実装に注力しているところです。

@dragon3:ソウゾウはサービスが始まったばかりで、アクティブに新機能が追加されている状態です。それらが安定して動く状況をつくっていきたいですね。今の状況が落ち着いたら…といった中長期的なことも考えていく必要はありますが、まだ慌ただしい状況が続いているのでなかなか難しくて(笑)。そういったことにもちゃんと向き合えるように、仲間を増やして、安定運用できる状態を目指したいですね。

「やりたいことはたくさんあります!」

@keigow:最後に今後の目標について教えてください!

@deeeet:3つあります。1つは、グローバル進出しても使える基盤づくり。メルカリグループは、グローバルへ拡大する構想を持ち続けています。そうなると、メルカリの基盤がメインになるんですよね。より拡大しても安定性を保てる状態は必須です。

2つ目は、開発者体験を改善していくこと。サービス開発における根本的なツールセットや仕組みはあるのですが、使いにくい部分もあるので。個人的には、新しいサービスを1週間で本番に出せるぐらいの簡単な基盤を構築したいと思っています。3つ目は、セキュリティ面。ここをガチガチにするとDXは落ちてしまうので、いい感じにバランスを保ちつつ、安心安全に使えるような基盤にしたいのです。

また来期から、SREのプラクティスを組織全体で使えるように浸透させていきたいですね。そのためにもとにかく仲間がもっと必要!全方位で採用に注力していくつもりです。

@tjun:メルペイSREでは、自分も共通で見ているチームの役割を整理したいです。そしてメルペイだけに閉じることなく、グループ横断の運用の仕組みを構築していきたい。Embedded SREをもとに各グループの足並みを揃えることは難易度も高いのですが、グループ内の連携を深めて仲間を増やしたい!メルペイの改善を続けながらメルコインを立ち上げるという大きなチャレンジがあり、これからも楽しみです。

@dragon3:ソウゾウはすでにプロダクト開発チームにSRE的な動きをしてくれる人がたくさんいるので、そういう働き方がもっと増えたら嬉しいですね。Enablingチームはあるものの、内容によっては1人で悩むこともあるので、相談できるチームメンバーが増えたら嬉しいです。

採用ページはこちら!

関連記事 サクッと読める!✨

「Mercari Summer Internship 2022」の募集を開始しました! #メルカリな日々

メルペイ初!QAエンジニア育成&インターンシッププログラム「Merpay QA Summer Training Camp 2022」の募集を開始します! #メルカリな日々

「Mercari Summer Internship 2021」の募集を開始しました! #メルカリな日々

関連記事 読み応えアリ✨