这里有一篇关于Microsoft Learn的好文章,名为:
比较容器应用与其他Azure容器选项。
Azure容器实例
Azure容器实例(ACI)提供按需的单个Hyper-V隔离容器pod。与Container Apps相比,它可以被视为较低级别的“构建块”选项。例如,规模、负载平衡和证书等概念不适用于ACI容器。例如,要扩展到五个容器实例,您需要创建五个不同的容器实例。Azure容器应用程序在容器之上提供许多应用程序特定的概念,包括证书、修订、规模和环境。用户通常通过其他服务与Azure容器实例进行交互。例如,Azure Kubernetes Service可以通过
虚拟节点在ACI之上进行编排和扩展。如果您需要一个不太“有见解”的构建块,而不是针对Azure容器应用程序优化的场景,则Azure容器实例是一个理想的选择。
Azure应用服务
Azure App Service(
Azure App Service)提供完全托管的 Web 应用程序托管,包括网站和 Web API。这些 Web 应用程序可以使用代码或容器部署。Azure App Service 针对 Web 应用程序进行了优化,并与其他 Azure 服务集成,包括 Azure 容器应用程序或 Azure 函数。在构建 Web 应用程序时,Azure App Service 是一个理想的选项。
Azure Web App for Containers 和 Azure Web App 是相同的服务,并且它们使用一个 App Service 计划。唯一的区别是默认情况下,发布设置为 Docker 容器而不是代码。
https://azure.microsoft.com/en-us/products/app-service/web/
https://azure.microsoft.com/en-us/products/app-service/containers/#overview
![enter image description here](https://istack.dev59.com/p0S6x.webp)
![enter image description here](https://istack.dev59.com/HZZq6.webp)
从文章中可以看到其他的选择:
团队在Azure上构建和部署云原生和容器化应用程序有许多选项。
- Azure容器应用
- Azure应用服务
- Azure容器实例
- Azure Kubernetes服务
- Azure函数
- Azure Spring应用
- Azure Red Hat OpenShift
Azure容器应用
Azure容器应用使您能够构建基于容器的无服务器微服务。容器应用的独特功能包括:
- 优化运行通用容器,特别是跨多个部署在容器中的微服务的应用程序。
- 基于Kubernetes和开源技术(如Dapr、KEDA和envoy)。
- 支持Kubernetes风格的应用程序和微服务,具有诸如服务发现和流量分割等功能。
- 通过支持基于流量和从队列等事件源拉取的规模,实现事件驱动的应用程序架构,包括零缩放。
- 支持长时间运行进程,并且可以运行后台任务。
Azure容器应用程序不提供对底层Kubernetes API的直接访问。如果您需要访问Kubernetes API和控制平面,则应使用Azure Kubernetes服务。但是,如果您想构建类似于Kubernetes的应用程序并且不需要直接访问所有本机Kubernetes API和群集管理,则Container Apps提供基于最佳实践的完全托管体验。因此,许多团队可能更喜欢使用Azure Container Apps开始构建容器微服务。
您可以使用快速入门开始构建您的第一个容器应用程序。
Azure Kubernetes服务
Azure Kubernetes服务(AKS)在Azure中提供了一个完全托管的Kubernetes选项。它支持直接访问Kubernetes API并运行任何Kubernetes工作负载。整个集群驻留在您的订阅中,集群配置和操作由您控制和负责。寻找在Azure中完全托管的Kubernetes版本的团队,Azure Kubernetes服务是一个理想的选择。
Azure函数
Azure Functions是一种无服务器的函数即服务(FaaS)解决方案。它针对使用函数编程模型运行事件驱动应用程序进行了优化。它与Azure容器应用程序在规模和与事件集成方面具有许多相似之处,但是针对作为代码或容器部署的短暂函数进行了优化。Azure Functions编程模型为团队触发函数执行和绑定到其他数据源提供了生产力优势。构建FaaS风格的函数时,Azure Functions是理想的选择。Azure Functions编程模型可用作基本容器映像,使其可移植到其他基于容器的计算平台,从而允许团队在环境要求发生变化时重用代码。
Azure Spring Apps是Spring开发人员的平台即服务(PaaS)。如果您想在Azure上运行Spring Boot、Spring Cloud或任何其他Spring应用程序,则Azure Spring Apps是一个理想的选择。该服务管理Spring应用程序的基础设施,因此开发人员可以专注于他们的代码。Azure Spring Apps使用全面的监视和诊断、配置管理、服务发现、CI/CD集成、蓝绿部署等提供生命周期管理。
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 是一个理想的选择。