利用しているサービス:
Cloud Run, Pub/Sub, Cloud Tasks, Cloud Scheduler, Cloud Monitoring, Cloud Trace, Cloud Logging, Cloud Firestore, Cloud Spanner, BigQuery, Looker, Vertex AI Pipelines
利用しているソリューション:
コンテナをフルマネージドで運用できる Cloud Run を採用
現在の E コマース(以下、EC)は、早く、安く、効率的に商品を届けることに注力し、無駄を省いた結果、「誰かと買い物をする楽しさ」を目指す事業者は多くありません。一方、オフラインのショッピングは、友人や家族など誰かと一緒にウィンドウ ショッピングをしたり、実際に商品を購入するプロセスを楽しむことができます。ショップ店員のおすすめがあったり、セールではワイワイしたにぎわいがあったりなど、人の介在により購買が加速されたりします。この楽しいショッピング体験をオンラインでも実現したいというのがカウシェのコンセプトです。
「カウシェは、1 人では商品が買えないサービスです。友だちと一緒にワイワイしながら、楽しく、お得に商品を購入する体験をオンラインで提供しています。お客様が家族や友だちを紹介してくれるバイラルの要素が組み込まれているので出品者は広告費を削減でき、その分商品の割引を行えます。そのため購入者はほしい商品を安く購入でき、購入者、出品者、カウシェのそれぞれにメリットがあります。」と伊藤氏は話します。
そこでさまざまなクラウド サービスを比較検討した結果、Google Cloud の Cloud Run を中心とした構成によるコンテナ開発の採用を決定したとのこと。「クラウド ベンダーの選定にかかわらず、コンテナ開発を軸にサービス展開をしたいと考えていました。コンテナ開発を採用した理由は、コンテナによるアイソレーションや仮想化によりアプリケーションを手軽に扱えることです。ポータビリティの高さも採用の理由の 1 つでした。」(伊藤氏)
コンテナ開発では、Cloud Run、または Google Kubernetes Engine(GKE)の 2 つの選択肢があったそうです。今回、Cloud Run を採用した理由を伊藤氏は、「マネージドなコンテナ実行環境である Cloud Run が魅力的だったこと、加えて、 Kubernetes の前身となる Borg を開発したのが Google で、コンテナ開発のリーディング カンパニーであることも要因の 1つ です。Cloud Run が決め手となったのは、当時、もっとも手がかからず、コンテナをフルマネージドで運用できたからです。GKE も GKE Autopilot のリリースで、ノードやスケーリング、セキュリティなどクラスタ構成を管理しやすくなっていますが、Cloud Run はサーバーレスということもあり管理がより容易なんです。」と話します。
「Google App Engine も魅力的でしたが、より容易にコンテナで抽象化できるサービスがよいと判断し、Cloud Run を選定しました。数年後、カウシェがさらに事業規模を拡大し、バックエンドのサービスが複雑になったら GKE へ移行する可能性があるかもしれません。コンテナをベースに開発しておけば、GKE に移行するときも、デプロイ場所を変えるだけで対応できます。」(伊藤氏)
Cloud Run の活用で、150 万ダウンロードのサービスでも少人数で運用
今回、Google Cloud を採用したシステム構築には、大きく 2 つのポイントがあります。まず 1 つ目は、なるべくすべてを Cloud Run で動かすことです。システムの基本構成としては、Go 言語で記述されたアプリケーション サーバーが Cloud Run にデプロイされています。また、シェア買いが成立したときのプッシュ通知などの重い処理は非同期処理にするために、 Pub/Sub、Cloud Tasks などを採用。バッチ処理には、Cloud Scheduler などが利用されています。
もう 1 つは、なるべく宣言的にすべてを管理することです。何かをトリガーに、内部的に Cloud Functions を起動するなど、暗黙的な処理もできますが、バッチ処理を含めて gRPC で宣言的に定義しています。システムの監視やサービスレベル契約(SLA)のモニタリングには、Cloud Monitoring や Cloud Trace、Cloud Logging などを、データベースには、Firestore、および Cloud Spanner を活用。データ ウェアハウスに BigQuery、BI ツールに Looker を利用してビジネス指標を分析し、サービス改善や機能強化に生かしています。
Google Cloud を採用した効果を伊藤氏は、次のように話します。「最大のメリットは、運用に手がかからないことです。管理しなければならないコンピュート リソースはほぼゼロで、コンテナのスケールも Cloud Run に任せることができます。インフラやアプリケーションを構築するための便利なサービスが一式そろっていることもメリットの 1 つで、すべての機能を Google Cloud で完結することで、インフラの構築からアプリケーションの実装までを 2 か月で実現できました。」
Vertex AI Pipelines を活用したレコメンド機能や検索機能に期待
現在、カウシェでは、「この商品を買った人には、この商品もおすすめ」といったレコメンド機能を、Vertex AI Pipelines の活用により実装しています。ほしい商品をいかに効率的に見つけることができるか、レコメンド機能や検索機能なども含めて、Vertex AI Pipelines をはじめとする Google Cloud の AI / ML 系のサービスに期待しています。これにより、カウシェとしてのより良い体験を拡張していきたいと思っています」と伊藤氏は話します。
また、大規模なサービスのモニタリングやトラブル シューティング、運用のためのプロダクトなどで構成されている Google Cloud のオペレーション スイートにも大きな期待を寄せています。「サービスレベル指標(SLI)、サービスレベル目標(SLO)を実現するためのダッシュボードを作ったり、可観測性や信頼性を高めたりするツールセットを、AI / ML 系のサービスを使いながらいかにカウシェに組み込んでいくかを検討しています。コンテナベースでの開発やデプロイ、スケールなどをいかに容易に Google Cloud で完結していくかが今後の最大のポイントになります。」(伊藤氏)
伊藤氏は、「カウシェはメンバー自らが働く環境を楽しみ、熱量を最大化する『自律・自燃型組織』を目指し、もの作りを楽しむという組織として『世界一楽しいショッピング体験をつくる』という企業ビジョンの実現も目指しています。今後さらに新しいことに挑戦していくために、常に新しい技術をキャッチアップして自律的に挑戦できる人材も求めています。Google Cloud には、コンテナ基盤を含めたより生産性の高いインフラ開発環境の提供はもちろん、カウシェのビジョン実現に向けた幅広いサポートを期待しています。」と話しています。
Google Cloud ブログより