適切な宛先を選択する
クラウドで、より具体的には Azure に Java アプリケーションをデプロイするための使用可能なオプションについて説明しました。 しかし、特定のニーズに最も適したオプションはどれですか? 選択に役立つガイドを次に示します。
サービスとしてのプラットフォームまたはインフラストラクチャ制御
最初の質問は、アプリケーションを完全に制御するか、サービスとしてのプラットフォーム (PaaS) ソリューションを使用するかです。 通常、回答は、作業しているチームのニーズによって異なります。
PaaS ソリューションは使いやすくなっています。 多くのチームは、コストの削減、信頼性の向上、セキュリティの向上を実現するため、それらを好みます。
Teams は、次の理由で PaaS ソリューションを選択します。
- すぐに運用環境に移行する必要があり、運用チームが限られているか、運用チームがまったくありません。
- 高可用性、セキュリティ、またはコンプライアンスに関する一定の要件があり、マネージド サービスが提供するすぐに使用できる機能を使用して、これらのニーズを満たすことができます。
- 運用グレードのインフラストラクチャを維持するためのリソースや意欲がない可能性があります。
しかし、一部のチームは、主に次の理由から、インフラストラクチャを完全に制御することを好みます。
- 特定の専用ソフトウェアや一般的でない Java 機能を使用している場合は、マネージド サービスが適していない可能性があります。 たとえば、ネットワーク ブロードキャストを使用してアプリケーション ノードを検索する場合、この機能はマネージド サービスでは使用できません。
- マネージド サービスでは実行されない特定のネイティブ ライブラリを使用します。
Azure で PaaS ソリューションを選択する
サービス としてのプラットフォーム ソリューションで Java ワークロードを実行する場合、Azure には次の 2 つのオプションが用意されています。
- Azure Functions: 非常に適切にスケーリングできる単純なイベント ドリブン ワークロードに最適です。
- Azure App Service: モノリシック Java Web アプリケーションの迅速なプロトタイプ作成に最適です。
Azure でインフラストラクチャ制御を選択する
デプロイを完全に制御するために、Azure には次の 3 つの主要なオプションが用意されています。
- Azure Container Apps: モノリシック アプリやマイクロサービスを含め、Azure 上のすべての種類の Java に対する Java サポートが組み込まれています。
- Azure Kubernetes Service (AKS):より複雑なコンテナー ベースの Java アプリケーションに最適です。 また、豊富な AKS エコシステムの恩恵を受けることができます。
- Azure 仮想マシン: あらゆる種類のワークロードを実行する場合、またはアプリケーションを再設計せずに既存のオンプレミス インフラストラクチャから "リフト アンド シフト" する場合に最適です。
決定に役立つ最後の単語
宛先の決定は、最初のステップにすぎません。 サービスを選択するときは、次の点に注意してください。
- メンテナンス タスクは、選択したサービスの種類と独自の運用チームのスキル セットの両方によって大きく異なります。
- 開発者はプラットフォームを毎日使用します。サービスが優れた開発者エクスペリエンスを提供すれば、生産性が向上します。
どちらの点でも、選択はチームによって異なります。 ベスト プラクティスは、チームの専門知識と好みに合った宛先を選択することです。