選擇 Azure 計算服務

Azure App Service
Azure Kubernetes Service (AKS)

Azure 提供許多裝載應用程式程式碼的方式。 計算一詞是指應用程式執行之資源的裝載模型。 本文可協助您為應用程式選擇計算服務。

選擇候選服務

使用下列流程圖來選取候選計算服務。

Diagram that shows a decision tree for Azure compute services.

下載此判定樹的 Visio 檔案

此圖表是指兩種移轉策略:

  • 隨即轉移:將工作負載移轉至雲端的策略,而不需要重新設計應用程式或變更程序代碼。 也稱為 重新裝載。 如需詳細資訊,請參閱 Azure 移轉和現代化中心
  • 雲端優化:重構應用程式以利用雲端原生特性和功能,以遷移至雲端的策略。

此流程圖的輸出是您起點。 接下來,評估服務以查看它是否符合您的需求。

本文包含數個數據表,可協助您選擇服務。 流程圖中的初始候選專案可能不適合您的應用程式或工作負載。 在此情況下,請展開您的分析以包含其他計算服務。

若應用程式包含多個工作負載,則請分別評估各項工作負載。 完整的解決方案可以納入兩個或多個計算服務。

瞭解基本功能

如果您不熟悉上一節中選取的 Azure 服務,請參閱此概觀檔:

  • Azure 虛擬機器:您在 Azure 虛擬網路內部署和管理虛擬機器(VM)的服務。
  • Azure App 服務:裝載 Web 應用程式、行動應用程式後端、RESTful API 或自動化商務程式的受控服務。
  • Azure Functions:受控函式即服務。
  • Azure Kubernetes Service (AKS):用於執行容器化應用程式的受控 Kubernetes 服務。
  • Azure Container Apps:建置在 Kubernetes 上的受控服務,可簡化在無伺服器環境中部署容器化應用程式。
  • Azure 容器執行個體:此服務是在 Azure 中執行容器的快速簡單方式。 您不需要布建任何 VM 或採用較高層級的服務。
  • Azure Red Hat OpenShift:完全受控的 OpenShift 叢集,用於使用 Kubernetes 在生產環境中執行容器。
  • Azure Spring Apps:針對裝載 Spring Boot 應用程式的受控服務而設計並優化。
  • Azure Service Fabric:可在許多環境中執行的分散式系統平臺,包括 Azure 或內部部署環境。
  • Azure Batch:執行大規模平行和高效能運算 (HPC) 應用程式的受控服務。

了解裝載模型

針對裝載模型,雲端服務分為三種類別:

  • 基礎結構即服務 (IaaS):可讓您布建 VM 以及相關聯的網路和記憶體元件。 然後,您可以將您想要的任何軟體和應用程式部署至這些 VM。 此模型最接近傳統的內部部署環境。 Microsoft 會管理基礎結構。 您仍會管理 VM。

  • 平臺即服務 (PaaS):提供受控裝載環境,您可以在其中部署應用程式,而不需要管理 VM 或網路資源。 Azure App 服務 和 Azure Container Apps 是 PaaS 服務。

  • 函式即服務 (FaaS):可讓您將程式代碼部署至服務,以自動執行它。 Azure Functions 是 FaaS 的服務。

    注意

    Azure Functions 是 Azure 無 伺服器計算供應專案。 若要查看此服務與其他 Azure 無伺服器供應項目的比較方式,例如提供無伺服器工作流程的 Logic Apps,請參閱 在 Azure 中選擇正確的整合和自動化服務。

從 IaaS 到純 PaaS 都有一個範圍。 例如,Azure VM 可以使用虛擬機擴展集自動調整。 這項功能並非完全是 PaaS,但它是 PaaS 中找到的管理功能類型。

控制和輕鬆管理之間有取捨。 IaaS 提供最多控制、彈性和可移植性,但您必須布建、設定和管理您所建立的 VM 和網路元件。 FaaS 服務會自動管理執行應用程式的幾乎所有層面。 PaaS 落在中間的某個地方。

服務 應用程式組合 密度 節點數目下限 狀態管理 Web 裝載
Azure 虛擬機器 不可知論 者 不可知論 者 1 2 無狀態或具狀態 不可知論 者
Azure App Service 應用程式、容器 使用 App Service 方案,每個實例有多個應用程式 1 無狀態 內建
Azure Functions 函式、容器 伺服器 1 伺服器 1 無狀態或具 狀態 6 不適用
Azure Kubernetes Service 容器 每個節點有多個容器 3 3 無狀態或具狀態 不可知論 者
Azure 容器應用程式 容器 無伺服器 無伺服器 無狀態或具狀態 不可知論 者
Azure Container Instances 容器 沒有專用實例 沒有專用節點 無狀態 不可知論 者
Azure Red Hat OpenShift 容器 每個節點有多個容器 6 5 無狀態或具狀態 不可知論 者
Azure Spring Apps 應用程式、微服務 每個服務實例有多個應用程式 2 無狀態 內建
Azure Service Fabric 服務、來賓可執行檔、容器 每個 VM 有多個服務 5 3 無狀態或具狀態 不可知論 者
Azure Batch 排程工作 每個 VM 有多個應用程式 1 4 無狀態 No

備註

  1. 如果您使用取用方案。 針對 App Service 方案,函式會在為 App Service 方案配置的 VM 上執行。 請參閱 為 Azure Functions 選擇正確的服務方案。
  2. 具有兩個或多個實例的服務等級協定 (SLA) 較高。
  3. 建議用於生產環境。
  4. 作業完成之後,可相應減少為零。
  5. 主要節點有 3 個,背景工作節點為 3 個。
  6. 使用 Durable Functions 時。

網路

服務 虛擬網路整合 混合式連線
Azure 虛擬機器 支援 支援
Azure App Service 支援 1 支援 2
Azure Functions 支援 1 支援 3
Azure Kubernetes Service 支援 支援
Azure 容器應用程式 支援 支援
Azure Container Instances 支援 支援
Azure Red Hat OpenShift 支援 支援
Azure Spring Apps 支援 支援
Azure Service Fabric 支援 支援
Azure Batch 支援 支援

備註

  1. 需要 App Service 環境。
  2. 使用 Azure App 服務 混合式 連線。
  3. 需要 App Service 方案或 Azure Functions 進階版 方案

DevOps

服務 本機偵錯 程式設計模型 應用程式更新
Azure 虛擬機器 不可知論 者 不可知論 者 沒有內建支援
Azure App Service IIS Express,其他 1 Web 和 API 應用程式、背景工作的 WebJobs 部署位置
Azure Functions Visual Studio 或 Azure Functions CLI 無伺服器、事件驅動 部署位置
Azure Kubernetes Service Minikube、Docker、其他 不可知論 者 輪流更新
Azure 容器應用程式 本機容器運行時間 不可知論 者 修訂版管理
Azure Container Instances 本機容器運行時間 不可知論 者 不適用
Azure Red Hat OpenShift Minikube、Docker、其他 不可知論 者 輪流更新
Azure Spring Apps Visual Studio Code、Intellij、Eclipse Spring Boot,Steeltoe 滾動升級,藍綠部署
Azure Service Fabric 本機節點叢集 來賓可執行檔、服務模型、動作專案模型、容器 捲動升級 (每個服務)
Azure Batch 不支援 命令行應用程式 不適用

備註

  1. 選項包括 IIS Express for ASP.NET 或 node.js (iisnode)、PHP 網頁伺服器、適用於 IntelliJ 的 Azure 工具組和適用於 Eclipse 的 Azure 工具組。 App Service 也支援已部署 Web 應用程式的遠端偵錯。

延展性

服務 自動調整規模 負載平衡器 縮放限制3
Azure 虛擬機器 虛擬機器擴展集 Azure Load Balancer 平臺映射:每個擴展集 1,000 個節點,自定義映射:每個擴展集 600 個節點
Azure App Service 內建服務 已整合 30 個實例,100 個具有 App Service 環境
Azure Functions 內建服務 已整合 每個函式應用程式 200 個實例
Azure Kubernetes Service Pod 自動調整1、叢集自動調整2 Azure Load Balancer 或 Azure 應用程式閘道 使用 運行時間 SLA 時 5,000 個節點
Azure 容器應用程式 調整規則4 已整合 每個區域5個環境、每個環境20個容器應用程式、每個容器應用程式30個複本
Azure Container Instances 不支援 沒有內建支援 每個訂用帳戶 20 個容器群組 (預設限制)
Azure Red Hat OpenShift Pod 自動調整、叢集自動調整 Azure Load Balancer 或 Azure 應用程式閘道 每個叢集 60 個節點(預設限制)
Azure Spring Apps 內建服務 已整合 標準中的 500 個應用程式實例
Azure Service Fabric 虛擬機器擴展集 Azure Load Balancer 每個虛擬機擴展集 100 個節點
Azure Batch 不適用 Azure Load Balancer 20 核心限制 (預設限制)

備註

  1. 請參閱 自動調整Pod
  2. 請參閱 自動調整叢集以符合 Azure Kubernetes Service 上的應用程式需求。
  3. 請參閱 Azure 訂用帳戶和服務限制、配額和條件約束
  4. 請參閱 在 Azure Container Apps 中設定調整規則。

可用性

服務 SLA 多區域故障轉移
Azure 虛擬機器 虛擬機器的 SLA Azure 流量管理員、Azure Front Door 和跨區域 Azure Load Balancer
Azure App Service App Service 的 SLA Azure 流量管理員 和 Azure Front Door
Azure Functions Functions 的 SLA Azure 流量管理員 和 Azure Front Door
Azure Kubernetes Service AKS 的 SLA Azure 流量管理員、Azure Front Door 和 Multiregion 叢集
Azure 容器應用程式 容器應用程式的 SLA Azure 流量管理員 和 Azure Front Door
Azure Container Instances 容器執行個體 SLA Azure 流量管理員 和 Azure Front Door
Azure Red Hat OpenShift Azure Red Hat OpenShift 的 SLA Azure 流量管理員 和 Azure Front Door
Azure Spring Apps Azure Spring Apps 的 SLA Azure 流量管理員、Azure Front Door 和 Multiregion 叢集
Azure Service Fabric Service Fabric 的 SLA Azure 流量管理員、Azure Front Door 和跨區域 Azure Load Balancer
Azure Batch Batch 的 SLA 不適用

如需服務保證的引導式學習,請參閱核心 雲端服務 - Azure 架構和服務保證

安全性

檢閱並瞭解每個服務的可用安全性控制項和可見性:

其他準則

服務 TLS 成本 適當的架構樣式
Azure 虛擬機器 在 VM 中設定 WindowsLinux 多層式大型 計算 (HPC)
Azure App Service 支援 App Service 價格 Web-queue-worker
Azure Functions 支援 函式定價 微服務、事件驅動架構
Azure Kubernetes Service 輸入控制器 AKS 定價 微服務、事件驅動架構
Azure 容器應用程式 輸入控制器 容器應用程式定價 微服務、事件驅動架構
Azure Container Instances 使用 Sidecar 容器 容器執行個體 定價 微服務、工作自動化、批次作業
Azure Red Hat OpenShift 支援 Azure Red Hat OpenShift 定價 微服務、事件驅動架構
Azure Spring Apps 支援 Azure Spring Apps 定價 Spring Boot, 微服務
Azure Service Fabric 支援 Service Fabric 定價 微服務、事件驅動架構
Azure Batch 支援 批次定價 巨量計算 (HPC)

考慮限制和成本

除了先前的比較數據表之外,請對候選服務下列層面執行更詳細的評估:

參與者

本文由 Microsoft 維護。 它最初是由下列參與者所撰寫:

若要查看非公用LinkedIn配置檔,請登入LinkedIn。

下一步

核心 雲端服務 - Azure 計算選項。 本學習課程模組會探索計算服務如何解決常見的商務需求。