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 エコシステムの一部として、コスト効率の高いスケーリングと高度なメモリ管理を使用してエンタープライズ ワークロードを処理するように設計されているため、従来のアプリケーション アーキテクチャと最新のアプリケーション アーキテクチャの両方に最適です。
Functions
Java コードを Azure 関数としてデプロイすることもできます。 優れたツールや他の Azure サービスとの統合による利点が得られます。
関数のサンプル シナリオは次に示します。
- Web、モバイル、モノのインターネット (IoT) に接続されたバックエンド
- ボットまたはリアルタイムのファイルおよびストリーム処理
- スケジュールされたタスクの自動化