什么是自动缩放
本单元介绍 Azure 缩放概念。
弹性缩放
云的主要优点是弹性缩放。 根据增加的需求添加应用程序实例来进行横向扩展。 可根据需要使用尽可能多的容量,随着负载的增加进行横向扩展,并可在不需要额外容量时进行横向缩减。
当组织的网站承受异常高的负载时,就会出现弹性需求的经典示例。 如果站点无法通过缩放满足需求,则需要花费更长时间处理请求,因为它们需要排队等待处理。 对于客户而言,站点看起来运行缓慢且无响应。 在极端情况下,站点甚至可能看上去已停止运行。
手动缩放与自动缩放
可以使用手动或自动两种模式为应用程序配置缩放设置。 顾名思义,“手动”模式可以设置实例的绝对计数。 但是自动模式(自动缩放)让你能够设置控制缩放方式和数量的规则。
自动缩放是指在处理应用程序负载时让适当数量的资源运行。 自动缩放通过减少系统操作员不断做出有关添加或删除资源或检查系统性能的决策的需要,来减轻管理开销。 设置最小数目可确保应用程序在没有负载的情况下也会运行。 设置最大数目是为了限制每小时可能会引发的总成本。 可以使用创建的规则在这两种极限之间自动缩放。
“横向扩展”与“纵向扩展”
应用程序缩放有两种主要的方式:
垂直缩放(也称为“纵向扩展”和“纵向缩减”)会更改资源的容量。 例如,可以将应用程序移动到更大的计算大小。 垂直缩放通常需要使系统在重新部署时暂时不可用,因此自动执行垂直扩展并不常见。
水平缩放(也称为“横向扩展”和“横向缩减”)会添加或删除资源的实例。 在预配新资源时,应用程序无需中断,可持续运行。 预配过程完成后,解决方案将部署在这些额外的资源上。 如果需求下降,可以完全关闭并取消分配额外的资源。
自动缩放仅限于“横向”(水平)缩放,即增加(横向扩展)或减少(横向缩减)应用程序实例数。
Azure Spring Apps 中的自动缩放
Azure Spring Apps 中的自动缩放会在 Spring 应用程序运行时监视它的资源指标。 它检测需要额外资源处理不断增加的工作负载的情况,并确保在系统重载前这些资源可用。 自动缩放是 Azure Spring Apps 的内置功能,它可帮助微服务应用程序在需求变化时发挥最佳性能。
实际示例
Raley’s 杂货店需要对其托管在 Azure 上的基于 Java 的电子商务站点的代码和基础结构进行现代化更改。 该公司还需要优化和自动执行其网络分配。 所有内容必须可靠、始终可用且(最重要的是)易于管理。
Raley’s 选择了 Azure Spring Apps。 Azure Spring Apps 是适用于 Spring Boot 的托管服务,它提供 Kubernetes 功能,并与实时监视和自动缩放相结合。 它还使 Raley’s 能够采用真正的平台即服务 (PaaS) 体系结构,更充分地利用云的优势。
该服务在后台管理 Spring Boot 微服务应用程序的基础结构,因此开发人员可以专注于他们的代码。 在部署 Java 库或代码时,Spring Apps 会自动将应用程序与 Spring 服务运行时连接起来。
在部署之后,Azure Spring Apps 应用会与 Azure Monitor 工具(如 Application Insights 和 Log Analytics)完全集成。 这些工具可以实现简单且可完全配置的性能和错误监视。 这些相同的监视服务还可以驱动自动缩放,有助于确保资源根据当前负载适当调整大小。