Azure 应用服务计划概述

应用服务始终在应用服务计划中运行。 此外,Azure Functions 也可选择在应用服务计划中运行。 应用服务计划为要运行的 Web 应用定义一组计算资源。

在特定的区域(例如“中国北部 2”)中创建应用服务计划时,将为该区域中的该计划创建一组计算资源。 放入此应用服务计划的任何应用都在应用服务计划定义的这些计算资源中运行。 每个应用服务计划定义:

  • 操作系统(Windows、Linux)
  • 区域(中国北部 2、中国东部 2 等)
  • VM 实例数
  • VM 实例大小(“小型”、“中型”、“大型”)
  • 定价层(“免费”、“共享”、“基本”、“标准”、“高级”、“高级 V2”、“高级 V3”、“独立”、“独立 V2”)

应用服务计划的定价层确定了所提供的应用服务功能和计划费用。 应用服务计划可用的定价层取决于创建时选择的操作系统。 定价层包括以下四种:

  • 共享计算:“免费”和“共享”,这两个基本层在其他应用服务应用(包括其他客户的应用)所在的同一个 Azure VM 上运行应用。 这些层将 CPU 配额分配给在共享资源上运行的每个应用,并且资源无法横向扩展。这些层仅用于开发和测试目的。
  • 专用计算:“基本”、“标准”、“高级”、“高级 V2”和“高级 V3”层在专用的 Azure VM 上运行应用。 只有同一应用服务计划中的应用可以共享相同的计算资源。 层越高,可用于横向扩展的 VM 实例就越多。
  • 独立:“独立”层和“独立 V2”层在专用的 Azure 虚拟网络中运行专用的 Azure VM。 它在计算隔离的基础上为应用提供了网络隔离。 此层提供最大的横向扩展能力。

每个层还提供应用服务功能的特定子集。 这些功能包括自定义域和 TLS/SSL 证书、自动缩放、部署槽位、备份、流量管理器集成,等等。 层越高,可用的功能越多。 若要了解每个定价层支持的功能,请参阅应用服务计划详细信息

高级 V3 定价层

标准层相比,PremiumV3 定价层可保证计算机拥有更快的处理器(每个虚拟 CPU 至少 195 个 ACU)、SSD 存储、内存优化选项和四倍的内存核心比。 “高级 V3”还支持通过增加实例数扩大规模,同时仍提供“标准”层中的所有高级功能 。 “高级 V3”中包含现有“高级 V2”层中提供的所有功能 。

此层提供多种 VM 大小,包括 4 比 1 和 8 比 1 内存核心比:

  • P0v3(1 个 vCPU,4 GiB 内存)
  • P1v3(2 个 vCPU,8 GiB 内存)
  • P1mv3(2 个 vCPU,16 GiB 内存)
  • P2v3(4 个 vCPU,16 GiB 内存)
  • P2mv3(4 个 vCPU,32 GiB 内存)
  • P3v3(8 个 vCPU,32 GiB 的内存)
  • P3mv3(8 个 vCPU,64 GiB 内存)
  • P4mv3(16 个 vCPU,128 GiB 内存)
  • P5mv3(32 个 vCPU,256 GiB 内存)

有关“高级 V3”定价信息,请参阅应用服务定价

若要开始使用新的“高级 V3”定价层,请参阅为应用服务配置“高级 V3”层

应用如何运行和缩放?

在“免费”和“共享”层中,应用遵循共享 VM 实例上的 CPU 分钟配额,且不能横向扩展。 在其他层中,应用按如下所述运行和缩放。

在应用服务中创建某个应用时,该应用会成为应用服务计划的一部分。 该应用运行时,将在应用服务计划中配置的所有 VM 实例上运行。 如果同一应用服务计划中包含多个应用,这些应用将共享相同的 VM 实例。 如果对某个应用使用多个部署槽位,所有部署槽位也在相同的 VM 实例上运行。 如果启用诊断日志、执行备份或运行 WebJob,它们也会使用这些 VM 实例上的 CPU 周期和内存。

于是,应用服务计划便成了应用服务应用的缩放单元。 如果将计划配置为运行五个 VM 实例,该计划中的所有应用将在所有五个实例上运行。 如果为计划配置了自动缩放,该计划中的所有应用将会根据自动缩放设置一起横向扩展。

有关横向扩展应用的信息,请参阅手动或自动缩放实例计数

应用服务计划的费用是多少?

本部分介绍应用服务应用的计费方式。 有关区域特定的详细定价信息,请参阅应用服务定价

除“免费”层外,应用服务计划会根据所用的计算资源量产生费用。

  • 在“共享”层中,每个应用遵循 CPU 分钟数配额,因此每个应用会根据 CPU 配额产生费用。
  • 在专用计算层(“基本”、“标准”、“高级”、“高级 V2”、“高级 V3”)中,应用服务计划定义了应用可缩放到的 VM 实例数,因此应用服务计划中的每个 VM 实例都会产生费用 。 不管这些 VM 实例上运行了多少个应用,其计费方式都是相同的。 为了避免意外的费用,请参阅清理应用服务计划
  • 在“独立”层和“独立 V2”层中,应用服务环境定义了运行应用的独立辅助角色数目,每个辅助角色都需要计费 。 此外,在“独立”层中,运行应用服务环境本身也会产生一笔固定的印花费。

使用提供的应用服务功能(配置自定义域、TLS/SSL 证书、部署槽位、备份等)不会产生费用。 例外情况包括:

  • 应用服务域 - 在 Azure 中购买以及每年续订时付费。
  • 基于 IP 的 TLS 连接 - 每个基于 IP 的 TLS 连接都会产生小时费用,但某个“标准”层或更高级别的层免费提供了一个基于 IP 的 TLS 连接。 基于 SNI 的 TLS 连接免费。

注意

如果将应用服务与其他 Azure 服务集成,可能需要考虑这些服务的费用。 例如,如果使用 Azure 流量管理器在特定的地理位置缩放应用,则 Azure 流量管理器也会根据用量收取费用。 若要估算 Azure 中的跨服务费用,请参阅定价计算器

如果应用需要更多的功能怎么办?

随时可以提高和降低应用服务计划。 只需更改计划的定价层即可。 一开始可以选择一个较低的定价层,以后需要更多的应用服务功能时,可以提高层。

例如,可以在“免费”应用服务计划中开始免费测试 Web 应用。 在将自定义 DNS 名称添加到 Web 应用时,只需将计划纵向扩展到共享层。 以后想要创建 TLS 绑定时,可将计划纵向扩展到“基本”层。 想要部署过渡环境时,可提高到“标准”层。 需要更多的核心、内存或存储时,可提高到同一层中的更大 VM 大小。

反之亦然。 如果觉得自己不再需要较高层的功能,可以纵向缩减到更低的层,从而节省资金。

有关提高应用服务计划的信息,请参阅纵向扩展 Azure 中的应用

如果你的应用与其他应用在同一个应用服务计划中,可以通过隔离计算资源来提高你的应用的性能。 为此,可将应用移到单独的应用服务计划中。 有关详细信息,请参阅将应用移到另一个应用服务计划

应该将应用放入新计划还是现有计划中?

由于应用服务计划分配的计算资源会产生费用(请参阅应用服务计划的费用是多少?),将多个应用放入一个应用服务计划可能会节省资金。 只要现有的计划能够提供足够的资源来处理负载,就可以持续将应用添加到该计划。 但请记住,同一应用服务计划中的所有应用共享相同的计算资源。 若要确定新的应用是否能够获得所需的资源,需要了解现有应用服务计划的容量,以及新应用预期的负载。 应用服务计划过载可能会导致新应用和现有应用停机。

在以下情况下,请将应用隔离到新应用服务计划中:

  • 该应用占用大量资源。 根据托管应用程序的资源密集型程度,该数字实际上可能较小,但用作一般指南,可以参考下表:

    应用服务计划 SKU 最大应用数
    B1、S1、P1v2、I1v1 8
    B2、S2、P2v2、I2v1 16
    B3、S3、P3v2、I3v1 32
    P0v3 8
    P1v3、I1v2 16
    P2v3、I2v2、P1mv3 32
    P3v3、I3v2、P2mv3 64
    I4v2、I5v2、I6v2 受 vCPU 使用情况限制的最大密度
    P3mv3、P4mv3、P5mv3 受 vCPU 使用情况限制的最大密度
  • 想要独立于现有计划中的其他应用缩放该应用。

  • 该应用需要其他地理区域中的资源。

注意

活动槽也被归类为活动应用,因为它也在竞争同一应用服务计划上的资源。

这样一来,可以为应用分配新的资源集,并更好地控制应用。

管理应用服务计划