『Retty』はなぜ1年でユーザー数3倍まで急成長できたのか。元Googleエンジニア樽石将人氏の打ち手
2015/08/28公開
今年5月には月間利用者数1000万人を突破。国内では最大手のメジャーサービスと伍する位置にまで成長し、着々と歩を進めているのが、グルメ系口コミサービスの『Retty』だ。
創業は2010年。サービス開始から3年が経過していた1年前の2014年4月時点で月間利用者は300万人程度に過ぎなかった。それがこの1年で、3倍以上にまで急成長したことになる。今なお毎月100万人単位でユーザー数が伸び続けているという。
『Retty』の月間利用者数の推移
急成長をけん引してきたのは、昨年6月にCTOに就任した樽石将人氏だ。樽石氏は2009年から4年にわたってGoogleに勤務していた経歴を持ち、インフラやGoogleマップナビ、モバイル検索の開発・運用に携わってきた。
『Retty』が急成長を遂げた裏側ではどのような施策が打たれていたのか。樽石氏がGoogleで培った知見は、そこにどのような形で活かされているのか。
グロース施策はデータ解析のみにあらず。初期は基盤整備に注力
RettyのCTO樽石将人氏
Rettyにおける樽石氏の役割は大きく分けて2つあるという。
1つは、「食を通じて世界中の人々をHappyに」というビジョン達成のため、経営課題をエンジニアリングで解決すべく会社規模の拡大やスキルの蓄積・浸透など長期的視点に立ったエコシステムを作ること。もう1つは、もう少し短期的な視点でサービスグロースのために必要な施策を打っていくことだ。
短期的な施策については、「ユーザー数が100万人規模の時と1000万人規模の時とでは必要なシステムの構成が違うが、大きなチャレンジはあまりなかった。長期的な視点で考えれば誤差のようなもので、サービスの成長フェーズに応じて、その時に必要な施策を打っていくことがポイントだった」と振り返る。
樽石氏がこの1年でインフラシステムに施してきたグロース施策は、以下のようにまとめることができるという。
樽石氏がこの1年でインフラシステムに施してきたグロース施策
■フェーズ0:月間利用者100万人以下(樽石氏入社以前)
RettyではサーバにAWSを使用しているが、樽石氏入社以前はオートスケールはなく、キャッシュ機能も限定的なシンプルな構造だった。サーバ台数は必要に応じて手動で増やしていた。
■フェーズ1:月間利用者100万人~200万人(外部から関わり始める)
月間利用者数が増え、データベースの負荷が上がって処理が耐えられなくなってきていた。それに対応すべく、フロントキャッシュ機能を入れ、オートスケールする構成に切り替えた。ここから、ユーザーが増えてもシステムが自動で増強する体制になった。
■フェーズ2:月間利用者200万人~400万人(CTOとしてジョイン)
Googleで導入されているものに近い、エスカレーションモデルのエラー監視の仕組みを導入した。エラーを通知する仕組み自体は以前からあったが、アラートが多すぎて、どれが本当に危険なものなのかが整理されていなかった。
そこで、必要な通知を必要な人にだけ確実に届けるため、TwilioとGAEを使って担当者を電話で呼び出すシステム(Retty Telebot)にしたという。
システムがエラーを検知すると、まずは1次担当者に電話がいく。1次担当者が不在あるいは「No」と回答すると、今度は2次担当者に電話が掛かる。さらに3次……と段階を踏んでアラートが広がっていく。
トラブル対応は24時間365日求められる。そのたびに全員に通知がいくのでは誰も休むことができず、サービスの成長にしたがって疲弊してしまう。その点、この仕組みであれば担当者の順番を変えることで交代で休むことができる。
「アプリを使って通知を受け取る仕組みも作ってありますが、アプリ単体だと通知力が弱かったり、電池が切れていて大事な時に気付けなかったりする問題が起こるため、電話呼び出しをメインにしています」
導入後4カ月は樽石氏が自ら1次担当者を務めることで、この仕組みはすぐに浸透した。確実にアラートが伝わるので、システムが安定するとともに、持続可能な開発体制に寄与することもできたという。
ちなみに、現場のエンジニアがエラー対応するようになった現在でも、現場レベルでの対応がスムーズに進むのをサポートするべく、通常のフローとは別に全てのエラーについて樽石氏の電話も呼び出されるようになっている。
■フェーズ3:月間利用者500万人~
このフェーズからTreasure Dataを導入し、ログ解析を簡単かつ詳細に行うようにした。
創業からの数年でコンテンツ自体はかなり蓄積されていた。このタイミングで初めてデータに基づくグロースハックやSEOに力を入れることで、アクセスは飛躍的に向上したという。
その後は現在に至るまでシステム的には大きな変更を施していない。分析に基づいてPDCAを高速で回すことで、月間利用者1000万人にまで到達することができたという。
「国内向けユーザーサービスの場合、基本的なシステム構成はベストプラクティスや手順書が山のようにあるので、インフラのチャレンジはあまり多くないと思います。『Retty』 でも大枠は概ね完成しているので、現在ではバックエンドエンジンの変更やスケールアップ、無駄の排除といった細かいチューニングで対応しています」
サービスによっては、いきなり大ヒットしてシステム負荷が急増するケースも多いが、『Retty』の場合はコンテンツを軸としてじわじわと成長していく業態であることも功を奏したと樽石氏は言う。
「上記のシステム構成を作るのには数カ月の時間がありました。余裕を持ってエンジニアリングに取り組めたのは良かったと思います」
ポイントは、サービスの成長フェーズに合わせて施策を打つこと
以上はうまくいった例だが、中には施策を打つタイミングを誤り、失敗に終わったこともあるという。
その一例が、Canary Releaseと呼ばれるリリース手法の導入だ。
Canary Releaseとは、一部のサーバだけをバージョンアップし、それに対するユーザーのフィードバックを見て問題がなければ全体に反映するというリリース手法を指す。先行バージョンアップするサーバが「炭坑のカナリア」の役目を果たすということだ。
裏側では1日最低1回はバージョンアップが行われている『Retty』。そのリリース手法にも試行錯誤があった
樽石氏は、Google時代から慣れ親しんだこの手法を導入しようとしたが、結果としてうまくいかなかった。
「Rettyでは最低でも1日に1回はバージョンアップしており、多い時では1日に数回に上ることもある。それを毎回Canary Releaseで最新バージョンの確認を行ってから本リリースを行うとなると、かなりの負担が掛かり、現実的ではないということが分かりました」
そこで現在では一斉リリースし、おかしな点が発見されたらロールバックするか、すぐに修正するという手順に変更している。キャッシュが切れるのが段階的であるというサービスの性質上、キャッシュが切れたアクセスを見張ることで、Canary Releaseと同じ効果が得られることが分かったからだ。
また、うまくいかなった別の例には、「drain可能なシステム構成」もあるという。
これは、『Retty』が利用する外部サービスに障害が発生した場合に、そこに依存する部分だけをうまく切り離す構成にすることで、ユーザーへの影響を最小限に食い止めることを狙った施策だった。
しかし、インフラの人員体制的に、完全な切り離し環境での運用は過大設備であることが判明したため、現在は簡易的な構成に留めているという。
アプリ展開も含めると、システム面でまだまだ「ベストな運用体制」にはなっていないと樽石氏も認めるが、開発手法はあくまでも現実とフェーズのバランスで採用・不採用を見極めるべきと持論を語る。
「システムとはそもそも、生産性を高めたり、負担を減らすためにあるもの。大層なシステムになればなるほどその運用も大変になってきますから、サービス規模が小さいうちは元が取れない。持っているスキルやノウハウをいつ投入するかの見極めが大切であるということを痛感しました」
海外展開に向けて「国内依存しないシステム」に進化できるか
Rettyはこの7月に、2020年のユーザー1億人達成を目指す「2020構想」を発表した。
その大目標に向けて年内にも海外進出に着手する予定という。つまり、順調に来ていた従来のシステムを大きく作り直す「フェーズ4」が訪れようとしているということだ。
すでにシステムをコンポーネント化して粗結合にするリニューアルを進めており、近々リリースできる見込みという。今後も継続的にシステムを改善していくため、エンジニアの採用も強化していく。
「世界中の人々に使ってもらうというのは大きなハードルです。例えば、国内だけであれば性能の良い安定的なサーバ間ネットワーク環境は比較的容易に実現できますが、この状況はユーザーが数億人を超えたり、大陸をまたいだりすると一気に変わります。
『ネットワークは空気のように存在している』という前提を取り払い、国内依存しないシステムとして作らなければなりません。本を読んでも検索しても見つけるのが難しい課題が続々と出てくるでしょう。常に10倍のスケールでも成立する設計を意識することが大事になってくると思います」
「10倍のスケールで考える」のは、『How Google Works』の中でも触れられているGoogleの創業者ラリー・ペイジの思想だ。
また、樽石氏は2011年の東日本大震災に際して「携帯版Googleパーソンファインダー」を開発したことでも知られており、「世界規模で見ればどこかでいつもあのような自然災害が起きている。なのでそういったことも考慮したシステムでなければならない」という言葉には説得力がある。
「これまではまだ、飛行機でもロケットでも流用できる小さな部品を作っている段階だったので、方向性を大きく誤る分岐点がなかった。でも、今後はさらに一歩進んだフェーズになると思っています。このままでは目指しているゴールにたどり着きそうにないと思ったら、それまでにやってきたことを迷わず捨てる勇気を持つことも、時には必要になると思っています」
大きなビジョンの実現から逆算してシステムを設計し、それをサービスの成長フェーズに応じて形にする。目的実現に向けて軌道修正が必要とあれば、それまでに作ったものを捨てることもいとわない……。言葉で言うほど簡単なことではないが、それができて初めてGoogleレベルのスケールが実現するということだろう。
日本という世界有数の食文化の拠点から、世界中の人々に食を通じた価値を届ける。それをエンジニアリングの力で実現するというのが、Retty開発陣の挑戦だ。この1年でそのための環境が整ったとすれば、樽石氏とRettyの本領が試されるのは、むしろここからと言えるのではないだろうか。
取材・文・撮影/鈴木陸夫(編集部) 画像提供/Retty
■関連の外部リンク