计算负载模式
如果到 VM(或 VM 组)或 Web 应用等云资源的流量持续且不会变化,则无需缩放。 云管理员可以仅预配处理负载所需的实例数即可。 但流量模式会随时间变化,有时是可预测的,有时则不可预测。 在现实世界中,管理员必须诊断所管理资源上的负载,并使用缩放功能来确保系统可以满足需求。
在讨论如何缩放前,让我们通过详细了解 VM 和其他云资源遇到的一些常见负载模式,讨论为什么要缩放。
持续增长
需求持续增长是缩放需求最常见的推动力之一。 图 1 显示 24 个月的时间内公司网站的流量。 该公司发展迅速,其网站的流量反映了这一点。 如果我们假设一台 Web 服务器在单位时间内可处理 5,000 个请求,该公司一开始可能使用三到四台 Web 服务器,但两年后大约需要 20 台才能跟上不断增长的需求并继续为其客户提供良好的服务。
图 1:持续增长。
持续增长是最容易进行补偿的负载模式之一,因为变化是稳定且渐进的。 我们可能可以使用物理服务器进行缩放,因为我们可以预期何时需要下一台服务器(或一组服务器),并且有数周(甚至数月)的准备时间,但云计算使我们能够在几分钟内使新的虚拟服务器联机。 尽管 24 个月的趋势显示出稳定且可预测的增长,但负载可能会在较短的时间内大幅波动。 与通过物理服务器缩放相比,云计算对微趋势的适应性要强得多。
不断波动的负载
当负载在相对较短的时间内以不可预测的方式波动时,云计算提供的快速弹性至关重要。 图 2 显示了 24 小时内网站上的负载。 再假设一台服务器在单位时间内可处理 5,000 个请求,则一天所需的服务器数量从 2 台到 16 台不等。 我们可通过始终保持 16 台虚拟 Web 服务器联机来适应此流量,但请记住,云服务提供商即使在 VM 空闲时也会对 VM 收费。 多余的容量不仅会浪费能源,还会使成本翻倍。
图 2:不断波动的负载。
周期性负载
图 3 显示了以规律且某种程度上可预测的方式增加和减少的负载,例如,需求在工作时间内上升,在傍晚和夜间下降。 在高峰时,此负载需要大约 20 台服务器来处理需求,再次假设每台服务器在单位时间内可处理 5,000 个请求。 一天 24 小时来回轮替物理服务器是不合理的,但可以按计划轻松地预配和取消预配虚拟服务器,以确保服务器容量大致等于需求。 处于空闲状态或每天轻量使用 12 个小时的物理服务器表示不需要的资本支出和不必要的能耗。 虚拟服务器也要付出代价,但在不需要虚拟服务器时可以取消预配,并在需要时快速重新创建。
图 3:每 24 小时重复一次的周期性负载。
不可预测的突发
从成本和维护角度来看,最难处理的模式之一是承受不可预测突发的模式(图 4)。 如果高峰可预测(例如,提供披萨配送服务的网站在周末和节假日承受更高的负载),则可以计划增加容量。 但是,如果无法预测高峰,则必须准备好随时应对高峰。
图 4:不可预测的突发。
我们可将过剩成本(为处理高峰负载而预配,但在流量较低时相对空闲的服务器成本)视为曲线顶部与穿过最高点绘制的横线之间的区域。 在那种情况下,在图 4 中为负载提供在单位时间内处理 100,000 个请求的容量的成本大大高于在图 3 中提供同等容量的成本。
如果我们可以预测高峰需求的数量级(不一定是高峰时间)并且不在乎成本,则我们可以通过预配处理最高负载所需的足够容量,始终提供充足的容量。 云计算使我们可以在需要时使资源联机,并在不需要时使其离线(并停止承担其费用)。 弹性通过缩放云资源实现。 让我们更加深入地了解缩放概念,看看为什么它是云计算经济学中的关键因素。