手动缩放 Web 应用

已完成

通过手动进行横向扩展和横向缩减,可以应对预期的流量增加和减少。 由于 Web 应用实例数量的增加,横向扩展具有提高可用性的额外好处。 一个实例失败不会使 Web 应用不可用。

在酒店预订系统中,可以在预计的季节性客流到来之前进行横向扩展。 你可以在季节结束以及预订请求的数量减少时还原缩放。

在本单元中,你将了解如何手动横向扩展 Web 应用,以及如何将它横向缩减回来。

应用服务计划和可伸缩性

在 Azure 中运行的 Web 应用通常使用 Azure 应用服务来提供宿主环境。 应用服务可以安排要运行的 Web 应用的多个实例。 它会对这些实例中的传入请求进行负载均衡。 每个实例都在虚拟机上运行。

应用服务计划定义了每个实例可用的资源。 应用服务计划指定操作系统(Windows 或 Linux)、硬件(内存、CPU 处理能力、磁盘存储等)以及自动备份和还原等服务的可用性。

Azure 提供了一系列定义明确的应用服务计划层。 此列表按容量和成本的递增顺序汇总了这些层中的每一层:

  • 免费层提供 1 GB 的磁盘空间,最多支持 10 个应用,但只有一个共享实例,且没有 SLA 可用性。 每个应用的计算配额为每天 60 分钟。 免费服务计划适用于应用开发和测试,而不适用于生产部署。
  • 共享层支持更多应用(多达 100 个),这些应用也在单个共享实例上运行。 应用的计算配额为每天 240 分钟。 没有可用性 SLA。
  • 基本层支持任意数量的应用且提供更多磁盘空间。 应用可横向扩展到三个专用实例。 此层提供 99.95% 的 SLA 可用性。 此层有三个级别,提供不同数量的计算能力、内存和磁盘存储。
  • 标准层还支持任意数量的应用。 此层可以扩展到 10 个专用实例,且 SLA 可用性为 99.95%。 与基本层一样,此层有三个级别,提供一组功能逐渐增强的计算、内存和磁盘选项。
  • 高级层提供多达 20 个专用实例,99.95% 的 SLA 可用性以及多个级别的硬件。
  • 隔离层在专用的 Azure 虚拟网络中运行,可提供网络和计算隔离。 此层可以横向扩展到 100 个实例,且 SLA 可用性为 99.95%。

备注

某些层不适用于所有操作系统。 例如,当前没有适用于 Linux 的共享层。

监视和缩放 Web 应用

创建 Web 应用时,可以创建新的应用服务计划或使用现有的应用服务计划。 如果你选择现有计划,则使用同一计划的任何其他 Web 应用将与你的 Web 应用共享资源。 它们会一起缩放,因此需要满足相同的缩放要求。 如果应用有不同的要求,请为每个应用使用单独的应用服务计划。

可通过向应用服务计划添加更多实例来横向扩展,最多可扩展到所选层的可用限制。 如果你不使用免费层,则需要按小时为每个实例付费。 可以在 Azure 门户中执行这些任务。

有效缩放的关键是了解何时缩放以及需要的缩放程度。 可以使用应用服务可用的指标监视 Web 应用的性能。 执行此任务的最简单方法是使用 Azure 门户。

如果你注意到资源使用(例如 CPU 利用率、内存占用或磁盘队列长度)在稳定增长,那么你应在这些指标达到临界点之前考虑横向扩展。 你还应该监视请求的平均响应时间和失败请求的数量。 如果这两个数字都很高,则可能表示系统正在接近或超出了容量限制。 可能需要立即进行横向扩展。

如果指标表明系统负载较轻且有足够的备用容量,则可能需要重新调整以降低成本。

在这两种情况下,都应继续监视 Web 应用的统计信息。 使系统达到稳定状态。 如果指标表明应用仍然没有足够的算力(或算力过剩),请根据需要添加或删除实例。