你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

选择 Azure 计算服务

Azure 提供了许多托管应用程序代码的方法。 术语 计算 是指应用程序运行的资源的托管模型。 本文可帮助你为应用程序选择计算服务。

Architecture

使用以程图选择候选计算服务。

显示 Azure 计算服务的决策树的关系图。

下载此体系结构的 Visio 文件

上图引用了两种迁移策略:

  • 直接迁移: 无需重新设计应用程序或更改代码即可将工作负荷迁移到云的策略。 它也称为 重新托管。 有关详细信息,请参阅 Azure 云迁移和现代化中心

  • 云优化: 通过重构应用程序以利用云原生特性和功能,迁移到云的策略。

此流程图的输出是起点。 接下来,评估服务以查看它是否满足你的需求。

本文包含多个表,可帮助你选择服务。 流程图中的初始候选项可能不适合应用程序或工作负荷。 在这种情况下,请展开分析以包含其他计算服务。

如果应用程序由多个工作负荷组成,请单独评估每个工作负荷。 完整的解决方案可以合并两个或多个计算服务。

了解基本功能

如果不熟悉在上一部分中选择的 Azure 服务,请参阅以下概述文档:

  • Azure 应用服务 是用于托管 Web 应用、移动应用后端、RESTful API 或自动化业务流程的托管服务。

  • Azure Batch 是一种托管服务,用于运行大规模并行和高性能计算(HPC)应用程序。

  • Azure 容器应用 是基于 Kubernetes 构建的托管服务,简化了在无服务器环境中容器化应用程序的部署。

  • Azure 容器实例 是用于在 Azure 中运行单个容器或容器组的服务。 容器实例不提供完整的容器业务流程,但无需预配虚拟机(VM)或采用更高级别的服务即可实现容器。

  • Azure Functions 是一项服务,它提供基于事件驱动应用程序的各种触发器类型运行的托管函数。

  • Azure Kubernetes 服务(AKS) 是用于运行容器化应用程序的托管 Kubernetes 服务。

  • Azure Red Hat OpenShift 是一个完全托管的 OpenShift 群集,用于使用 Kubernetes 在生产环境中运行容器。

  • Azure Service Fabric 是可在许多环境(包括 Azure 或本地)中运行的分布式系统平台。

  • Azure VMware 解决方案 是一种托管服务,用于在 Azure 上本机运行 VMware 工作负荷。

  • Azure 虚拟机 是一项服务,可在其中部署和管理 Azure 虚拟网络中的 VM。

了解托管模型

对于托管模型,云服务分为三类:

  • 基础结构即服务(IaaS) 允许预配 VM 以及关联的网络和存储组件。 然后,可以在这些 VM 上部署任何软件和应用程序。 此模型最接近传统的本地环境。 Microsoft管理基础结构,并管理 VM。

  • 平台即服务(PaaS) 提供托管托管托管环境,可在其中部署应用程序,而无需管理 VM 或网络资源。 应用服务和容器应用是 PaaS 服务。

  • 函数即服务(FaaS) 允许将代码部署到服务,该服务会自动运行它。 Azure Functions 是 FaaS 服务。

    注释

    Azure Functions 是 一种 Azure 无服务器 计算产品/服务。 若要查看此服务与其他 Azure 无服务器产品/服务(例如用于无服务器工作流的 Azure 逻辑应用)的比较方式,请参阅 在 Azure 中选择正确的集成和自动化服务

有一系列从 IaaS 到完全托管的 PaaS。 例如,Azure VM 可以使用虚拟机规模集自动缩放。 此功能并非完全是 PaaS,但它类似于 PaaS 中的管理功能。

控制与轻松管理之间存在权衡。 IaaS 提供最大的控制、灵活性和可移植性。 但是,必须预配、配置和管理所创建的 VM 和网络组件。 FaaS 服务会自动管理运行应用程序的几乎所有方面。 PaaS 提供部分管理,同时需要某些用户配置。

服务 应用程序组合 密度 最小节点数 状态管理 Web 托管
虚拟机 不可知 不可知 1 2 无状态或有状态 不可知
App Service 应用程序、容器 使用应用服务计划为每个实例创建多个应用 1 无状态 内置
Azure Functions 函数、容器 无服务器 1 无服务器 1 无状态或有状态 6 不適用
AKS 容器 每个节点的多个容器 3 3 无状态或有状态 不可知
容器应用 容器 Serverless Serverless 无状态或有状态 不可知
容器实例 容器 无专用实例 无专用节点 无状态 不可知
Azure Red Hat OpenShift 容器 每个节点的多个容器 6 5 无状态或有状态 不可知
Service Fabric 服务、来宾可执行文件、容器 每个 VM 的多个服务 5 3 无状态或有状态 不可知
Batch 计划的作业 每个 VM 的多个应用 1 4 无状态
Azure VMware 解决方案 不可知 不可知 3 7 无状态或有状态 不可知

笔记:

1对于 Azure Functions,消耗计划是无服务器计划的。对于应用服务计划,函数在为该计划分配的 VM 上运行。 为 Azure Functions 选择正确的服务计划

2个具有两个或多个实例的更高服务级别协议(SLA)。

3建议用于生产环境。

4作业完成后可缩减为零。

5三个主要节点和三个工作器节点。

6使用 持久函数时。

7请参阅 主机

网络

服务 虚拟网络集成 混合连接
虚拟机 已支持 已支持
App Service 支持 1 支持的 2
Azure Functions 支持 1 支持的 3
AKS Supported 已支持
容器应用 已支持 已支持
容器实例 Supported Supported
Azure Red Hat OpenShift Supported 已支持
Service Fabric 已支持 已支持
Batch 已支持 已支持
Azure VMware 解决方案 Supported Supported

笔记:

1需要应用服务环境或专用计算定价层。

2使用 应用服务混合连接

3需要应用服务计划或 Azure Functions Premium 计划

DevOps

服务 本地调试 编程模型 应用程序更新
虚拟机 不可知 不可知 无内置支持
App Service IIS Express,其他 1 Web 和 API 应用程序,用于后台任务的 Web 作业 部署槽
Azure Functions Visual Studio 或 Azure Functions CLI 无服务器、事件驱动 部署槽
AKS Minikube、Docker、其他 不可知 滚动更新
容器应用 本地容器运行时 不可知 修订管理
容器实例 本地容器运行时 不可知 不適用
Azure Red Hat OpenShift Minikube、Docker、其他 不可知 滚动更新
Service Fabric 本地节点群集 来宾可执行文件、服务模型、执行组件模型、容器 每个服务的滚动升级
Batch 不支持 命令行应用程序 不適用
Azure VMware 解决方案 不可知 不可知 无内置支持

Note:

1个选项包括 IIS Express for ASP.NET 或 node.js (iisnode)、PHP Web 服务器、用于 IntelliJ 的 Azure 工具包和用于 Eclipse 的 Azure 工具包。应用服务还支持远程调试已部署的 Web 应用。

可伸缩性

服务 Autoscaling 负载均衡器 缩放限制3
虚拟机 虚拟机规模集 Azure Load Balancer 平台映像:每个规模集的 1,000 个节点。 自定义映像:每个规模集的 600 个节点。
App Service 内置服务 集成 30 个实例,100 个实例与应用服务环境
Azure Functions 内置服务 集成 每个函数应用的 200 个实例
AKS Pod 自动缩放1、群集自动缩放2 负载均衡器或 Azure 应用程序网关 使用运行时间 SLA 时,5,000 个节点
容器应用 缩放规则4 集成 每个区域的 15 个环境(默认限制)、每个环境和每个容器应用的副本不受限制(具体取决于可用核心)
容器实例 不支持 无内置支持 每个订阅的 100 个容器组(默认限制)
Azure Red Hat OpenShift Pod 自动缩放、群集自动缩放 负载均衡器或应用程序网关 每个群集的 250 个节点(默认限制)
Service Fabric 虚拟机规模集 负载均衡器 每个虚拟机规模集的 100 个节点
Batch 不適用 负载均衡器 核心限制为 900 个专用和 100 个低优先级(默认限制)
Azure VMware 解决方案 内置服务5 集成6 每个 VMware vCenter 3 到 16 个 VMware ESXi 主机

笔记:

1请参阅 自动缩放 Pod

2请参阅 自动缩放群集以满足 AKS 上的应用程序需求

3请参阅 Azure 订阅和服务限制、配额和约束

4请参阅 在容器应用中设置缩放规则

5请参阅 缩放 Azure VMware 解决方案

6请参阅 VMware NSX

可用性

服务 多区域故障转移选项
虚拟机 Azure 流量管理器、Azure Front Door 和跨区域负载均衡器
App Service 流量管理器和 Azure Front Door
Azure Functions 流量管理器和 Azure Front Door
AKS 流量管理器、Azure Front Door 和多区域群集
容器应用 流量管理器和 Azure Front Door
容器实例 流量管理器和 Azure Front Door
Azure Red Hat OpenShift 流量管理器和 Azure Front Door
Service Fabric 流量管理器、Azure Front Door 和跨区域负载均衡器
Batch 不適用
Azure VMware 解决方案 不適用

有关服务保证的引导式学习,请参阅 Azure 体系结构和服务保证

安全性

查看并了解以下每个服务的可用安全控件和可见性:

其他条件

服务 TLS 成本 合适的体系结构样式
虚拟机 在 VM 中配置 WindowsLinux N 层大型计算 (HPC)
App Service 已支持 应用服务定价 Web-queue-worker
Azure Functions 已支持 Azure Functions 定价 微服务事件驱动的体系结构
AKS 入口控制器 AKS 定价 微服务事件驱动的体系结构
容器应用 入口控制器 容器应用定价 微服务事件驱动的体系结构
容器实例 使用 sidecar 容器 容器实例定价 微服务、任务自动化、批处理作业
Azure Red Hat OpenShift 已支持 Azure Red Hat OpenShift 定价 微服务事件驱动的体系结构
Service Fabric 已支持 Service Fabric 定价 微服务事件驱动的体系结构
Batch 已支持 Batch 定价 大型计算 (HPC)
Azure VMware 解决方案 在 VM 中配置 Azure VMware 解决方案定价 基于 VMware 格式的 VM 工作负荷

考虑限制和成本

与前面的比较表一起,对候选服务的以下方面进行更详细的评估:

供稿人

Microsoft维护本文。 以下参与者撰写了本文。

若要查看非公开的LinkedIn个人资料,请登录LinkedIn。

后续步骤