比較容器應用程式與其他 Azure 容器選項
團隊有許多選項,可用於在 Azure 上建置並部署雲端原生和容器化應用程式。 本文可協助您了解哪些案例和使用案例最適合 Azure 容器應用程式,以及其如何與 Azure 上的其他容器選項進行比較,包括:
- Azure 容器應用程式
- Azure App Service
- Azure 容器執行個體
- Azure Kubernetes Service
- Azure Functions
- Azure Spring Apps
- Azure Red Hat OpenShift
不存在適用於每個使用案例和每個團隊的完美解決方案。 下列說明提供一般指引和建議作為起點,以協助找出最適合您的團隊和需求。
容器選項比較
Azure 容器應用程式
Azure 容器應用程式可讓您根據容器建置無伺服器微服務與作業。 容器應用程式的獨特功能包括:
- 已針對執行一般用途容器進行最佳化,特別是針對跨部署於容器中多個微服務的應用程式。
- 由 Kubernetes 和開放原始碼技術提供,例如 Dapr、KEDA 和 envoy。
- 支援 Kubernetes 樣式的應用程式和微服務,其中包含服務探索和流量分割等功能。
- 支援根據流量調整並從佇列等事件來源提取,包括調整為零,以啟用事件驅動應用程式架構。
- 支援隨選、排程和事件驅動執行的作業。
Azure 容器應用程式不提供基礎 Kubernetes API 的直接存取權。 如果您需要存取 Kubernetes API 和控制平面,則應該使用 Azure Kubernetes Service。 不過,如果您想要建置 Kubernetes 樣式應用程式,而且不需要直接存取所有原生 Kubernetes API 和叢集管理,容器應用程式會根據最佳做法提供完全受控的體驗。 基於這些原因,許多小組偏好使用 Azure 容器應用程式開始建置容器微服務。
您可以使用快速入門開始建置您的第一個容器應用程式。
Azure App Service
Azure App Service 為 Web 應用程式提供完全受控的裝載,包括網站和 Web API。 您可以使用程式碼或容器來部署這些 Web 應用程式。 Azure App Service 已針對 Web 應用程式最佳化。 Azure App Service 與其他 Azure 服務整合,包括 Azure 容器應用程式或 Azure Functions。 建置 Web 應用程式時,Azure App 服務是理想的選項。
Azure Container Instances
Azure 容器執行個體 (ACI) 會視需要提供 Hyper-V 隔離容器的單一 Pod。 相較于容器應用程式,您可以將它視為較低層級的「建置組塊」選項。 ACI 容器不提供調整、負載平衡和憑證等概念。 例如,若要調整為五個容器執行個體,您可以建立五個不同的容器執行個體。 Azure 容器應用程式在容器之上提供許多應用程式特定概念,包括憑證、修訂、調整和環境。 使用者通常會透過其他服務與 Azure 容器執行個體互動。 例如,Azure Kubernetes Service 可以透過虛擬節點分層協調流程,並在 ACI 之上進行調整。 如果您需要不太符合 Azure 容器應用程式最佳化案例的「堅持己見」建置組塊,Azure 容器執行個體是理想的選項。
Azure Kubernetes Service
Azure Kubernetes Service (AKS) 在 Azure 中提供完全受控的 Kubernetes 選項。 它支援直接存取 Kubernetes API,並執行任何 Kubernetes 工作負載。 完整叢集位於您的訂用帳戶中,而叢集組態和作業則位於您的控制與責任內。 在 Azure 中尋找完全受控 Kubernetes 版本的小組,Azure Kubernetes Service 是理想的選項。
Azure Functions
Azure Functions 是無伺服器函式即服務 (FaaS) 解決方案。 其已針對使用函式程式設計模型執行事件驅動應用程式進行最佳化。 其會與 Azure 容器應用程式共用許多特性,以調整和與事件整合,但是已針對部署為程式碼或容器的暫時性函式最佳化。 Azure Functions 程式設計模型可為想要在事件上觸發函式執行並繫結至其他資料來源的小組提供生產力優勢。 建置 FaaS 樣式函式時,Azure Functions 是理想的選項。 Azure Functions 程式設計模型可作為基礎容器映像,使其可攜至其他容器型計算平台,讓小組在環境需求變更時重複使用程式碼。
Azure Spring Apps
Azure Spring 應用程式是適用於 Spring 開發人員的完全受管理的服務。 如果您想要在 Azure 上執行 Spring Boot、Spring Cloud 或任何其他 Spring 應用程式,Azure Spring 應用程式是理想的選項。 服務會管理 Spring 應用程式的基礎結構,讓開發人員可以專注於處理程式碼。 Azure Spring 應用程式提供生命週期管理,使用全方位的監視和診斷、組態管理、服務探索、持續整合與持續傳遞的整合、藍綠部署等等。
Azure Red Hat OpenShift
Azure Red Hat OpenShift 是與 Red Hat 整合的產品,由 Microsoft 共同設計、營運並提供支援。 此共同作業提供整合的產品和支援體驗,以執行 Kubernetes 支援的 OpenShift。 透過 Azure Red Hat OpenShift,小組可以選擇自己的登錄、網路、儲存體和 CI/CD 解決方案。 或者,他們可以使用內建解決方案,從 OpenShift 自動化原始程式碼管理、容器和應用程式建置、部署、調整、健康情況管理等等。 如果您的小組或組織使用 OpenShift,Azure Red Hat OpenShift 是理想的選項。