エンジニア視点で説明する「メルカリ」、リリースから4年の道のり:特集:情シスに求められる「SRE」という新たな役割(4)(1/2 ページ)
2017年6月、執行役員 Chief Business Officer(CBO)に、元Facebookのバイスプレジデント ジョン・ラーゲリン氏を迎えるなど、国内はもちろんグローバル展開も加速させているメルカリ。世界に支持される同社サービスはどのように作られ、支えられているのか?――2017年9月に開催された技術カンファレンス「Mercari Tech Conf 2017」にサービス開発・運用の舞台裏を探った。
フリマアプリを開発・提供するメルカリは、「Go Bold(大胆にやろう)」「All for One(全ては成功のために)」「Be Professional(プロフェッショナルであれ)」という3つのバリューを掲げ、急成長を遂げてきた。では、開発や運用に携わるエンジニアらは、そのバリューをどのように実現しているのだろうか。2017年9月30日に開催されたカンファレンス「Mercari Tech Conf 2017」で、その一端が紹介された。
コンセプト実現に向けたメルカリの足取り
基調講演では3人のエンジニアが登場。メルカリの事業誕生、成長、国際展開といった各局面にエンジニアがどのように関わってきたかを説明した。
トップバッターを務めた鶴岡達也氏によると、メルカリの事業がスタートしたのは4年前の2013年。「誰もがスマホアプリを使って個人間でモノを売り買いする時代が来る」というコンセプトを実現すべくリリースしたアプリは、今や日米合わせて7500万ダウンロードを超え、月間の流通総額は100億円を超える規模に成長した。
そのスタートは雑然としたシェアオフィスからだった。当時から「エンジニアと企画者、経営が同じテーブルに座っていた。これは今も同じメルカリの文化だ」(鶴岡氏)という。
この黎明期、同社は事業コンセプトの実現に向け、「ユーザーにより良い出品体験を提供すること」と「多くの競合に先駆け、素早く展開すること」という2つの狙いに沿って、時に足し算よりも引き算を選び、大胆な決定を下してきた。
「4年前、クラウドはまだ一般的ではなかった。その中でインフラをどうするかを議論した際の議事録を見ると、一言『ハイエンドなサーバに全部集約する』と書かれている。つまり、利用者が増えたときにインフラの世代交代ができるようになっていればいいという考えだ。あらかじめ、どこかのタイミングで破棄することを決めてインフラを構築していた」(鶴岡氏)
そんな思い切った考え方は、当初のユーザーインタフェースにも見られる。今では最も頻繁に使われる「検索」のフォームが、最初のリリースでは存在しなかった。これも「利用状況を見て、後から付けることにした。これは決して『手抜き』ではなく『アイデア』。機能を追加するのは誰にでもできるが、機能を減らしたり、提供しないという決断を下したりするのは非常に難しいこと」(鶴岡氏)
また、タイムラインの開発において、エンジニア視点では効率よく開発できる「HTML5」で作ったものを、あえてネイティブで作り直したことも「出品体験を高める」という狙い故の選択だった。
「HTML5もいいけれど、それはあくまで開発者の都合であり、利用者からすれば重たいだけ。ネイティブで実装したことで、競合の中でタイムライン表示速度を圧倒的に高速化できた」(鶴岡氏)
このように黎明期から出品体験の最適化に向けて大胆に動いてきたメルカリだったが、その一因として、優れたエンジニア個人への依存もあったそうだ。だがサービスが拡大し、エンジニアの数が増えて20人を超えるころになると、新たな課題も出てきた。
サービス拡張に伴い広がる組織、ソースコードも国ごとにフォーク
メルカリは現在、日本だけではなく米国、英国の3カ国に6つの拠点を置いている。同時に、「メルカリ アッテ」や「メルカリ カウル」「メルカリ メゾンズ」といった新たなアプリも投入し、プラットフォームの拡張にも取り組んできた。
2番目のスピーカーとして登場した柄沢聡太郎氏によれば、今やエンジニアの数は120人を超えるまでに増加した。API開発では毎月2500以上のコミット、400以上のプルリクエストがあり、120以上のアクティブなブランチがある。またいわゆるサービス開発やサーバサイドを担当する技術者だけではなく、機械学習やテスト自動化といった領域を専任で担当するエンジニアも増えており、「部屋に集まって証明問題を解いては喜ぶ『数学部』という部活動も発足した(笑)」(柄沢氏)ほどだ。
東京オフィスでは主に新機能の開発やプラットフォーム化などに取り組んでいる。中でも新しいことにチャレンジする母体となっているのが、子会社の「ソウゾウ」だ。「新しいことをしたくても、既存の事業にリソースを取られてなかなか立ち上がらないこともある。そこでリソースを分けることで、確実に新規事業にフォーカスできるようにした」(柄沢氏)。この結果、最良のスピードでサービスを実現し、リリースできているという。
一方、米国では、0を1にした次のステップとして、「現地の顧客にいかに受け入れられるサービスを作るか、現地ならではのニーズにどう応えるかという部分にフォーカスが移りつつある」(柄沢氏)ことから、組織・チーム作りを徐々に現地化しているそうだ。
英国では立ち上げの真っ最中。それぞれの状況を反映してクライアントソースコードをフォークすることで、各国それぞれの要望に応じて最適化し、開発できるようにしている。
「ニーズに対応することを考えてきた結果、共有できるところは少なくなっている。今では3つのソースコード、3つのビルドそれぞれに開発を進めており、おのおののお客さまにフィットするように作っている」(柄沢氏)
結果として、それぞれのバージョンでユーザーインタフェースも異なっており、例えば米国版では日本向けにはないPayPal対応や返品要求対応のメニューが目立つ作りになっている。「組織の現地化を進めているのも、こうしたお客さまの要望に敏感に応えられるようにするため」(柄沢氏)
各サービスに共通する基盤を提供するチームも整えた。基本的にはプロジェクトチーム制を採っているが、それらを横断的に支えるチームとして、2年前に「インフラチーム」から名前を改めた「SRE(Site Reliability Engineering)」がある。
参考リンク:インフラチーム改め Site Reliability Engineering (SRE) チームになりました(メルカリ)
インフラ構築やアプリケーションのパフォーマンス確保、安全性向上のための施策を通じて「お客さまにいつでも快適に安全に使っていた開ける環境を整え、信頼性に責任を持つチーム」という位置付けで、インフラという言葉から想像されるハードウェアやネットワーク部分だけでなく、必要に応じてミドルウェアにも踏み込んで環境を整えてきた。
さらに、品質に責任を持つチームが「QA(Quality Assurance)」、エンジニアの採用に責任を持つチームが「EOT(Engineering Operations Team)」だ。EOTは「自分たちの仲間は自分たちで連れてくる、という考え方でエンジニアの採用に当たっている」(柄沢氏)といい、プレゼンス向上のための活動などを展開している。ちなみに今回のカンファレンスも、EOTが主導して企画・開催したものだという。
柄沢氏は、メルカリが掲げる3つのバリューを追求し続けるためのこれからの技術戦略が「スケーラブル」と「エラスティック」だという。「スピードを落とさず開発を行い、ポイントが変わってもチームの構成が変化しても対応できる柔軟な組織を作っていく」(柄沢氏)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 工数削減だけじゃない、自動化ツールの真のメリット
運用自動化というと「人員削減」「コストが掛かる」といったネガティブな見方をする向きも多い。だが仮想化、クラウド時代において運用自動化とはそれほど単純なものではない。国内ベンダ4社のツールに真の意義を探る。 - 運用自動化ツールは経営の武器へ
運用自動化というと「コスト削減」「効率化」といったイメージが強いが、攻めの経営を支える武器となるものでもある。後編では外資ベンダー3社の運用自動化ツールを紹介する。 - 徹底比較! 運用監視を自動化するオープンソースソフトウェア10製品の特徴、メリット・デメリットをひとまとめ
運用自動化のポイントを深掘りする本特集。今回は「個々の作業項目の自動化」に焦点を当て、「Zabbix」「JobScheduler」「Sensu」など、運用・監視系の主要OSS、10種類の特徴、使い方などを徹底解説する。 - 運用自動化、ツールの種類やOSS/商用の違いを問わない運用設計の作り方、進め方
システム構成が動的に変化する仮想化・クラウドの浸透により、もはや人手だけによる運用管理は難しくなっている。本特集では、ビジネス展開に即応するインフラ整備の必須要件、運用自動化のポイントをツール面、設計面などあらゆる角度から掘り下げていく。