適切なデプロイ先を選択する

完了

クラウドや、より具体的には Azure に Java アプリケーションをデプロイするために使用できる、さまざまなオプションについて説明してきました。 しかし、お客様の特定のニーズに最も適したオプションはどれでしょうか。 ここでは、選択に役立つガイドを示します。

サービスとしてのプラットフォームか、インフラストラクチャ制御か

最初の問題は、アプリケーションを完全に制御する必要があるか、またはサービスとしてのプラットフォーム (PaaS) ソリューションを使用するかということです。 通常、その答えは作業しているチームのニーズによって異なります。

PaaS ソリューションの方が簡単に使用できます。 低コストで信頼性が高く、セキュリティも優れているため、多くのチームで優先されます。

チームは次のような理由で PaaS ソリューションを選択します。

  • 迅速に運用環境に移行する必要があり、運用チームが限られている、またはまったく存在しない。
  • 高可用性、セキュリティ、またはコンプライアンスに関する特定の要件があり、管理サービスによって提供される、すぐに使える機能で、それらのニーズを満たすことができる。
  • 運用レベルのインフラストラクチャを保守するリソースまたは意思を持っていない。

一方、主に次のような理由により、インフラストラクチャを完全に制御することを優先するチームもあります。

  • 特定のプロプライエタリ ソフトウェアや一般的ではない Java 機能を使用している場合は、管理サービスが適切な選択ではないことがあります。 たとえば、ネットワーク ブロードキャストを使用してアプリケーション ノードを検索する場合、この機能を管理サービスで使用することはできません。
  • 特定のネイティブ ライブラリを使用する必要がある場合。これも管理サービスで使用することはできません。

Azure での PaaS ソリューションを選択する

サービスとしてのプラットフォーム ソリューションで Java ワークロードを実行する場合、Azure には次の 4 つの使用可能なオプションが用意されています。

  • Azure Functions: 非常に柔軟にスケーリングできるシンプルなイベント ドリブン型のワークロードに最適です。
  • Azure App Service:Jakarta EE ワークロードの実行に最適です。
  • Azure Spring Apps: Spring Boot アプリケーションや、より具体的には Spring Cloud マイクロサービスを実行する場合に最適です。

Azure でのインフラストラクチャ制御を選択する

デプロイを完全に制御する場合、Azure には次の 2 つの主なオプションが用意されています。

  • Azure Container Apps:コンテナーベースの単純な Java モノリシック アプリケーションの実行に最適です。
  • Azure Kubernetes Service (AKS): コンテナーベースのより複雑な Java アプリケーションに最適です。 豊富な AKS エコシステムによる利点もあります。
  • Azure Virtual Machines:何らかの種類のワークロードを実行する必要がある場合、またはアプリケーションを再設計することなく既存のオンプレミスのインフラストラクチャから "リフト アンド シフト" する必要がある場合に最適です。

決定に役立つ最終的な判断基準

デプロイ先を決定することは、最初のステップにすぎません。 使用するサービスを選択する際には、次の点に注意してください。

  • メンテナンス タスクは、選択するサービスの種類と、独自の運用チームのスキル セットの両方によって大きく異なります。
  • 開発者はそのプラットフォームを毎日使用することになります。そのサービスに優れた開発者エクスペリエンスが備わっていれば、生産性が向上します。

どちらの点についても、選択はお客様のチームによって異なります。 ベスト プラクティスとして、チームの専門知識と好みに合ったデプロイ先を選択することをお勧めします。