Google Cloud Next の Mini TAP に参加しました

2023-12-20

はじめに

初めまして。株式会社 Belong で Junior Engineer として、主に Frontend の開発を担当しています。ryo です。 弊社では Google Cloud を利用しているプロジェクトが多く、今回は勉強やキャッチアップを目的として、Google Cloud Next Tokyo ’23 に行ってきました。 その中で、23 年 7 月入社の私(ryo), suzu, nakasei で Mini TAP に参加させていただきましたので、その雰囲気と内容をまとめています。

Mini TAP とは

Google Cloud では、 Google Cloud による内製化支援として「Tech Acceleration Program」(TAP)というプログラムを提供しています1。これは現在のビジネス課題や実現したいことを元に、 Google Cloud の専門家と一緒に、Google Cloud を活用したソリューションを数日かけて検討するプログラムです。今回参加した Mini TAP はこのプログラムを 1 時間に圧縮した、体験版のような内容でした。

参加の経緯

Belong では既に多くのプロジェクトを Google Cloud を用いて内製しているのですが、私をはじめ Google Cloud に慣れていない若手メンバーが増えてきています。 そんな折、弊社の CTO から Cloud Next で Mini TAP が行われる事を教えていただき、Cloud Next の雰囲気を感じつつ、Google Cloud の専門家と話せる貴重な機会でしたので参加させていただきました。

Mini TAP の雰囲気

私たち含めて各日4団体で合計8団体が参加されていました。事前に伝えられた時間に Mini TAP 用のブースに伺って簡単な挨拶をした後、アーキテクチャをホワイトボードに書き出してから課題を共有して検討していきました。 質問をとてもしやすい雰囲気で、専門家の方から検討している課題の範囲に限らない解決方法をお教えいただけたので、とても勉強になりました。 ただ、これは参加させていただいた私たちの反省なのですが、サービスの持つ課題を明確に伝える準備が十分に出来ておらず、議論の範囲が狭くなってしまったと感じました。 そのため、参加される際は十分に準備をしておいた方がより有意義な場に出来るかと思います。

Mini TAP の内容

私たちが関わっている、Belong のビジネスを支える在庫管理システムとにこスマのシステムを元に、Google Cloud の専門家の方と一緒に、以下のような内容を検討しました。

※ 基本的には1つのシステムに関して行われることが多いですが、今回は特別に参加したエンジニアが関わる 2 つのプロダクトに関して見ていただけました。

在庫管理システム

アーキテクチャ

今回題材とした在庫管理システムの API は、VPC ネットワークに Cloud Run を立てて運用しています。

課題

  • 在庫システムは、現在は社内ユーザが利用するという前提のもと、IAP を使用したアクセス制限を行っている
  • 将来的な構想として、外部システムから在庫管理システムの API を叩くという形の連携を行いたい
  • その場合にどのようなアクセス方法が考えられるか

検討した内容

認証基盤を用意するのではなく、外部のシステム向けに別の Cloud Run を立て、そちらを叩かせるという方針を提案していただけました。

方針

システムは利用する Actor によって、分けるべきであるという方針。 既存の API は Belong メンバーが利用するものであるが、今回は外部のシステム(人間ではない)が利用するものである為、分ける。

メリット
  • 外部の API に直接、内部の API を叩かせる必要がなくなる。
  • スペックなど Cloud Run の設定は内部と別のものにすることもできる。
デメリット
  • 増えた Cloud Run 分の管理コスト(人的リソース)がかかる。

オプション

また、オプショナルな話題として、 今年6月に GA した Cloud Run のサイドカーパターン2を利用したシステムデザインに関してもご紹介いただきました。

にこスマ

アーキテクチャ

バックエンドにヘッドレス Shopify を利用しており、フロントエンドは Cloud Run で運用しています。にこスマのアーキテクチャについては、にこスマでの Shopify カスタムストアフロント に詳しくまとめられています。

課題

現在にこスマでは、Shopify 側で私たちの行いたいソートを実現する事が出来ないため、フロントエンド側にそのソートのロジックを持っています。 この処理をフロントエンド側で持たないようにする方法はないか、専門家の方と一緒に検討していただきました。

検討した内容

Shopify とフロントエンドサービスの間に、ソートロジックを担うようなサービスを導入する方法を教えていただきました。 Google Cloud のサービスを含めた、以下のようなサービスを利用して実現することが出来そうです。

  • Elasticsearch 3
  • Retail Search 4
  • Vertex Search 5

先に述べたどのサービスでも、以下のような処理を実現できる期待です。

  1. Shopify の商品データをインポートする
  2. インポートしたデータを元に、ソートロジックを実現するためのデータを作成する
  3. 作成したデータを元に、ソートロジックを実現するための API を作成する

中でも Retail Search は小売業特化であるため、にこスマの構成に適していると感じました。

メリット
  • フロントエンド側でソートロジックを持たなくて良くなる
デメリット
  • 実現したい事に対してややオーバースペックなサービスの可能性がある

まとめ

今回は、Google Cloud Next Tokyo ’23 で行われた Mini TAP に参加した際の雰囲気と内容をまとめました。本来1つのプロダクトについて検討する場でしたが、 特別に2つプロダクトについて相談を受けていただきました。また私たちの準備不足な部分も多々ある中でしたが、専門家の方々はとても親切に対応していただき、 課題の解決策を提案していただけました。 本当にありがとうございました。

Belong ではエンジニアを募集しています。興味のある方は、以下リンクをぜひご覧ください!

Footnotes

  1. https://cloud.google.com/blog/ja/products/application-development/in-house-development

  2. https://cloud.google.com/blog/ja/products/serverless/cloud-run-now-supports-multi-container-deployments

  3. https://www.elastic.co/jp/enterprise-search

  4. https://cloud.google.com/blog/ja/topics/retail/why-cloud-retail-search

  5. https://cloud.google.com/generative-ai-app-builder/docs/introduction