1.5K Views
September 16, 23
スライド概要
https://jazug.connpass.com/event/293744/
Japan Azure User Group 13周年イベント
「Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリを動かしてみよう」
AI ショッピングカートは、スケーラブルで、回復力があり、安全で、パーソナライズされたレコメンデーションエンジンを、Azure OpenAI Service と Azure Spring Apps で構築します。Azure OpenAI により、カート内の商品の栄養分析を実行し、それらの食材を使用した上位 3 つのレシピを生成します。Azure Developer CLI (azd) により、わずか数コマンドで、アプリを Azure で起動し実行できます。本セッションでは10分間で、Microsoft と VMware が共同開発した Azure Spring Apps 概要とこのアプリについて簡潔にご紹介します。
ヴイエムウェア株式会社 プリンシパルエンタープライズアーキテクト。Microsoft で13年間、テクニカルエバンジェリストとして .NET、Visual Studio、Windows、iOS、Android、Microsoft Azure 等の開発者向け最新技術啓発活動を実施。その後、Dell、Accenture、Elastic 等を通じて現職でも同様の活動を実施。 2019年4月〜2021年8月迄、内閣官房 IT 総合戦略室 政府 CIO 補佐官を兼務、2021年9月〜2024年3月迄、デジタル庁 PjM ユニット ソリューションアーキテクトを兼務。 2022年、企業向けに技術顧問、クラウド等開発技術トレーニング、技術マーケティング支援、エバンジェリスト業務、エバンジェリスト養成などを行う合同会社デベロッパーアドボケイトを設立、数社の技術顧問業務や、トレーニング等を実施。
Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリを動かしてみよう 鈴⽊ 章太郎 主席エンタープライズアーキテクト ヴイエムウェア株式会社 戦略ビジネス推進本部 © 2023 VMware, Inc.
鈴⽊ 章太郎 X (Twitter) : @shosuz ヴイエムウェア株式会社 戦略ビジネス推進本部 主席エンタープライズアーキテクト Microsoft で13年間、テクニカルエバンジェリスト として .NET、Visual Studio、Windows、iOS、 Android、Microsoft Azure 等の開発者向け 技術啓発活動を実施。 その後 Dell、Accenture、Elastic での開発者 向け技術啓発活動等を経て現職。 2019年4⽉より2021年8⽉まで、内閣官房 IT 総合戦略室 政府 CIO 補佐官を兼務。 2021年9⽉より、デジタル庁 PjM ユニット & AI チームのソリューションアーキテクト を兼務。 ©2023 VMware, Inc.
Agenda l Azure Spring Apps とは︖ l Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリ解説 l Azure Spring Apps Enterprise l まとめ ©2023 VMware, Inc. 3
Azure Spring Apps とは https://learn.microsoft.com/azure/spring-apps/ © 2023 VMware, Inc. 4
Azure Spring Apps Spring Boot マイクロサービス向けの完全なマネージドサービス Azure のエコシステムとサービスの多くの選択肢と完全な統合 Azure Active Directory Azure Monitor DIY with Spring Boot 責務 Azure Spring Apps Service アプリケーションの統合、デバッグ Azure Database for MySQL Azure Cosmos DB CI/CD クラスタのビルドと管理 メトリクス ログ トレーシング サービス バインディング Managed Identities Service Principals Azure Spring Apps Service Runtime User Environment Azure Cache for Redis Spring Cloud ミドルウェアのホスト モニタリングとロギング Config Git リポジトリ Source App 1 App 2 App N Config Server Service Registry Lifecycle Mgmt. App Resiliency Log Stream Data Encryption Custom Domain SelfDiagnostics スケーリング パッチ Azure DevOps CI/CD サポート Azure Spring Apps agents GitHub お客様 VMware Microsoft Jenkins │ © 2023 VMware, Inc. Azure Kubernetes Service 5
Spring Boot マイクロサービス向けの完全なマネージドサービス Azure エコシステムの⼀部としてストレージ、データベース、監視など他の Azure サービスに 簡単にバインドできる • • • • • ユーザーはインフラストラクチャの管理に煩わされることなく、アプリの構築と実⾏に集中できる Spring Boot アプリに JAR やコード、または Steeltoe アプリに ZIP ファイルをデプロイすると、Spring サービスランタイムと 組み込みのアプリ ライフサイクル サポートにアプリが⾃動的に接続される 監視が容易。デプロイ後、アプリのパフォーマンスを監視し、エラーを修正して、アプリケーションを迅速に改善できる Azure のエコシステムとサービスへの完全な統合 フル マネージド インフラストラクチャと組み込みのライフサイクル管理を備えたエンタープライズ対応性あり │ © 2023 VMware, Inc. 6
Azure Spring Apps を使⽤する理由 アプリケーションを Azure Spring Apps にデプロイして得られる利点 l 既存の Spring アプリを効率的に移⾏し、クラウドのスケーリングとコストを管理 l Spring Cloud のパターンを使⽤したアプリの最新化により、俊敏性とデリバリーのスピードを向上 l クラウド規模で Java を実⾏し複雑なインフラストラクチャなしで使⽤率向上 l コンテナー化の依存関係なしで迅速に開発およびデプロイ l 運⽤ワークロードを効率的かつ簡単に監視 ※ Azure Spring Apps では、Java Spring Boot と ASP.NET Core Steeltoe の両⽅のアプリがサポートされています。 Steeltoe に対するサポートは、現在、パブリック プレビューとして提供されています。 パブリック プレビューの提供では、公式リリースの前に新機能をお試しいただけます。 │ © 2023 VMware, Inc. 7
Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリ解説 https://learn.microsoft.com/en-us/samples/azure-samples/apptemplates-java-openai-springapps/app-templates-java-openaispringapps/ © 2023 VMware, Inc. 8
アプリケーションアーキテクチャ このサンプル アプリケーションが使⽤する リソースを⽰す⾼レベルのアーキテクチャ図 • • • • • • • フロントエンド React アプリをコンテナアプリとして ホストする Azure Container Apps (環境) 及び Azure Spring Apps Standard コンサンプション 及び専⽤プラン AI ショッピング カート サービスを Spring アプリとして ホストする Azure Spring Apps フロントエンドの Docker イメージをホストする Azure Container Registry AI ショッピング カート サービスのデータを保存する Azure Database for PostgreSQL (フレキシブ ル サーバー) 監視とログ記録を⾏う Azure Monitor 栄養分析を実⾏し、トップ 3 のレシピを⽣成する Azure OpenAI azd up コマンドを使⽤して作成される単⼀の リソース グループ (Azure OpenAI は別途デプロイ) デプロイは簡単︕ │ © 2023 VMware, Inc. https://learn.microsoft.com/en-us/samples/azure-samples/app-templates-java-openai-springapps/app-templates-java-openai-springapps/ 9
Azure OpenAI Service のデプロイ Portal で先にデプロイしておき (GPT-3.5 or GPT-4)、それを azd コマンド実⾏時にセットする # Set the environment variables for Azure OpenAI • azd env set azureOpenAiApiKey <replace-with-Azure-OpenAi-API-key> • azd env set azureOpenAiEndpoint <replace-with-Azure-OpenAi-endpoint> • azd env set azureOpenAiDeploymentId <replace-with-Azure-OpenAi-deployment-id/name> # To use GPT-3.5 Turbo model set this environment variable to false • azd env set isAzureOpenAiGpt4Model true │ © 2023 VMware, Inc. https://learn.microsoft.com/en-us/samples/azure-samples/app-templates-java-openai-springapps/app-templates-java-openai-springapps/ 10
Demo Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリ Confidential │ ©2021 VMware, Inc. 11
© 2023 VMware, Inc. 12
ソースコード https://github.com/azure-samples/app-templates-java-openai-springapps/tree/main/ © 2023 VMware, Inc. 13
次のステップ - エンタープライズシナリオ 多⾔語アプリケーションのデプロイ、Tanzu コンポーネントのサポート、SLA 保証を求める場合 https://github.com/Azure/azure-spring-apps-landing-zone-accelerator l Azure Spring Apps Enterprise の使⽤を推奨 l Azure Spring Apps ランディング ゾーン アクセラ レータ(Spring Boot アプリケーションをデプロイす るために使⽤できるAzure Spring Appsリファレン ス アーキテクチャを作成する⼿順)を参照 l 運⽤対応インフラストラクチャのプロビジョニングと、 Spring Boot および Spring Cloud アプリの Azure Spring Apps へのデプロイを合理化する ように設計されたアーキテクチャガイダンスを提供 l ワークロード所有者は、ランディング ゾーン アクセラ レータで提供されるアーキテクチャ ガイダンスを使⽤ して、⾃信を持って⽬標の技術的状態を達成 © 2023 VMware, Inc. 14
Azure Spring Apps Enterprise https://learn.microsoft.com/ja-jp/azure/springapps/overview#enterprise-plan © 2023 VMware, Inc. 15
Azure Spring Apps Enterprise = Tanzu Application Platform as a Service Kubernetes 上の開発者体験を向上するアプリケーションプラットフォーム デベロッパーの⽣産性向上 ⾼速なビルドと持続可能な 本番環境へのパス ↑ 本来、AKS、EKS、GKE、TKG、その他殆どの K8s クラスターで稼働 │ © 2023 VMware, Inc. デベロッパーとインフラ エンジニアの仕事を調整 16
開発者の⽣産性向上 標準環境の構築により、開発チーム全体の標準化を促進、チームの⽣産性を向上 プロジェクト開始にどれくらいの期間を要していますか︖ ❗ 開発チームの標準ポータル ❗ アプリケーションの標準テンプレート 開発環境の構築にどれくらいの期間を要していますか︖ プロジェクト標準はお持ちですか︖ ❗ アプリケーションフレームワーク (Spring) ❗ 開発者の⽣産性を阻害しない開発環境 アプリケーションの標準テンプレート ü 多様な⾔語によるプロジェクトの標準テンプレートにより、 プロジェクトの開始をスムーズに ü 雛形のコードを⾃動⽣成 │ © 2023 VMware, Inc. 組織カタログ、API ポータル、ツールアドイン他 ü 標準 API やデータアクセスのためのポータルを提供 ü Visual Studio Code, Visual Studio, IntelliJ ⽤拡張機能 17
Demo ACME Fitness Application Confidential │ ©2021 VMware, Inc. 18
ACME フィットネスアプリで検証できること az コマンドのみで Azure 上のリソース作成、AAD 認証、DB 追加、監視、CI/CD まで https://learn.microsoft.com/ja-jp/azure/spring-apps/quickstart-sample-app-acme-fitness-store-introduction •Azure Spring Apps サービスインスタンスを プロビジョニング •Application Configuration Service リポジトリの構成 •多⾔語アプリケーションを Azure にデプロイし、 Tanzu Build Service を使⽤してビルドする •Spring Cloud Gateway を使⽤してアプリ ケーションへのルーティングを構成する •アプリケーションを開く •API ポータルでアプリケーション API を探索 する •アプリケーションのシングルサインオン (SSO) を構成する •アプリケーションを監視する •GitHub Actions を使⽤してプロビジョニング とデプロイメントを⾃動化する │ © 2023 VMware, Inc. • Java Spring Boot アプリケーション (3) : • ⼊⼿可能な製品を取得するためのカタログ サービス。このアプリケーションは Azure AD 認証を使⽤して PostgreSQL に接続 • ユーザーの注⽂に対する⽀払いを処理および承認するための決済サービス • 認証されたユーザーを参照するためのアイデンティティ サービス • Python アプリケーション (1) : • ユーザーが購⼊した商品を管理するためのカートサービス • ASP.NET Core アプリケーション (1) • カートに⼊っている商品を注⽂する注⽂サービス • NodeJS と静的 HTMLアプリケーション (1) • フロントエンドショッピングアプリケーション 19
│ © 2023 VMware, Inc. 20
運⽤の⼿間を省きながら Spring ポートフォリオを拡⼤ エンタープライズ規模での Spring アプリケーションのよりセキュアなデプロイと管理 フルマネージドサービスによる利便性の向上 スケーリングとグローバルデプロイオプションの改善 商⽤サポートによりシームレスな運⽤を維持 既存 API の管理と新規 API のコントローラ作成 エンタープライズで利⽤できるのツールや テンプレートを開発チームに提供 │ © 2023 VMware, Inc. 21
アプリケーションを常に把握 アプリの監視とトラブルシューティングが容易に Azure Monitor で価値のある インサイトを収集 集計されたログ、システム、 JVM メトリクスの表⽰ 分散トレースによるサービス リクエストの追跡 リアルタイムでログを ストリーム 閾値アラートによる問題の特定 │ © 2023 VMware, Inc. 22
エンタープライズグレードの⾰新的な機能を搭載 VMware Tanzu as a マネージドサービス クラウドネイティブパターン をデフォルトで活⽤ スタートまでの時間を短縮 • Application Accelerators • -マイクロサービスベースのアプリケー ションを単⼀のURLとして簡単に公開し、 管理 –アプリのテンプレートを利⽤して素 早くスタート • Tanzu Build Service –ソースコードから実⾏ワークロード を⾃動ビルド Spring Cloud Gateway • API portal -アプリ内のすべてのマイクロサービス に対してAPIドキュメントを⾃動⽣成し 検出 • 迅速なフィードバックループ でよりスマートなビルド • Application Live View –アプリベースのメトリクスとデバッグ で、開発中のアプリケーションの トラブルシューティングを容易に • Tanzu Buildpacks –⼀貫した再現性のあるビルドツールに より、「私のマシンでは動作するのに …」というエラーを排除 Service Registry & Config Service –クラウドネイティブツールを利⽤して マイクロサービスアーキテクチャを強化 │ © 2023 VMware, Inc. 23
Application Live View for VMware Tanzu 実⾏中のアプリの内部を⾒るための軽量なインサイトとトラブルシューティングのツール 主要な機能: • アプリの情報 • アプリの詳細 • 健全性 - アプリの準備状況、有効性、ディス ク容量 • 環境-システムプロパティ、システム環境、 構成プロパティ • ログレベル - 各アプリケーション⽤ • JVM の統計 - メモリとスレッドの詳細。 • HTTP リクエスト • キャッシュ • セッション • スケジュールされたタスク • Beans • メトリクス... │ © 2023 VMware, Inc. 24
Application Accelerator for VMware Tanzu 企業標準に沿ったテンプレートに基づく新規アプリケーションの作成 アーキテクトが準備 • エンタープライズアーキテクトは、Application Accelerator を使⽤して、組織内の開発者やオペレータ に、企業に適合した既製のコードと構成を提供 開発者は利⽤ • 開発者は Application Accelerator を使⽤して、企業 の標準に従った新しいプロジェクトを作成 │ © 2023 VMware, Inc. 25
Agenda まとめ l Azure Spring Apps とは︖ l Java/OpenAI/Azure Spring Apps AI ショッピングカートアプリ解説 l Azure Spring Apps Enterprise ©2023 VMware, Inc. 26
9/19 より登録開始︕ Ignite 前⽇(オンライン)まで︕w EPXXXXX
Thank you for your attention! © 2023 VMware, Inc.