Fork me on GitHub

公有云技术研究之弹性伸缩

弹性伸缩是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。

弹性伸缩简介

弹性伸缩(Auto Scaling)是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。用户根据自己的业务需求自动调整其弹性计算资源,在业务需求增长时,无缝增加云实例,在业务需求下降时,自动减少云实例以节约成本。弹性伸缩策略不仅能够让需求稳定规律的应用程序实现自动化管理,同时告别业务突增或者cc攻击等带来的烦恼,对于每天、每周、每月使用量不停波动的应用程序还能够根据业务负载分钟级扩展。弹性伸缩策略让集群保持恰到好处的实例数量。
弹性伸缩一般都是免费的服务,但是通过弹性伸缩自动创建的云实例,需要按照云厂商付费策略进行付费。

弹性伸缩特点
1、自动化
设置伸缩策略后,根据业务负载情况,动态实时自动创建或释放云实例,做到全程无需人工干预,免去人工部署负担。
2、降低成本
以最合适的云实例应对业务高峰,自动化添加、删除实例。提供设备利用率,节约部署和云实例成本。
3、计划性
针对负载负载有时间规律的业务,根据设置自动化扩容。
4、容错性
自动检测实例的健康状况,一旦发现异常,自动复制出健康的实例,替换异常实例,确保业务稳定。
5、自动配置负载均衡
自动管理负载均衡配置,自动增删实例。
6、审计需求
记录、提醒出现问题可以快速提供判断依据定位问题。

弹性伸缩适用场景
1、电商网站
2、微博、新闻类
3、视频、直播类
4、游戏行业(大区型)
5、其他业务峰值波动大的业务场景

使用弹性伸缩对比
传统模式下的集群维护

采用AS后的效果

弹性伸缩应用讲解

配置流程

创建伸缩配置–>创建伸缩组–>添加已有云实例–>创建定时任务–>创建告警触发策略

开发者资源

一般都提供API供用户自定义完成业务需求

常见问题

  • 什么是冷却时间?

    冷却时间是指在同一个伸缩组内,一个伸缩活动执行完成后的一段锁定时间。在这段时间内,该伸缩组不执行伸缩活动。冷却时间一般都是自定义可选的。

  • 什么样的机器适合使用弹性伸缩?

    伸缩组中的云服务器实例中部署的应用需要是无状态、可替换的。因为伸缩组中的实例有可能在缩容中被回收,所以用于弹性伸缩的云实例不能保存应用的状态信息(如会话)和相关数据(如数据库、日志等)。如果应用中需要保存状态信息,可以考虑把状态信息保存到伸缩组以外的独立云服务器中。

  • 如何保障云实例配置环境的一致性?

    一般都是以预定义的镜像模板来创建实例,如果还需求进行其他代码同步,可以使用svn,rsync等进行同步,这些自定义脚本可以放到/etc/rc.local中。

  • 密码登录问题

    如果自动创建的实例密码无法规定和预先得知,Linux服务器可以利用公钥对实现无密码登录。

反思收获

1、通过公有云的弹性伸缩方案,我们思考自建弹性伸缩方案应该如何做?
2、如何将自有业务与公有云方案进行最佳结合?
3、有哪些坑可能需要去趟平?

参考资料

https://aws.amazon.com/cn/autoscaling/?nc2=h_m1
https://cloud.tencent.com/product/as
https://cloud.tencent.com/document/product/377/3154
https://www.alibabacloud.com/zh/product/auto-scaling?spm=a3c0i.7919406.905353.dznavproductsa2.747e6ecfxusdbX

======================================================
希望各位朋友支持一下

本文作者:dongsheng
本文地址https://mds1455975151.github.io/archives/888965e1.html
版权声明:转载请注明出处!

坚持技术分享,您的支持将鼓励我继续创作!