イントロダクション
あなたは Java 開発者であり、オンプレミス のサーバーで実行するアプリをビルドしてデプロイしているとします。 これらのサーバーを調整し、依存関係、スケーリング、その他の考慮事項を管理するのは困難なプロセスです。
ハードウェアをエミュレートする仮想マシンとは異なり、コンテナーは通常のプロセスとしてホスト オペレーティング システム、カーネル、ハードウェアの上で直接実行されます。 このシンプルさのため、コンテナーに必要なシステム リソースが少なくなります。 その結果、オーバーヘッドが大幅に少なく、アプリの起動時間が短縮され、オンデマンドでスケーリングするための優れたユース ケースが得られます。
コンテナーを使用すると、アプリと依存関係がコンテナー イメージで常に分離され、大規模なデプロイの準備が整っていることを確認できます。
このモジュールでは、まず既存の Java アプリをコンテナー化します。 オープンインターネットから、 MITライセンスで共有されている フライト予約システム は、JavaサーブレットとJavaサーバーページ(JSP)を使用して作られたモデルビューコントローラ(MVC)アーキテクチャを使用して構築されたサンプル航空会社に基づいて、完全に応答性の高いサンプルWebベースのフライト予約システムです。 元の Web アプリケーションは、Java SE 8 と Tomcat 8.5 で実行するように設計されています。 ただし、アプリケーションを最新化するように更新され、Java SE 17 と Tomcat 10.1 で実行できるようにしました。
アプリをコンテナー化したら、Dockerfile を構築し、コンテナー イメージを構築するために必要な Docker 命令を記述します。 次に、コンテナー イメージをローカルで実行し、アプリをテストします。 その後、コンテナー イメージを Azure Container Registry にプッシュし、Azure Kubernetes Service にデプロイします。
このモジュールを終了すると、Java アプリをコンテナー化し、コンテナー イメージを Azure Container Registry にプッシュしてから、Azure Kubernetes Service にデプロイできるようになります。
リソースを作成、更新、削除するためのアクセス権を持つ独自の Azure サブスクリプションを使用して、このモジュールのリソースをデプロイします。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
重要
Azure サブスクリプションでの不必要な課金を避けるために、このモジュールを終了したら Azure リソースをプロビジョニング解除することを忘れないでください。
学習目標
このモジュールを終了すると、次のタスクを実行できるようになります。
- Java アプリをコンテナー化します。
- Java アプリのコンテナー イメージをビルドします。
- コンテナー イメージをローカルで実行します。
- Azure Container Registry にコンテナー イメージをプッシュします。
- コンテナー イメージを Azure Kubernetes Service にデプロイします。
[前提条件]
Java 開発者は、既にアプリの構築に精通しています。 このモジュールの演習を完了すると、個人の Azure アカウントを使用します。 以下のリソースがあることを確認してください。
- 演習リソースを作成、更新、削除するアクセス許可と、コンテナー レジストリ スコープで AKS kubelet のプル ロールを割り当てるアクセス許可を持つAzure サブスクリプション。
- Git とサポートされている最新のAzure CLIがインストールされ、使用可能なローカル Bash 環境。
- Docker Desktop が Linux コンテナーを実行するように構成されているか、または Linux 上で Docker Engine を実行しており、Docker CLI がその Bash 環境から実行中のデーモンに接続できること。