Azure でのデプロイの機会
Azure によって、Java アプリケーション用にさまざまなデプロイ ソリューションが提供されます。 このユニットでは、そのいくつかについて説明します。
仮想マシン
Windows と Linux で Azure 仮想マシン (VM) を利用できます。 Linux VM では、Ubuntu、Red Hat、SUSE などのさまざまなディストリビューションから選択できます。
通常、VM は "リフト アンド シフト" の出発点です。これは既存のマシンを Azure に移行するプロセスです。 OS の更新、Java ランタイム、ネットワーク設定、ポートの転送、およびセキュリティに対処する必要があります。
Containers
Azure Kubernetes Service (AKS) は、マネージド Kubernetes サービスです。 Kubernetes は、コンテナ化されたアプリケーションを調整するための "事実上" の標準です。 マイクロサービスと中規模のアプリケーションに最適です。 AKS は、サービス検出、自動スケーリング、および監視を備えています。 Microsoft は、Virtual Kubelet、Dapr、Open Application Model などの Kubernetes プロジェクトの協力会社です。
Azure Red Hat OpenShift は、Red Hat によって管理される Kubernetes の種類です。
Azure Container Instances は、迅速なテスト、概念実証、およびサイドカー コンテナーのためのソリューションです。
Azure App Service
Azure での Java アプリケーションの最も簡単で最もわかりやすいデプロイの機会の 1 つは、Azure App Service です。 自動スケーリング、統合された監視、およびセキュリティを備えています。
Azure Container Apps
Azure Container Apps を使用すると、インフラストラクチャを管理する必要がなく、モノリシックでもマイクロサービスでも、コンテナ化された Java アプリケーションの構築に集中できます。 JAR、WAR、さらにはソース コードをデプロイすることができ、プラットフォームは自動的にメモリを最適化し、需要に基づいてアプリケーションをスケーリングします。 また、JVM トラブルシューティングのための高度な診断機能も統合されており、Java アプリの効率的なパフォーマンスが確保されます。
さらに、Azure Container Apps では、Eureka Server や Config Server などのマネージド Spring コンポーネントがサポートされ、シームレスな Spring 統合が提供されます。 Azure エコシステムの一部として、コスト効率の高いスケーリングと高度なメモリ管理を使用してエンタープライズ ワークロードを処理するように設計されており、従来と最新のアプリケーション アーキテクチャの両方に最適です。
関数
Java コードを Azure 関数としてデプロイすることもできます。 優れたツールや他の Azure サービスとの統合による利点が得られます。
関数のサンプル シナリオは次に示します。
- Web、モバイル、およびモノのインターネット (IoT) に接続されたバックエンド
- ボットまたはリアルタイムのファイルおよびストリーム処理
- スケジュールされたタスクの自動化