有许多选项可供团队在 Azure 上构建和部署云原生应用程序和容器化应用程序。 本文比较了 Azure 上的多个容器选项。
不存在适合每个用例和每个团队的完美解决方案。 以下说明提供一般指导和建议,作为起点,以帮助找到最适合你的团队和要求的方案。
容器选项比较
Azure 容器应用
使用 Azure 容器应用 ,可以基于容器生成无服务器微服务和作业。 Container Apps 的独特功能包括:
- 经过优化以运行通用容器,特别适用于部署在多个容器内的微服务应用程序。
- 由 Kubernetes 以及 Dapr、KEDA 和 envoy 等开放源技术提供支持。
- 支持具有 服务发现 和 流量拆分等功能的 Kubernetes 样式应用和微服务。
- 通过支持基于流量的缩放并从队列等事件源拉取(包括缩放到零),实现事件驱动型应用程序架构。
- 支持运行按需作业、计划的作业和事件驱动的作业。
- 允许使用触发器、绑定和自动缩放在事件驱动方案中运行Azure Functions。
Azure Container Apps 不提供对基础 Kubernetes API 的直接访问。 如果需要访问 Kubernetes API 和控制平面,应使用 Azure Kubernetes 服务。 但是,如果要构建 Kubernetes 风格的应用程序,并且不需要直接访问所有原生 Kubernetes API 和群集管理,则 Container Apps 可提供基于最佳做法的完全托管体验。 出于这些原因,许多团队更喜欢使用 Azure 容器应用开始构建容器微服务。
您可以使用快速入门开始创建您的第一个容器应用。
Azure App 服务
Azure 应用服务 为 Web 应用程序(包括网站和 Web API)提供完全托管的服务。 可以使用代码或容器部署这些 Web 应用程序。 Azure 应用服务针对 Web 应用程序进行了优化。 Azure 应用服务已与其他 Azure 服务(包括 Azure Container Apps 和 Azure Functions)集成。 构建 Web 应用时,Azure 应用服务是理想的选择。
Azure 容器实例
Azure 容器实例 (ACI) 按需提供 Hyper-V 隔离容器的单个实例。 与 Container Apps 相比,可以将其视为较低级别的“构建基块”选项。 扩展、负载均衡和证书等概念未随 ACI 容器一起提供。 例如,若要扩展到五个容器实例,请创建五个不同的容器实例。 Azure Container Apps在容器的基础上提供许多特定于应用程序的概念,包括证书、修订、规模和环境。 用户经常通过其他服务与 Azure 容器实例交互。 例如,Azure Kubernetes Service 可以通过 虚拟节点 在 ACI 之上实现编排和扩展。 如果您需要一个不那么“有主观倾向”的构建基块,而这个基块不符合Azure Container Apps优化的场景,那么Azure Container Instances是一个理想的选择。
Azure Kubernetes 服务
Azure Kubernetes 服务 (AKS) 在 Azure 中提供完全托管的 Kubernetes 选项。 它支持直接访问 Kubernetes API 并运行任何 Kubernetes 负载。 整个群集位于你的订阅中,群集配置和操作都由你控制和负责。 如果团队正在 Azure 中寻找 Kubernetes 的完全托管版本,则 Azure Kubernetes 服务是理想的选择。
Azure Functions
Azure Functions 是一种无服务器函数即服务(FaaS)解决方案。 它针对使用函数编程模型运行事件驱动型应用程序进行了优化。 在扩展以及与事件的集成方面,它与 Azure Container Apps 具有许多相同特性,但针对部署为代码或容器的临时函数进行了优化。 Azure Functions编程模型为希望在事件发生时触发函数执行并绑定到其他数据源的团队提供生产力优势。 生成 FaaS 样式的函数时,Azure Functions 是理想的选择。 Azure Functions编程模型可用作基础容器映像,使其可移植到其他基于容器的计算平台,从而允许团队在环境要求发生变化时重复使用代码。
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 是一个理想的选择。
相关内容
若要了解有关 AKS 的详细信息,请参阅以下文章: