-
在应用服务(Web 应用、API 应用或移动应用)中,应用始终在应用服务计划中运行。 此外,Azure Functions 也可选择在应用服务计划中运行。 应用服务计划为要运行的 Web 应用定义一组计算资源。 这些计算资源类似于传统 Web 托管方案中的_服务器场_。 可将一个或多个应用配置为在相同的计算资源中(或相同的应用服务计划中)运行。
在特定的区域(例如“中国东部”)中创建应用服务计划时,将为该区域中的该计划创建一组计算资源。 放入此应用服务计划的任何应用都在应用服务计划定义的这些计算资源中运行。 每个应用服务计划定义:
- 区域(中国东部、中国东部 2 等)
- VM 实例数
- VM 实例大小(“小型”、“中型”、“大型”)
- 定价层(免费、共享、基本、标准、高级、高级 V2、独立)
应用服务计划的定价层确定了所提供的应用服务功能和计划费用。 定价层有以下几个类别:
- 共享计算:“免费”和“共享”,这两个基本层在其他应用服务应用(包括其他客户的应用)所在的同一个 Azure VM 上运行应用。 这些层为共享资源中运行的每个应用分配 CPU 配额,且资源不可横向扩展。
- 专用计算:“基本”、“标准”、“高级”和“高级 V2”层在专用的 Azure VM 上运行应用。 只有同一应用服务计划中的应用可以共享相同的计算资源。 层越高,可用于横向扩展的 VM 实例就越多。
- 隔离:此层级在专用 Azure 虚拟网络上运行专用 Azure VM。 它在计算隔离的基础上为应用提供了网络隔离。 此层提供最大的横向扩展能力。
备注
应用服务免费和共享(预览)托管计划是基本层,与其他应用服务应用在相同的 Azure 虚拟机上运行。 某些应用可能属于其他客户。 这些层仅旨在用于开发和测试目的。
每个层还提供应用服务功能的特定子集。 这些功能包括自定义域和 TLS/SSL 证书、自动缩放、部署槽位、备份、流量管理器集成,等等。 层越高,可用的功能越多。 若要了解每个定价层支持的功能,请参阅应用服务计划详细信息。
备注
与“标准”层相比,新的“高级 V2”层提供 Dv2 系列 VM,此系列 VM 配备更快的处理器、SSD 存储以及双倍的内存核心比。 高级 V2 还支持通过增加实例数扩大规模,同时仍提供标准计划中的所有高级功能。 高级 V2 中包含现有“高级” 层中提供的所有功能。
类似于其他专用层,以下三种 VM 大小可用于此层:
- 小型(一个 CPU 核心,3.5 GiB 内存)
- 中型(两个 CPU 核心,7 GiB 内存)
- 大型(四个 CPU 核心,14 GiB 内存)
有关高级 V2 定价信息,请参阅应用服务定价。
若要开始使用新的“高级 V2” 定价层,请参阅为应用服务配置“高级 V2”层。
应用如何运行和缩放?
在“免费”和“共享”层中,应用遵循共享 VM 实例上的 CPU 分钟配额,且不能横向扩展。 在其他层中,应用按如下所述运行和缩放。
在应用服务中创建某个应用时,该应用将被放入应用服务计划。 该应用运行时,将在应用服务计划中配置的所有 VM 实例上运行。 如果同一应用服务计划中包含多个应用,这些应用将共享相同的 VM 实例。 如果对某个应用使用多个部署槽位,所有部署槽位也在相同的 VM 实例上运行。 如果启用诊断日志、执行备份或运行 Web 作业,它们也会使用这些 VM 实例上的 CPU 周期和内存。
于是,应用服务计划便成了应用服务应用的缩放单元。 如果将计划配置为运行五个 VM 实例,该计划中的所有应用将在所有五个实例上运行。 如果为计划配置了自动缩放,该计划中的所有应用将会根据自动缩放设置一起横向扩展。
有关横向扩展应用的信息,请参阅手动或自动缩放实例计数。
应用服务计划的费用是多少?
本部分介绍应用服务应用的计费方式。 有关区域特定的详细定价信息,请参阅应用服务定价。
除“免费”层外,应用服务计划会根据所用的计算资源量产生小时费用。
- 在“共享”层中,每个应用遵循 CPU 分钟配额,因此,每个应用会根据 CPU 配额产生小时费用。
- 在专用计算层(“基本”、“标准”、“高级”、“高级 V2”)中,应用服务计划定义了应用可缩放到的 VM 实例数,因此,应用服务计划中的每个 VM 实例会产生小时费用。 不管这些 VM 实例上运行了多少个应用,其计费方式都是相同的。 为了避免意外的费用,请参阅清理应用服务计划。
- 在“隔离”层中,应用服务环境定义了运行应用的隔离辅助角色数目,每个辅助角色按小时计费。 此外,运行应用服务环境本身也会产生一笔基本的小时费用。
使用提供的应用服务功能(配置自定义域、TLS/SSL 证书、部署槽位、备份等)不会产生费用。 例外情况包括:
- 应用服务域 - 在 Azure 中购买以及每年续订时付费。
- 应用服务证书 - 在 Azure 中购买以及每年续订时付费。
- 基于 IP 的 TLS 连接 - 每个基于 IP 的 TLS 连接都会产生小时费用,但某个“标准”层或更高级别的层免费提供了一个基于 IP 的 TLS 连接。 基于 SNI 的 TLS 连接免费。
备注
如果将应用服务与其他 Azure 服务集成,可能需要考虑这些服务的费用。 例如,如果使用 Azure 流量管理器在特定的地理位置缩放应用,则 Azure 流量管理器也会根据用量收取费用。 若要估算 Azure 中的跨服务费用,请参阅定价计算器。
如果应用需要更多的功能怎么办?
随时可以提高和降低应用服务计划。 只需更改计划的定价层即可。 一开始可以选择一个较低的定价层,以后需要更多的应用服务功能时,可以提高层。
例如,可以在“免费”应用服务计划中开始免费测试 Web 应用。 想要将自定义 DNS 名称添加到 Web 应用时,只需将计划提高到“共享”层。 以后想要创建 TLS 绑定时,可将计划纵向扩展到“基本”层。 想要部署过渡环境时,可提高到“标准”层。 需要更多的核心、内存或存储时,可提高到同一层中的更大 VM 大小。
反之亦然。 如果觉得自己不再需要较高层的功能,可以纵向缩减到更低的层,从而节省资金。
有关提高应用服务计划的信息,请参阅纵向扩展 Azure 中的应用。
如果你的应用与其他应用在同一个应用服务计划中,可以通过隔离计算资源来提高你的应用的性能。 为此,可将应用移到单独的应用服务计划中。 有关详细信息,请参阅将应用移到另一个应用服务计划。
应该将应用放入新计划还是现有计划中?
由于应用服务计划分配的计算资源会产生费用(请参阅应用服务计划的费用是多少?),将多个应用放入一个应用服务计划可能会节省资金。 只要现有的计划能够提供足够的资源来处理负载,就可以持续将应用添加到该计划。 但请记住,同一应用服务计划中的所有应用共享相同的计算资源。 若要确定新的应用是否能够获得所需的资源,需要了解现有应用服务计划的容量,以及新应用预期的负载。 应用服务计划过载可能会导致新应用和现有应用停机。
在以下情况下,请将应用隔离到新应用服务计划中:
- 该应用占用大量资源。
- 想要独立于现有计划中的其他应用缩放该应用。
- 该应用需要其他地理区域中的资源。
这样一来,可以为应用分配新的资源集,并更好地控制应用。