开发者社区 > 博文 > 干货 | 京东云弹性伸缩功能实践
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

干货 | 京东云弹性伸缩功能实践

  • 京东科技开发者
  • 2019-06-19
  • IP归属:北京
  • 96360浏览

 黄锦景 京东云开发者社区

弹性伸缩AS(Auto Scaling)是一项 Web 服务,可以根据您的业务需求和策略,自动调整云主机计算资源,可帮助确保您拥有适量的云主机实例来处理您的应用程序负载。

使用 AS 进行容量调整,您只需事先设置好扩容条件及缩容条件,AS 会在达到条件时自动增加/减少使用的服务器数量以维护性能:

  • 在业务需求增长时无缝地增加主机实例。

  • 在业务需求下降时自动减少主机实例以节约成本

1.jpg

产品简介

弹性伸缩是一项按需自动调整云主机规模的服务,能够及时有效地应对客户业务出现剧烈波动的情形。根据客户不同业务特点,采用不同的伸缩模式,在降低客户业务成本的同时提高业务能力,充分体现了云计算平台弹性灵活的特点。


2.png

名词术语

伸缩组:伸缩组是遵循相同规则、面向同一场景的云主机实例的集合。伸缩组定义了组内云主机实例数的最大值、最小值及其相关联的负载均衡实例等属性。

启动配置:启动配置是自动创建云服务器的模版,其中包括镜像、云服务器实例规格、系统盘及数据盘类型和容量、密钥等。创建伸缩组时必须指定启动配置,启动配置一经创建后其属性将不能编辑。

伸缩策略:即执行伸缩动作的条件。触发条件可以是云监控的报警或时间,动作可以是移出或加入云主机。

伸缩策略有以下两种:

  • 定时伸缩策略 到达某个固定时间点,自动增加或减少云主机实例,支持周期性重复。

  • 告警伸缩 基于云监控指标(如CPU、内存、网络流量等),自动增加或减少云主机实例。

伸缩活动:伸缩策略成功触发后,就会产生一条伸缩活动。伸缩活动主要用来描述伸缩组内云主机实例的变化情况。

冷却时间:冷却时间是指在同一个伸缩组内,一个伸缩活动执行完成后的一段锁定时间。冷却时间可指定范围为 0-86400(秒)。

使用场景

Web应用服务web服务业务逻辑层扩缩容。比如电商网站、视频网站、在线教育等,客户端的请求通过负载均衡到达应用服务器,当业务访问量大幅快速波动时,弹性伸缩服务可以根据请求量及负载弹性扩缩应用服务器的数量。

高性能计算:服务的计算节点扩缩容。分布式大数据的计算节点、数据处理等后端计算集群,根据计算量大小实时调整集群服务器数量,或者根据集群预定好的脚本执行时间来设定周期性定时任务,在脚本执行之前自动创建一批主机,保证高效的运算业务。

数据收集检索:时效性业务扩缩容。用于发送请求、数据收集、检索等业务服务器集群的部署,可通过弹性伸缩服务快速完成扩缩任务供业务使用。

操作实践

1、操作流程:

3.jpg

测试AZ:华北-北京-可用区C

模拟场景:2台Apache服务器组成Web服务集群,前端通过LB做流量的分发;配置弹性伸缩策略,实现某台服务器CPU使用率>70%时自动扩容1台服务器,平均CPU使用率<40%时自动减少1台服务器。

2、测试步骤:

第一步:登录控制台
使用已注册的京东云账号登录控制台

第二步:创建启动配置
在控制台左侧功能导航栏选择“弹性计算”->“弹性伸缩”->“启动配置”->“创建”

4.jpg

设置配置名称,在“镜像”中选择“私有镜像”(“私有镜像”是通过创建好的云主机并部署完应用及完成配置制作的云主机镜像);配置的规格可以根据实际情况调整(CPU,内存,存储,带宽);创建完成后点击保存。

第三步:创建配置伸缩组
初始实例数设定后系统会自动根据设定的数量从启动配置自动创建相应数量的云主机可支持跨可用区创建,达到容灾的效果;
负载均衡设置绑定已创建的LB实例并选择对应的虚拟服务器做及配置好监听端口。

5.jpg

第四步:绑定云主机6.jpg

按需添加云主机,数量必须在伸缩组设定的最小和最大实例数之间

第五步:添加告警策略
创建“弹性伸”策略和“弹性缩”策略7.jpg8.jpg

支持定时任务和重复任务,增加和减少的设置需要配对使用。9.jpg

第六步:添加告警联系人10.jpg

“账号管理”->“联系人管理”中的联系人和联系组信息会自动被识别,添加相关组和联系人后,伸缩组发生启动,终止,无法启动,无法终止时会有邮件和短信及时进行通知

3、验证试验结果:

用原生centos自带工具,方法是通过压缩随机数据并将结果发送到 /dev/null
在第一台Apache服务器运行如下命令:
cat /dev/urandom | gzip -9 > /dev/null
CPU使用率到达99%。1.jpg2.jpg

成功弹出一台云主机;
使用Ctrl+C结束加压命令后,CPU使用率降低;观察伸缩活动的日志,发现已自动移出新增的云主机,成功移除。3.jpg