メルカリ新アプリ「メルカリ アッテ」でGCPとGoを採用する理由とは?
株式会社ソウゾウ 執行役員 鶴岡達也さん
ソウゾウ開発グループのマネージメントを担当。2005年よりウノウ株式会社で写真共有サービスの開発を担当し、その後二度の起業を経験。2013年、メルカリ代表の山田進太郎氏からのオファーを受けて、メルカリ創業を技術的に支援。ソウゾウ設立後は新規サービスの技術選定、設計・開発・運用を担当し、現在は開発グループのチームマネージメントに注力。
吉羽 現在、鶴岡さんがいらっしゃる、メルカリグループ会社のソウゾウでは、Google Cloud Platform(GCP)を使っているそうですね。
鶴岡 そうです。ソウゾウは完全にGCPを使っていくと最初に決めて、追求していってます。
吉羽 それはどういう理由からですか?
鶴岡 ソウゾウで、どういうアプリを作るかは決まっていたので、当初はメルカリと同じ技術を使おうかと考えていました。しかしソウゾウは、会社というハコ自体がメルカリとそもそも分かれているので、違う考え方もありだなと思って。きっかけは、メルカリ代表取締役会長兼CEOの山田(進太郎)が「Goってどうなの?」と僕に言ってきたこと。それで、Goについて調べていたんですね。あとGCPについては、名村(当時サイバーエージェントの主席エンジニア、現メルカリ執行役員CTO)から良い評価を聞いていて、じゃあGCPも見てみますと。
Goを調べてみると、確かにこれは良さそうだと思ったんですね。PHPの課題になっている部分を上手くカバーしていていいなと。GCPについては、おそらく5、6年以上前、Google App Engine(GAE)が最初に出た頃、すごく評判が悪かったという印象をずっと引きずっていて(笑)。
吉羽 当時、JavaとPythonしか対応してなかった頃のことですね(笑)。
鶴岡 その印象で、技術選定の候補としてすら考えてなかったんですけど、2015年の9月頃に調べてみると、すごく進化していて。そのGAEが、ちょうどGoを正式版で対応しはじめていたんです。だったらちょっと触ってみようと、一通りドキュメントを見てみたら、僕がメルカリを作る時にすごく苦労していた部分がちょうどいい具合に全部カバーされていたんですよ。
吉羽 スケーラビリティなどでしょうか。
鶴岡 そうなんです。で、これが本当にワークするんだとしたらすごいと思って。まさにBigQueryを知った時と同じ感覚です。インフラに対する全く違うタイプの解決策だと思い、調べてみました。
ソウゾウでは「メルカリ アッテ」というアプリを作ってるんですけど、メルカリの立ち上げとは考え方が全く違いました。メルカリの場合はユーザーがゼロの状態から始まったのですが、アッテに関してはメルカリのサービスがすでに立ち上がっているので、そこから送客すれば短期間に多くのユーザーに見てもらえる可能性がある。逆にいうと、インフラとしては、メルカリと同様のすさまじいアクセスを何の問題もなく捌けないといけないという要件がありました。
あとは当然サービスも、いきなり大きくなっていくのか、メルカリみたいな曲線を描くのか、あるいは最初はじわりじわりなのかも分からないので、スケールを調整できたほうがいいなというのはありましたね。
他には、機能を改修する時など、簡単なものであればすぐデプロイしますが、例えばデータベースを変えるときなどの大きな変更は、初期のメルカリの時には結構夜中にやってましたね(笑)。
吉羽 そうですよね。サービスはなるべく止めたくないですし。
鶴岡 そう、サービス無停止もやりたいなと思ってました。あとは、例えばWebサーバの追加に関しても、初期のメルカリの時は足すという作業を人がやらないといけなかったのですが、そういう作業も無しにして、何もしなくてもサーバが増えたり減ったりする形こそが本当のスケーラブルですよね。
説明を読む限りでは、GAEはそれらを満たしていて、当時苦労していた分、いいなと思ったんです。もちろんいきなり作り始めるのではなく、そもそも本当にGAEが説明通りなのかを検証する作業にまずは入るんですけど。
吉羽 まずドキュメントの検証をしたということですね。
鶴岡 そうですね。Googleの方に来ていただき、裏側がどうなっているのかという話をいろいろと聞きました。GCPは、すごく昔からGoogleの社内で当たり前に使われていた技術の名前を変えているだけで、GoogleのサービスもGCPに乗っかっている。それなら、Googleと同じ信頼性、Googleのインフラを見ているエンジニアのリソースを借りてサービスを作れるということなんじゃないかと思いました。
他にも、当時SnapchatでもGAEは使われていたのですが、Snapchatにはインフラのメンバーが全くいないのに運用できていると聞き、ますます良さそうだと思い本格的に使うことにしました。