Azure 提供許多裝載應用程式程式碼的方式。 計算一詞是指應用程式執行之資源的裝載模型。 本文可協助您為應用程式選擇計算服務。
選擇候選服務
使用下列流程圖來選取候選計算服務。
此圖表是指兩種移轉策略:
- 隨即轉移:將工作負載移轉至雲端的策略,而不需要重新設計應用程式或變更程序代碼。 也稱為 重新裝載。 如需詳細資訊,請參閱 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 的服務。
從 IaaS 到純 PaaS 都有一個範圍。 例如,Azure VM 可以使用虛擬機擴展集自動調整。 這項功能並非完全是 PaaS,但它是 PaaS 中找到的管理功能類型。
控制和輕鬆管理之間有取捨。 IaaS 提供最多控制、彈性和可移植性,但您必須布建、設定和管理您所建立的 VM 和網路元件。 FaaS 服務會自動管理執行應用程式的幾乎所有層面。 PaaS 落在中間的某個地方。
服務 | 應用程式組合 | 密度 | 節點數目下限 | 狀態管理 | 虛擬主機 |
---|---|---|---|---|---|
Azure 虛擬機器 | 無從驗證 | 無從驗證 | 1 2 | 無狀態或具狀態 | 無從驗證 |
Azure App Service | 應用程式、容器 | 使用 App Service 方案,每個實例有多個應用程式 | 1 | 無狀態 | 內建 |
Azure Functions | 函式、容器 | 無 伺服器 1 | 無 伺服器 1 | 無狀態或具 狀態 6 | 不適用 |
Azure Kubernetes Service | 容器 | 每個節點有多個容器 | 3 3 | 無狀態或具狀態 | 無從驗證 |
Azure 容器應用程式 | 容器 | 無伺服器 | 無伺服器 | 無狀態或具狀態 | 無從驗證 |
Azure 容器執行個體 | 容器 | 沒有專用實例 | 沒有專用節點 | 無狀態 | 無從驗證 |
Azure Red Hat OpenShift | 容器 | 每個節點有多個容器 | 6 5 | 無狀態或具狀態 | 無從驗證 |
Azure Spring Apps | 應用程式、微服務 | 每個服務實例有多個應用程式 | 2 | 無狀態 | 內建 |
Azure Service Fabric | 服務、來賓可執行檔、容器 | 每個 VM 有多個服務 | 5 3 | 無狀態或具狀態 | 無從驗證 |
Azure Batch | Scheduled jobs | 每個 VM 有多個應用程式 | 1 4 | 無狀態 | No |
備註
- 如果您使用取用方案。 針對 App Service 方案,函式會在為 App Service 方案配置的 VM 上執行。 請參閱 為 Azure Functions 選擇正確的服務方案。
- 具有兩個或多個實例的服務等級協定 (SLA) 較高。
- 建議用於生產環境。
- 作業完成之後,可相應減少為零。
- 主要節點有 3 個,背景工作節點為 3 個。
- 使用 Durable Functions 時。
網路
服務 | 虛擬網路整合 | 混合式連線 |
---|---|---|
Azure 虛擬機器 | 支援 | 支援 |
Azure App Service | 支援 1 | 支援 2 |
Azure Functions | 支援 1 | 支援 3 |
Azure Kubernetes Service | 支援 | 支援 |
Azure 容器應用程式 | 支援 | 支援 |
Azure 容器執行個體 | 支援 | 支援 |
Azure Red Hat OpenShift | 支援 | 支援 |
Azure Spring Apps | 支援 | 支援 |
Azure Service Fabric | 支援 | 支援 |
Azure Batch | 支援 | 支援 |
備註
- 需要 App Service 環境。
- 使用 Azure App 服務 混合式連線。
- 需要 App Service 方案或 Azure Functions Premium 方案。
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 容器執行個體 | 本機容器運行時間 | 無從驗證 | 不適用 |
Azure Red Hat OpenShift | Minikube、Docker、其他 | 無從驗證 | 輪流更新 |
Azure Spring Apps | Visual Studio Code、Intellij、Eclipse | Spring Boot,Steeltoe | 滾動升級,藍綠部署 |
Azure Service Fabric | 本機節點叢集 | 來賓可執行檔、服務模型、動作專案模型、容器 | 捲動升級 (每個服務) |
Azure Batch | 不支援 | 命令行應用程式 | 不適用 |
備註
- 選項包括 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 容器執行個體 | 不支援 | 沒有內建支援 | 每個訂用帳戶 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 核心限制 (預設限制) |
備註
- 請參閱 自動調整Pod。
- 請參閱 自動調整叢集以符合 Azure Kubernetes Service 上的應用程式需求。
- 請參閱 Azure 訂用帳戶和服務限制、配額和條件約束。
- 請參閱 在 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) | AKS 的 SLA | Azure 流量管理員、Azure Front Door 和多重區域叢集 |
Azure 容器應用程式 | 容器應用程式的 SLA | Azure 流量管理員 和 Azure Front Door |
Azure 容器執行個體 | 容器執行個體 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 架構和服務保證。
安全性
檢閱並瞭解每個服務的可用安全性控制項和可見性:
- Azure Windows 虛擬機
- Azure Linux 虛擬機
- Azure App Service
- Azure Functions
- Azure Kubernetes Service
- Azure 容器執行個體
- Azure Spring Apps
- Azure Service Fabric
- Azure Batch
其他準則
服務 | TLS | 成本 | 適當的架構樣式 |
---|---|---|---|
Azure 虛擬機器 | 在 VM 中設定 | Windows、 Linux | 多層式大型 計算 (HPC) |
Azure App Service | 支援 | App Service 價格 | Web-queue-worker |
Azure Functions | 支援 | 函式定價 | 微服務、事件驅動架構 |
Azure Kubernetes Service (AKS) | 輸入控制器 | AKS 定價 | 微服務、事件驅動架構 |
Azure 容器應用程式 | 輸入控制器 | 容器應用程式定價 | 微服務、事件驅動架構 |
Azure 容器執行個體 | 使用 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 維護。 原始投稿人如下:
- Ayobami Ayodeji |資深項目經理
- Jelle Druyts |首席服務工程師
- Martin Gjoshevski |高級服務工程師
- 菲爾黃 |資深雲端解決方案架構師
- Julie Ng |高級服務工程師
- Paolo Salvatori | 首席服務工程師
若要查看非公開的 LinkedIn 個人檔案,請登入 LinkedIn。
下一步
核心 雲端服務 - Azure 計算選項。 本學習課程模組會探索計算服務如何解決常見的商務需求。