中关村集成电路设计园正式开园
06-06
01 前言 说起弹性这个概念,大家应该都不陌生。
每年的一些节日包括双11、双12等,比如淘宝、天宝等,像猫这样的平台的访问量是平时流量的十几倍甚至几十倍。
面对如此大的访问量,这些大平台如何轻松解决?今天分享一下阿里云产品“ESS弹性伸缩”的使用体验。
这也是我在实际工作中使用的产品。
那么我先来分享一下,什么情况下比较适合使用弹性伸缩产品呢?即当我们的业务有明显的“波峰波谷”(业务高峰期有大量并发连接数,业务淡季并发连接数会大幅下降)而我们更关心成本时,我强烈建议大家考虑使用“阿里云ESS弹性伸缩”产品。
我们以淘宝为例。
每当双11到来时,阿里云的弹性伸缩功能都会提前弹出所需的资源。
当活动人气下降时,部分或全部弹窗资源将会被释放。
这种机制既可以满足业务需求,又可以优化成本的完美解决方案。
我运营和维护的是一个在线直播平台,流量也有非常明显的“峰谷”。
虽然连接数没有这些大型电商平台大,但直播高峰期平台承受的压力着实不小。
后来我使用阿里云ESS弹性伸缩完美解决了我的问题。
接下来我就分享一下我的具体使用过程。
02 实际使用过程中遇到的陷阱及陷阱避免指南。
当我决定使用阿里云ESS弹性伸缩后,在实际操作过程中遇到了两个“坑”。
所谓“坑”并不是产品本身的问题,而是产品本身的问题。
我运营维护的平台架构还不具备弹性伸缩的条件。
接下来我来描述一下遇到的具体问题。
1、配置弹性伸缩后无法使用(陷阱一)按照阿里云官方配置文档配置弹性伸缩策略后,我选择在高峰期弹出2个ECS资源进行负载。
当我急于体验产品的使用效果时,却发现资源并没有按照我的预期弹出,仍然使用原来的“瘦身”ECS进行加载。
下面是我配置弹性伸缩过程的一些截图: 后来我提交了一份技术工单,收到工程师的回复后我才知道,要想真正使用它,系统需要有一个三-层解耦架构。
什么是三层解耦架构?简单来说,前端需要SLB负载均衡作为流量的主要入口,后端应用和数据库必须分离,必须使用RDS作为数据库的解耦架构。
了解了这个前提条件后,我在原有的ECS单体架构上额外添加了SLB负载均衡和RDS MYSQL5.7数据库服务。
并成功搭建了一个简单的三层架构,并将RDS服务和负载均衡添加到了弹性伸缩组中。
以下是所描述操作的屏幕截图。
经过这次整改后,弹性伸缩功能终于可以正常使用了,ECS资源也可以正常弹出了!具体弹窗效果如下:ECS端弹窗效果截图。
ECS端提示正在添加实例,实例控制台已添加两台ECS实例,提示弹出效果OK。
负载均衡端弹窗效果截图。
负载均衡侧在弹性伸缩场景中扮演着主要流量入口的角色。
可以看到新弹出的实例已经被添加到默认服务器组中,说明可以正常加载业务流量。
RDS端添加白名单的效果截图。
数据库侧作为业务访问的一端,负责数据一致性的重要任务,以便为多个ECS实例提供共享访问。
出于安全考虑,实际使用过程中通常会开启数据库的白名单。
设置以增加数据库访问的安全性。
在弹性伸缩场景下,弹出或释放资源会自动在RDS白名单设置中添加/删除IP白名单。
我这次配置自动伸缩后,新弹出的ECS实例的私有IP地址会自动添加到数据库白名单中。
当直播平台到达非高峰时段时,弹窗资源会自动释放。
接下来我们展示一下释放资源的相关信息:ECS端释放效果截图。
ECS端提示实例正在停止,最终将被释放。
说明资源释放效果还可以。
负载均衡侧释放效果截图。
通过负载均衡端可以看到新弹出的实例已经自动释放了,说明负载均衡端的自动负载释放也OK了。
RDS端删除白名单的效果截图。
通过截图,我们在数据库端也可以清楚地看到,之前加入白名单的两个私有IP(.19.40.13、.19.40.14)也被自动删除了。
至此,说明弹性伸缩功能正常,可以正式应用了,完美解决了我们业务对资源弹性的需求。
2、资源没有及时弹出,导致系统崩溃(坑2)。
在使用弹性伸缩的场景中,我遇到的第二个问题是,我匹配了三层架构并配置了伸缩规则并验证正确后,在实际使用过程中,资源没有及时弹出,导致业务平台在高峰时段无法支撑系统,导致系统崩溃,影响用户的访问体验。
当时我就怀疑阿里云的弹性伸缩本身有问题。
后来回顾操作,发现导致这个问题的关键点是伸缩规则类型的创建和冷却时间。
首先,伸缩组中有两种不同的任务类型,一种是定时任务,一种是报警任务。
计划任务 计划任务更适合有规律的高峰和低谷的业务。
定时任务可以在高峰到来之前提前弹出资源,应对高并发需求。
高峰过后,资源逐步释放,节约成本。
这是一项主动的任务。
报警任务 报警任务更适合无法提前预测波峰波谷的业务类型。
它通过设置CPU使用率、内存使用率、磁盘使用率等指标来触发伸缩规则,是一个被动任务。
冷却时间 冷却时间是指自动伸缩任务触发后任务执行的时间间隔。
我运营维护的直播平台的直播时间是可以提前预测的。
使用计划任务可以解决资源预热和弹出的需求。
但是,我使用被动任务,例如警报任务。
当业务高峰时触发伸缩规则后,再出现几秒的冷却时间将严重影响用户的访问体验。
这就是问题的症结所在。
以下为伸缩规则和伸缩组任务的部分配置截图: 创建定时任务配置示例 创建伸缩规则配置示例 03 实际使用过程的完整描述 下面我将描述该业务在使用过程中的完整步骤匹配弹性缩放。
。
上面的业务拓扑图是初始业务的三层架构图。
借助ESS可扩展性,我们可以快速响应业务高峰的高并发。
业务匹配构建弹性伸缩业务环境的完整流程分为三步,即:构建三层架构、配置弹性伸缩、弹性业务验证。
步骤一:搭建三层架构 1. 准备ECS应用。
2.部署SLB负载均衡。
3. 部署RDS数据库 步骤2:配置自动伸缩 1. 创建伸缩组:伸缩组用于管理同一应用场景的ECS实例,支持多个负载均衡实例与RDS实例关联。
2. 创建伸缩配置:伸缩配置是弹性伸缩自动创建ECS实例时使用的实例模板。
用于指定资源类型以及伸缩的具体配置。
3. 启用伸缩配置:首次创建伸缩配置后,系统会自动提示您启用伸缩组。
4. 创建伸缩规则:伸缩规则用于指定需要伸缩的ECS实例数量等信息,或者智能设置伸缩组边界值。
可以根据业务需求创建相应类型的伸缩规则。
5、创建自动伸缩任务:创建伸缩规则后,可以通过自动伸缩任务自动执行伸缩规则,实现自动扩缩容。
第三步:功能验证 1、弹出资源验证:触发伸缩规则,首先验证云服务器资源是否自动弹出,其次验证SLB负载均衡端是否自动添加新的负载实例,再次验证RDS是否数据库已自动开启新的负载IP白名单。
2、释放资源验证:当伸缩规则触发时,首先验证云服务器资源是否自动停止并释放,其次验证SLB负载均衡端是否自动删除新的负载实例,第三验证RDS数据库是否自动删除IP新负载的地址。
列表。
04 总结一下,以上就是我在这款产品具体使用过程中遇到的问题以及相应的解决方案。
目前问题已经解决,并在我们的业务系统上完美运行。
通过阿里云ESS的弹性伸缩功能,企业有效减少了IT投资,提高了IT资源使用效率,实现了企业降本增效的预期。

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-06
06-17
06-17
06-17
06-06
06-18
06-17
06-06
06-17
06-17
最新文章
Android旗舰之王的过去与未来
智能手表不被开发、AR眼镜被推迟,Meta的产品经历了一波三折
为什么Cybertruck是特斯拉史上最难造的车?
更新鸿蒙3后,文杰允许你在车里做PPT了
新起亚K3试驾体验:追求“性价比”,韩系汽车仍不想放弃
阿维塔15登场!汽车配备了增程动力,理想情况下会迎来新的对手吗?
马斯克宣布创建 ChatGPT 竞争对手! OpenAI的CEO给他泼了冷水, GPT-5可能会发生巨大变化
骁龙无处不在,是平台也是生态