はじめに
メルカリで新しく立ち上がったプロジェクト「Robust Foundation for Speed(以下RFfS)」。これはメルカリが将来に渡って力強く、素早く成長し続けるために、今あるビジネス共通基盤の複雑な技術的問題を解決していく取り組みです。
既存のシステムを解析し、改善していく。しかも、大規模かつスピーディに。この難易度の高い全社的なリファクタリングを、メルカリは中期的に取り組もうと考えています。この記事では、RFfSをリードしている @mtsuka に、プロジェクトの内容やきっかけ、その目指すゴールについて伺いました。
メルカリがフォーカスする「RFfS」とは?
— RFfSの詳細を伺う前に、そもそも今、ビジネス共通基盤強化を行う理由は何でしょうか
メルカリはこれまで、サービスをビジネスとして成立させるためにプロダクトマーケットフィットに注力してきました。つまり、お客さまにとって必要な機能を作り、価値を提供することに注力してきたんです。今も、多くのエンジニアが新しいものを作りたい、世の中にインパクトを与えたいと言う思いで日々の開発に取り組んでいます。
そうした中、優先順位の兼ね合いで、結果的に多少なりとも見過ごされてきた部分があります。メルカリのビジネスを支えている機能であり、根幹につながるビジネス基盤部分のメンテナンスです。あまりこれを放置しすぎると、いわゆる技術的負債になってしまいます。なかなか良いタイミングが作れなかったのですが、今回CEOとCTOの後押しもあって、ビジネス基盤強化への投資をしていこうと決まりました。その結果、スタートしたのがRobust Foundation for Speed、通称RFfSになります。RFfSでは、技術的リソースをビジネス基盤改善に集中させることで、事業継続および拡大に大きな価値をもたらしたいと考えています。
いわゆるテックジャイアントと呼ばれるような企業も、エンジニアリングリソースの大半をプラットフォームや基盤技術に投資しています。このことからも、RFfSは重要性の高い取り組みだと考えています。
— 具体的に目指しているものは何でしょうか?
メルカリでは2年前(2019年)からマイクロサービス・マイグレーションを進めていますが、基本的な考え方は、そこと変わりません。より俯瞰的、メタ的になっただけです。システムを開発しやすく、メンテナンスを容易にする仕組みを作ることが、結果的に機能や価値の提供を継続的に行う上でも重要なポイントだと考えています。モノリスなシステムは、小さな変更が多数の部分に影響を及ぼすことも多いので、大人数の組織では継続的なデプロイがしづらくなります。アーキテクチャをマイクロサービス・アーキテクチャにすることで、デプロイしやすくなり、変更容易性が高まりますが、RFfSではそれをもっと確実なものにし、加速させることを目的としているのです。
RFfSで取り組む課題について
— では、RFfSが注力する領域について教えてください
一番難しい課題から取り組むことが、大きなインパクトにつながると考えました。そうした考えで現状分析したところ、ビジネス上のインパクトが大きいにも関わらず、複雑でユーザへの影響が大きいために手つかずになってしまっていたり、当時のエンジニアや担当者が不在なため未知な領域があることが分かってきました。
そこで、以下の3つを注力する領域として定義しました。
— 3つそれぞれの課題について伺っていこうと思います。まずは、「C2Cトランザクション」の課題は何でしょうか?
C2Cトランザクションというのは、メルカリの商取引を一気通貫で担うシステムです。つまりメルカリのビジネスロジックそのものです。ここは今なお機能が密結合な状態です。取引に関わるので、あらゆる機能から呼び出されている部分でもあります。ここをうまくドメイン分割するのが目標です。ビジネスロジックのみならず、ユーザ体験や今後の事業拡大も考慮した上で、うまくドメイン分割を行い、マイクロサービスもしくはモジュラーモノリスにしなければなりません。この機能をどのように分割するとより最適なのかを考えるところが一番の課題でありチャレンジングなことだと考えています。
— 次に「IDプラットフォーム」の課題は何でしょうか?
一般的に、今のサービスはアカウント周りというのはソーシャルプラットフォームやIDaaSと呼ばれるサービスを利用することで解決するケースが多いかと思います。メルカリで認証基盤が必要になった当時はそういった要求を満たすものがなかったので、自分たちで作る必要がありました。この基盤もメルカリの成長とともに大きく複雑なシステムになってきています。そうした認証基盤はNIST 800-63で定義されている仕様を満たす必要がありますが、これを正しく理解し実装することも難しいポイントとなります。また、こうしたID領域に専門性を持ったエンジニアはあまりおらず、採用も難しいです。
認証認可の仕組みは、メルカリが個人情報を扱う関係上、実装上のミスが事業リスクにもつながりかねません。また、グループ企業(メルペイ、メルコイン、ソウゾウ)がある中、連携する上でもIDプラットフォームの存在はとても重要になります。認証基盤を正しく実装しなければ、事業拡大の足を引っ張りかねません。これはスピードが求められるメルカリにおいて、難しい課題になっています。
— 最後に「CSツール」の課題は何でしょうか?
メルカリのサービスが日々成長していく中、顧客対応するツール(CSツール)がアドホックに作られていきました。言い換えると、機能ごとに小さなCSツールが作られており、人が管理するのは難しくなってきています。そのため、CSツールをプラットフォーム化したいと考えています。
個々のCSツールは各機能に密結合していますので、その分析が大きな課題です。事業ドメインや会社ごとに分解していくのが良さそうですが、アーキテクチャを含め再設計、統合しなければなりません。単純な売り買いだけがメルカリの価値ではなく、こうしたCSツールによる安全の提供も、大事な顧客体験につながっています。CSツールでは個人情報も扱うので、プロジェクト管理という観点からも難しい課題があります。
RFfSの現状と今後について
— プロジェクトを進める上で注意していることはありますか?
まず大事なのは、過去を否定しないことです。私自身、入社して2年くらいしか経っていません。それより過去の議論は分かりませんし、その当時最適だと思われる結論に従って、実施されていることが多数あります。それは問題ではありません。現在は状況が変わっているので、それに従って最適解もまた変わっています。そのためにも、まずは関係者に話を聞こうという姿勢で進めています。
— 今後のロードマップを教えてください
まず年末までに未知な部分を掘り起こし、発見していきます。その上で来年からドメイン分析やAPI分割設計に入りたいと考えています。恐らく2022年半ば末くらいから、実際のマイグレーション実装に入っていけるのではないでしょうか。その後、1年くらいかけて実装を進めていきます。
— これまでの手応えはどうですか?
正直難しいプロジェクトです。しかし、把握した未知の部分は乗り越えられそうです。後は、未だ分からない部分がどれくらい残っているかです。苦労も多いでしょうし、時間もかかるとは思いますが、恐らく達成できるでしょう。
RFfSで求めるエンジニア像とは?
— RFfSで活躍できそうなエンジニアの素養、マインドセットは何でしょうか?
このプロジェクトでは、ともすれば数年前の技術に触れることになります。それを嫌がるのはよくありません。技術はあくまでも道具なので、その新旧は重要ではありません。個人のやりたいことももちろん大事ですが、いかに複雑な課題に対する一手を着実に実行できるかがより重要となります。
求めているのは、どのように複雑な問題を解決するのか、どのように価値を提供できるのかにフォーカスできる、いわゆる課題解決者です。こうした経験は、エンジニアのキャリアとしても大いに役立つのではないでしょうか。
このチームはそういったマインドを持ってプロジェクトに取り組んでいます。
— 技術的にはどうでしょうか?
メルカリは元々LEMPスタック(Linux、nginx、MySQL、PHP)で開発されてきました。現在はGoの利用やマイクロサービス化が進んでいますが、実はオンプレミス環境もまだあります。実際、メルカリの中枢部分はモノリスなPHPで書かれたシステムです。
まだまだPHPが数多く使われていますので、ぜひLEMPスタックでの開発に知見のある方と一緒に働きたいですね。活躍できる場がたくさんあります。
— RFfSにコミットすることによってエンジニア自身の成長だけでなく、業界そのものへの貢献にもつながりそうですね。
メルカリでは事業をスケールさせるためにマイクロサービス・アーキテクチャを導入してきました。大きな成果を得られていますが、手付かずに残っている領域もあります。それを解決するのが本プロジェクトであるRFfSです。
こうした現状を踏まえると、マイクロサービス・アーキテクチャは銀の弾丸ではなさそうです。RFfSを通じて、その次の世界が垣間見られる可能性を感じています。マイクロサービスのその先の事例を我々が生み出していければと思っていますし、それはIT業界における貢献にもつながるでしょう。
色々苦労は多いですし、時間もかかりますが、こういったビジョンを持って取り組んでいます!
— ありがとうございました!
採用情報
メルカリではメンバーを募集中です。 少しでもご興味のある方は、ぜひともMercari Careersの募集要項やRobust foundation for Speedの特設ページをご覧ください。
関連記事
イベント情報
直近では以下のイベントを予定していますのでぜひご参加下さい。
・プロダクト開発体制を一挙公開〜メルカリ・エンジニア組織の大解剖〜
また、今後もエンジニアリング組織に関係するイベントを随時開催していきます。connpassでメルカリ/Mercariのグループメンバーになることで最新情報を受け取れます。