Quarkus アプリケーションを作成する

完了

このユニットでは、Quarkus アプリケーションの作成について説明します。

Azure Container Apps

Azure Container Apps は、Azure でのフル マネージド サーバーレス コンテナー サービスです。 これにより、オーケストレーションや、Kubernetes などの複雑なインフラストラクチャの管理を気にすることなく、コンテナー化されたアプリケーションを実行できます。 任意のプログラミング言語またはフレームワークを使ってコードを書きます (ここでは Java と Quarkus を使いますが、任意のものを使用できます)。そして、Distributed Application Runtime (Dapr) を完全にサポートするマイクロサービスを構築できます。 Kubernetes Event-Driven Autoscaling (KEDA) を使う HTTP トラフィックまたはイベントに基づいて、コンテナーは動的にスケーリングされます。

あなたは、Container Apps でロジックをホストし、Azure PostgreSQL データベースでそのデータベースをホストする Quarkus アプリケーションを作成したいと考えています。

Azure Database for PostgreSQL

Azure Database for PostgreSQL は、オープンソースの Postgres データベース エンジンに基づくリレーショナル データベース サービスです。 フル マネージドのサービスとしてのデータベースであり、予測可能なパフォーマンス、強化されたセキュリティ、高可用性、動的なスケーラビリティを実現しながら、ミッションクリティカルなワークロードを処理できます。

Quarkus

Quarkus は、OpenJDK HotSpot と GraalVM 向けに調整された Kubernetes ネイティブ Java スタックです。 これは最適な組み合わせの Java ライブラリと標準から作成されています。 Quarkus は Java アプリケーションを記述するためのオープンソース スタックです。 Quarkus はマイクロサービスに非常に適していますが、それに限定されるわけではありません。

開発者の観点から見ると、Quarkus によって快適な開発者エクスペリエンスを実現できます。高速なライブ リロードと統合された構成を備え、GraalVM の複雑さが隠されているので、ネイティブ実行可能ファイルを簡単に生成できます。 このすべてを、新しいプログラミング モデルを導入することなく実現できます。 Quarkus を使うと、既にご存知の標準ライブラリ (CDI、JPA、Bean Validation、JAX-RS など) や多くの人気のあるフレームワーク (Eclipse Vert.x や Apache Camel など) での経験を生かすことができます。

Quarkus アプリケーションを開発する

Quarkus は、アプリケーションを実行するための優れたフレームワークです。 特定の Quarkus 拡張機能を追加するだけで、すべてがランタイムによって自動実行されます。 Dev Services のおかげで、PostgreSQL データベースをコンピューターにローカルにインストールする必要はありません。 Dev Services では、Docker を使って PostgreSQL データベースをダウンロードし、構成して起動します。

Quarkus フレームワークはセルフホスト型であり、アプリケーションを実行するためのサポート サービスを提供します。

Azure CLI と Maven を使用してリソースを作成する

Azure CLI を使用して、Azure リソースの作成と管理を行うことができます。 これは、Linux、macOS、Windows で動作します。 CLI を使うと、管理者や開発者は、Web ブラウザーではなく、ターミナルまたはコマンドライン プロンプト (またはスクリプト) を使ってコマンドを実行できるようになります。

たとえば、サブスクリプションの詳細を取得するには、次のコマンドを使用できます。

az account show

このモジュールでは、Azure CLI を使って、Container Apps 環境と Azure Database for PostgreSQL インスタンスを作成します。 Azure CLI には、ターミナルまたは Visual Studio Code からアクセスできます。 または、Azure Cloud Shell からそれにアクセスできます。 このブラウザーベースのシェルはクラウドでホストされています。 Cloud Shell では、Azure CLI は Azure サブスクリプションで使うように構成されています。

Maven パッケージ マネージャーを使ってプロジェクトをブートストラップします。 また、Maven には Quarkus と Dev Services の依存関係も用意されており、これを使うと、Quarkus アプリケーションを開発して簡単にテストできます。

Docker を使用して、PostgreSQL データベースを使用してローカルでアプリケーションを実行およびテストします。