2021-11-22

可靠又省钱,弹性伸缩是如何做到的 | 解密云计算

大丈夫能屈能伸

Avatar

云计算正在成为全球数字经济的「基础设施」。它到底有何魔力?我们从云计算的最大优势——弹性说起。弹性伸缩 (Auto Scaling) 作为云计算的本质能力之一,是云上降本增效的重要途径,也是衡量云原生成熟度的关键因素。汇量科技 Mobvista 旗下云计算业务专家为你解读弹性伸缩的基本原理、如何判断弹性伸缩的效果并进行优化。

弹性伸缩(AutoScaling)是云商提供的、根据自身业务需求自动调整计算能力(即实例数量)的服务。使用该服务时,实例数量可根据工作负载自动进行伸缩,从而在业务需求增长时提供资源支持、在业务需求下降时降低成本。

那么,弹性伸缩的基本原理是怎样的?我们如何判断弹性伸缩的效果、进行优化?

number 1, Mobvista

什么是弹性伸缩

先来拆分这两个词的意思:

弹性:服务器对业务量的变化应具备一定的容忍度。

伸缩:针对业务量的变化,系统需要在线对资源进行调整。伸缩完成以后,系统对外服务的能力应恢复到正常水平。

弹性伸缩的两大目的:服务可靠、资源成本节省。

展开讲讲,先了解弹性伸缩服务的部署架构:

请求从网关服务(即LoadBalance)进来后,到达应用(App)。应用所需要的云主机,往往交给伸缩组来管理。伸缩组会根据主机资源的使用情况,自动购买新机器、回收旧机器,从而让整个集群的资源使用率保持在预期的水平。

那么,伸缩组如何完成这一系列“炫酷”操作?

“伸缩”主要集中在两个方向:

1. 水平方向:通过加节点和减节点,在节点数上面进行调整来达到伸缩效果。

2. 垂直方向:通过加配置和减配置,来达到伸缩效果。

除此以外,如果想做好弹性,我们必须对资源的使用情况进行监控。如流程图所示,指标监控服务负责从APP和集群进行实时的数据采集,采集到的结果会交给 AutoScaler(伸缩调度器)

AutoScaler会根据预定的策略进行判断(例如,基于CPU或者基于QPS),可能会设定一个伸缩的阈值,如果判断触发了扩缩容,AutoScaler 会联系节点组购买机器或者回收机器。伸缩完成的节点,将会和网关进行同步,这样就完成了一个基本的弹性伸缩 Web 服务。

什么是优秀的弹性伸缩方案

首先,监测服务作为弹性伸缩的起点,其数据有效性、实时性,将影响伸缩的准确性和灵敏性;而监测指标的丰富程度,则决定了策略的可操作范围。

其次,Autoscaler 的算法和策略直接决定了伸缩策略的效果。

再次,伸缩的力度和伸缩的速度会直接的影响到伸缩的效率、资源的使用率。

最后,应用作为服务本身的载体,其拉取速度、启动速度以及启动的成功率,直接决定了最终的结果。

综上,一个优秀的弹性伸缩方案,应该尽量满足三个要素:

可靠,它必须具备一定的突增压力的抵抗能力

高效,它能够快速的调整到预期资源的使用量

经济,它必须在合理范围内尽量的去提高资源的使用率,减少浪费

number3, Mobvista

弹性伸缩降本伴侣:SpotMax

对于用云企业来说,随着业务增长,用云成本将迅速增加,成为制约企业快速发展的“绊脚石”。SpotMax 作为一款云资源优化服务,其中的 MaxGroup 工具能够充分发挥弹性伸缩的特点,帮助用云企业解决 Spot 实例被回收、可用资源不足的问题,从而在维护服务稳定的同时,降低用云成本。

以 AWS 为例,通常情况下,AWS 的弹性伸缩服务(AutoScaling)在 Spot 实例不足时,用户无法继续申请实例资源,导致资源长时间短缺,用户面临大流量冲击风险。而 MaxGroup 在发现 AutoScaling 无法申请资源时,可以及时为用户补充 on-demand 实例,使服务所需要的资源充盈,而当能继续申请到 Spot 资源时,MaxGroup 会主动将 on-demand 实例替换为 Spot 实例,在服务稳定的前提下,保障成本最低的目标。长期实践证明,SpotMax 平均可帮助企业节省60%的用云成本,最多时可降本90%

在云端,当资源可以按需伸缩,限制你想象的只有成本。关于 SpotMax,想要了解更多?一键 get 你的云成本节省秘籍!

Share