Gemini の支援機能を使用してアプリケーションを設計する

このドキュメントでは、Gemini Cloud Assist と、Google Cloudのアプリケーション設計とデプロイのサービスである App Design Center を使用して、アプリケーションを設計する方法について説明します。

Gemini Cloud Assist チャットで自然言語アシスタントを使用し、App Design Center と併用すると、アプリケーション開発時間を短縮できます。この組み合わせにより、アプリケーションの要件と目標を Terraform Infrastructure as Code(IaC)に変換し、組み込みまたは個人のデプロイ パイプラインでデプロイできます。このように、App Design Center は、アプリケーションの作成、カスタマイズ、エクスポート、デプロイを可能にするエンドツーエンドの支援ソリューションを提供します。

大まかには、設計支援に Gemini Cloud Assist を使用する手順は次のとおりです。

  1. Cloud Assist チャットパネルにアクセスします
  2. プロンプトを入力します
  3. Gemini Cloud Assist の回答を確認します
  4. 新しいアプリケーション テンプレートを作成します
  5. アプリケーション設計をイテレーションして改善します
  6. アプリケーション インフラストラクチャをデプロイします

始める前に

Gemini Cloud Assist チャットにアクセスする

プロジェクトに Gemini Cloud Assist が設定されている場合は、 Google Cloud コンソールの任意のページからチャット機能にアクセスできます。

  1. Google Cloud コンソールで、任意のページ([ダッシュボード] など)に移動します。

    ダッシュボードに移動

  2. Google Cloud コンソールのツールバーで、sparkGemini Cloud Assist チャットを開始または終了します」をクリックします。

    [Cloud Assist] パネルが開きます。

アプリケーション テンプレートに精通している場合は、 Google Cloud コンソールの App Design Center に移動し、テンプレートを作成してから、Gemini Cloud Assist チャットを開くことができます。

プロンプトを入力

Gemini Cloud Assist チャットでは、次のような自然言語プロンプト(質問やステートメント)を使用してサポートを利用できます。

  • プロダクト指向のプロンプト(例: 「リージョン eu-west-2 で Cloud Run、Cloud SQL、ロードバランサを一緒に設定したい」)。
  • ビジネス成果指向のプロンプト(「非同期イベントを処理するデータ パイプライン ソリューションが必要」など)。

Gemini Cloud Assist の設計機能を検討している場合や、設計の初期段階にある場合は、次のような基本的な設計関連のプロンプトを使用できます。

  • 「データ パイプラインの自動化のために、他のシステムからトリガーされる短期間のイベントベースのアクションを処理する必要がある。」
  • 「バッチ パイプラインを設定する。」
  • 「データセットで定期的に実行されるジョブを設定したい。」
  • 「Java バックエンドと MySQL データベースを使用して高可用性ウェブ アプリケーションを実装したい。トラフィックはバースト状になるため、迅速にスケールアップとスケールダウンを行う必要がる。」

これらの例では、Gemini Cloud Assist は、 Google Cloud のベスト プラクティスに準拠し、サポートされているリソースタイプに適用される推奨アプリケーション アーキテクチャで応答します。また、スタック内の各リソースの目的も示します。

Gemini Cloud Assist の回答を確認する

Gemini Cloud Assist の回答を確認する方法は、App Design Center テンプレートが開いている間に Gemini にプロンプトを入力したかどうかによって異なります。

[Cloud Assist] パネルから開始し、App Design Center でアプリケーション テンプレートを開いている場合、レスポンスには、プロンプトに基づいてスタック内の各プロダクトの目的を説明する内容が示されます。提案された更新や変更は、App Design Center キャンバスに表示されるアプリケーション設計に直接適用されます。

Cloud Assist パネルから開始したが、App Design Center テンプレートの外部にある場合、レスポンスには初期アーキテクチャ図と、推奨スタック内の各コンポーネントの目的を説明する詳細が含まれます。

[Edit App Design] をクリックして App Design Center に移動し、新しいアプリケーション テンプレートを作成します。テンプレートが作成されると、生成されたアプリケーション設計が App Design Center キャンバスに読み込まれ、アプリケーション設計をさらにイテレーションして改善できます。

App Design Center にアクセスできない場合は、[アプリのデザインを編集] をクリックすると、App Design Center でデザインがプレビュー モードで起動します。プレビュー モードでは、Gemini によって生成されたアプリケーション設計を可視化し、[Cloud Assist] パネルで自然言語のやり取りを使用して改善できます。アプリケーション設計に満足したら、[コードを取得] をクリックして Terraform 構成をダウンロードします。この Terraform コードをデプロイツールで使用して、インフラストラクチャをプロビジョニングできます。

App Design Center のキャンバスでイテレーションする

キャンバス環境内では、Gemini Cloud Assist は設計のコンテキストを保持します。つまり、アーキテクチャを手動で変更した場合、Gemini はこれらの変更を認識し、その支援を受けながらアプリケーションのイテレーションと改善を続けることができます。

新しいアプリケーション テンプレートを作成する

  1. Gemini Cloud Assist チャットで、[Edit App Design] をクリックします。

  2. [新しいテンプレートを作成] ページで、テンプレートの詳細を指定し、[テンプレートを作成] をクリックします。

    アプリケーション設計はテンプレートとしてインポートされ、キャンバスでさらにイテレーションして編集できます。

適切なテンプレートを選択したら、アプリケーション設計をイテレーションして改善するか、アプリケーション インフラストラクチャをデプロイできます。

アプリケーション設計をイテレーションして改善する

Gemini Cloud Assist に提供する初期情報が詳細であるほど、設計目標に沿った初期アプリケーション テンプレートを生成できる可能性が高くなります。複数のプロンプトと会話のターンで各サブシステムとその要件を定義することで、設計を反復的に構築できます。たとえば、Gemini Cloud Assist チャットに次のように入力します。

Help me create an application with 3 microservices called search, order, and
inventory in europe-west1 region.

その後、後続のプロンプトで、フロントエンドの要件の定義など、詳細を追加できます。

I also want a frontend microservice which is exposed via an external load
balancer. The frontend layer invokes the three microservices. Order and
inventory microservices need to have a database with the same name as the
microservice.

次に、ログ要件の定義など、マイクロサービスをさらに絞り込みます。

For the inventory microservice, capture the changelog events and publish
them to a Pub/Sub topic.

次に、バックエンド要件の定義など、マイクロサービスをさらに絞り込みます。

The search microservice should use a distributed search and analytics backend. I
also want the inventory microservice to publish the changelog events to the
distributed search backend.

アプリケーション設計を選択したら、アプリケーション インフラストラクチャをデプロイできます。

アプリケーション インフラストラクチャをデプロイする

  1. アプリケーション テンプレートからアプリケーション インスタンスを作成します。

  2. 次のいずれかの方法でアプリケーションをデプロイします。

次のステップ