【事例紹介】Google Cloud に多層サーバーレス アプリケーション パターンを実装する方法 CT217 #GoogleCloudNext

自社(マッキンゼー社)で開発した最先端の「Guesta」という「Gen AIデータレイヤーアクセラレータ」について語られました。
2024.04.12

セッション要約

自社(マッキンゼー社)で開発した最先端の「Guesta」というGen AIデータレイヤーアクセラレータ(データ処理加速のための人工知能技術の模様)についての内容を深掘りしたこのセッションでは、イベント駆動型のアーキテクチャとサーバーレス技術の活用により、構造化・非構造化データの迅速な処理が可能になることを共有してくれました。

フロントエンドUI、APIゲートウェイ、さまざまなデータストレージソリューションの利用によってユーザーインタラクション(行動)が向上し、JWT認証を使用したセキュリティ対策も確立されるようです。

また、FirestoreTerraformGitHubアクションなど、開発プロセスを効率化するツールの活用も紹介されました。

セッション内容

このセッションは「Guesta」というGen AIデータレイヤーアクセラレータの詳細に焦点を当て、その構成と機能が詳しく解説されました。

「Guesta」は、企業が自社内で開発した内部アセット(内部システム)であり、イベント駆動型アーキテクチャを採用しているようで、これにより、Cloud Storage バケットからの構造化および非構造化データの処理が、Cloud FunctionsやCloud RunなどサーバレスサービスとDBソリューション(Pinecone DBやCloud SQLなど)を連携させて行われます。

また、ユーザーインタラクション(行動)を促進するフロントエンドUI、JWT認証を特徴とするAPI GatewayVertex AIやその他のLLM (Large Language Models) と連携するCloud Run上のAPIの組み込みについても触れられていました。

また、素早い内部顧客サポートを目的としたアーキテクチャの開発例も挙げられており、サーバーレスアーキテクチャが迅速なデプロイメントスケーラビリティにどのように貢献するかを教えてくれました。

さらに、開発プロセスの効率化に貢献する技術のツールについても触れられ、Firestore(NoSql:サーバーレス)はWebアプリケーションに最適であり、インフラストラクチャの設定にはTerraformが、ワークフローの自動化にはGitHubアクションを推奨していました。

また、Firebaseをはじめとするリソースの一部ではTerraformによる管理が適用されない例も紹介され、統合セキュリティ対策としてIdentity Aware ProxyGoogle認証の組み込みも自社システム内部では行われているようです。

このセッションから得られる知見は多く、全てを一度に理解するのは難しいかもしれませんが、特にGen AIデータレイヤーアクセラレータ「Guesta」の開発を通じて採用された技術やアーキテクチャの選定がとても参考となりました。

質疑応答

最後に今回のセッションのまとめとなりそうな質疑応答があったので、共有します。

参加者からの質問:

アーキテクチャの分離方法やCI/CDスタックの展開方法に関して質問です。これらはそれぞれ個別にデプロイするのでしょうか?それとも、全てを一つのTerraform設定で行い、Cloud Buildトリガーで実行するのでしょうか?
例えば、コンテナ化されたワークフローのような場合、コンテナを個別にビルドする必要がありますが、その管理方法はどうしていますか?

回答者からの返答:

コンテナに関して言えば、そのビルドプロセスは確かに個別になります。Cloud RunやGKEで実行するためには、予めイメージをビルドする必要があります。
Cloud Buildを使ってそれを行うことはできますし、例えば特定のブランチへのコミットがあった場合にイメージをビルドしてGCRレジストリにプッシュする、というような連鎖的な手順を設定することも可能です。
しかし、Cloud Functionのように、全体をパッケージして一度にデプロイする場合は、事前にイメージが存在する必要があるなど、プロセスが異なります。
また、Terraformをインフラリソースの設定や設置には使用していますが、コードが頻繁に変更されるCloud Functionのデプロイには使用していません。
リソースを変更するたびにTerraformを手動で実行するのではなく、マージをクリックしたらTerraformのビルドが実行されるような自動化されたプロセスを設定しています。
特に本番環境では、デプロイを自動化することをお勧めします。開発環境では手動でも構いませんが、本番環境へのイメージのデプロイにあたっては、安定性を考慮して確実にチェックしたいところです。

まとめ

今回も他社の事例についてのセッションを拝見しました。
breakoutセッションはアーカイブ動画が公開されますが、今回のようなトーク型のセッションは現地でしか聞くことができません。

具体的なアーキテクチャの詳細までは時間的に聞くことはできませんが、実際の生の事例とそれに対する結果を外部の我々が知れるのは嬉しいことです。

今回はなるべくアーカイブ動画が公開されないセッションに参加することも意識したので、残りもブログにしようと思います。