サンプル アプリの概要
Note
Basic、Standard、および Enterprise プランは、2025 年 3 月中旬から廃止され、3 年間の提供終了期間となります。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の提供終了のお知らせ」を参照してください。
Standard 従量課金プランと専用プランは、2024 年 9 月 30 日以降は非推奨となり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金プランと専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise
このクイックスタートでは、よく知られたサンプル アプリである PetClinic を使用して、Azure Spring Apps サービスにアプリをデプロイする方法を説明します。 PetClinic サンプルは、マイクロサービス アーキテクチャ パターンを示し、サービスの内訳を明確に示しています。 サービス検出、構成サーバー、ログ、メトリック、分散トレース、開発者フレンドリなツールのサポートなど、Azure Spring Apps の機能を使用して、サービスを Azure にデプロイする方法を確認します。
Azure Spring Apps のデプロイの例を使用するには、ソース コードの場所だけが必要です。これは、必要に応じて提供されます。
次の図は、PetClinic アプリケーションのアーキテクチャを示しています。
Note
アプリケーションが Azure Spring Apps Enterprise プランでホストされている場合、アプリケーションにコード変更を加えることなく、マネージド Application Configuration Service for VMware Tanzu は Spring Cloud 構成サーバーの役割を担い、マネージド VMware Tanzu Service Registry は Eureka サービス検出の役割を担います。 詳細については、この記事で後述する「Azure Spring Apps でホストされるインフラストラクチャ サービス」セクションを参照してください。
デプロイされる機能サービス
PetClinic は、4 つのコア Spring アプリに分解されます。 これらのすべては、個別にデプロイできるアプリケーションであり、ビジネス ドメイン別に整理されています。
- 顧客サービス: 一般的なユーザー入力ロジックと検証が含まれています。ペットと飼い主の情報 (名前、住所、市区町村、電話番号) が含まれます。
- 訪問サービス: 各ペットのコメントの訪問情報を保存および表示します。
- 獣医サービス: 名前や専門分野など、獣医の情報を保存および表示します。
- API ゲートウェイ: API ゲートウェイは、システムへの単一のエントリ ポイントです。要求を処理し、適切なサービスにルーティングしたり、複数のサービスを呼び出し、結果を集計したりするために使用されます。 3 つのコア サービスは、外部 API をクライアントに公開します。 実際のシステムでは、システムの複雑さによって関数の数が急速に増加する可能性があります。 1 つの複雑な Web ページのレンダリングには、数百のサービスが関係していることがあります。
Azure Spring Apps でホストされるインフラストラクチャ サービス
コア サービスを支援するために、分散システムにはいくつかの一般的なパターンがあります。 Azure Spring Apps には、Spring Boot アプリケーションを拡張して次のパターンを実装するツールが用意されています。
- 構成サービス: Azure Spring Apps Config は、水平方向にスケーラブルな、分散システムのための一元化された構成サービスです。 現時点でローカル ストレージ、Git、および Subversion をサポートしている、プラグ可能なリポジトリを使用します。
- サービス検出: 自動スケーリング、障害、アップグレードのために、アドレスが動的に割り当てられた可能性があるサービス インスタンスのネットワークの場所を自動的に検出できます。
データベース構成
PetClinic の既定の構成では、起動時にデータが入力されるメモリ内データベース (HSQLDB) が使用されます。 永続的なデータベース構成が必要な場合は、MySQL 用に同様のセットアップが提供されます。 MySQL JDBC ドライバーである Connector/J の依存関係は、pom.xml ファイルに既に含まれています。
PetClinic の使用例
完全な実装の詳細については、PetClinic のフォークを参照してください。 このサンプルでは、必要に応じてソース コードを参照します。