带你读《CloudOps云上自动化运维 白皮书2.0》之17:5.弹性工具推荐(3)

简介: 带你读《CloudOps云上自动化运维 白皮书2.0》之17:5.弹性工具推荐(3)

《CloudOps云上自动化运维 白皮书2.0》—— 五、弹性能力Elasticity——5.弹性工具推荐(2):https://developer.aliyun.com/article/1222512?groupCode=ecs



c) 弹性伸缩(ESS)

 

对于分布式应用、无状态应用、大型应用等场景,用户手动指定固定数量的云资源已经无法满足业务快速和剧烈的变化。客户可以借助于阿里云的弹性伸缩服务(ESS),根据业务需求和策略自动调整实例数量,在业务需求增长时,弹性伸缩自动增加实例,来保证计算能力;在业务需求下降时,弹性伸缩自动减少实例,节约成本。

 

同时,弹性伸缩具备实例健康检查能力,能自动识别并替换不健康的实例,不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序,保障业务的持续运行。

 

目前弹性伸缩(ESS)产品提供了以下几个维度的自动化能力,帮助客户自助实现业务的自动化智能化扩缩容,快速提升业务可用性。

 

灵活丰富的扩缩容模式

 

对于业务负载波动比较稳定的场景,例如在每天中午12点开始业务需求明显增加,每天晚上8点后需求明显减少的场景,用户可以通过定时任务快速完成可预期负载的响应。但对于业务负载变化无明显规律,或者在规律性波动外偶尔有突发负载的场景,需要更灵活的伸缩模式来响应业务波动。弹性伸缩目前提供的扩缩容模式包括:

 

手动模式:允许用户手动进行弹性伸缩,包括手动添加、移出或者删除已有的资源。

 

固定数量模式:用户设置集群的最小/最大期望资源数量,当实例数量低于下限/超过上限时,系统会自动添加/移出资源,使得资源数量等于下限/上限。

 

健康监测模式:系统自动检查计算资源的运行和健康状态,如果发现一台计算资源未处于运行中或处于不健康状态时,弹性伸缩服务会自动移出该资源,并创建一台新的资源进行替换。

 

定时模式:用户可以通过创建定时任务,实现在指定时间内自动创建或释放指定4数量的资源。

 

指标模式:监控集群中资源的性能指标(如CPU利用率、网络流量均值)波动,当指标当前值超出制定阈值时,自动触发执行资源的扩缩容。

 

完善的业务指标监控矩阵

 

一般业务负载的波动都与一个或多个业务指标有强关联性,即用户可以通过监控业务负载的一个或多个指标识别到业务的上下波动。阿里云的弹性伸缩服务不仅支持根据伸缩组内集群实例的十几种性能指标进行扩缩容,比如实例的CPU使用率、内存使用率、网络吞吐率等,还支持根据其他产品的指标进行自动扩缩容,比如负载均衡的QPS。

 

弹性自愈的能力

 

弹性伸缩自带的健康检查能力,会周期性扫描伸缩组内ECS实例的健康状态。如果发现某个实例处于关机状态(不提供正常服务)或实例OS内出现异常导致实例无法正常响应,弹性伸缩服务会自动移除该实例,并创建一个新的实例进行替换,确保业务所需算力。此外,当伸缩组与某个负载均衡关联后,如果负载均衡发现伸缩组内某个实例出现异常,自动将该实例摘除后,弹性伸缩也会自动创建一个新实例,确保算力稳定。

 

有效的成本控制

 

弹性伸缩目前提供两种方式帮助用户在保障业务可用性的基础上,尽可能降低算力成本。

 

一是弹性伸缩支持扩容时同时选择按量和抢占式实例,以及指定两种实例的比例。

二是弹性伸缩的动态伸缩模式和预测的伸缩模式均可以自动根据业务负载波动自动计算所需算力的调整,实现资源规模与负载需求直接的完美匹配,避免过度供给带来的成本浪费。

 

个性化的弹性管理能力

 

对于部分无法做到完全无状态的业务负载,比如在扩容时新交付的实例正式承接负载前,需要下载最新的数据或代码,弹性伸缩的生命周期挂钩可以实现扩缩容时的个性化配置。

 

目前,弹性伸缩支持扩容和缩容两种类型的生命周期挂钩。用户可以创建扩容时的生命周期挂钩,在新扩容出来的实例正式使用前,在实例内做一些自动化的配置任务,比如安装某些应用程序或执行某些脚本。当任务完成之后,才真正将实例投入使用。缩容的生命周期挂钩也是类似的场景,满足多样化的弹性诉求、

 

对于自动化能力较高的用户,希望监控弹性伸缩的各种行为与结果并与其他系统打通,比如当扩容失败时需要及时感知并自动执行其他任务进行兜底,避免业务受损,可以消费弹性伸缩提供的各种事件和通知渠道。目前弹性伸缩支持扩缩容成功、扩缩容失败等场景的事件,并支持MNS消息队列、云监控等订阅通道,方便用户快速完成接入和打通。

 

超高的弹性成功率

 

云上计算资源的获取是通过实例具体规格来指定的,比如阿里云的c5.large,c6.large,c7.large等多个实例规格均可以提供2核4GB的算力。如果客户的业务负载对算力没有特殊的要求,比如实例的网络吞吐上限等,在使用弹性伸缩时,可以选择多个可用区和多种符合要求的实例规格,当遇到临时突发流量时,弹性伸缩服务会自动在多个可用区下巡检所有符合要求的实例,尽可能交付所需算力,避免因单个资源库存不足导致业务降级或受损。

 

智能化弹性

 

对于周期性明显的负载波动,弹性伸缩服务提供了预测伸缩模式,即对业务负载波动历史进行分析建模自动预测业务负载未来2天的变化情况,无需用户配置即可实现在需要的时候自动扩缩容所需算力。目前弹性伸缩的预测伸缩模式仅适用于CPU、内存和网络带宽有明显周期性波动的业务负载。

 

image.png

智能化弹性能力示例

 


《CloudOps云上自动化运维 白皮书2.0》—— 五、弹性能力Elasticity——5.弹性工具推荐(4):https://developer.aliyun.com/article/1222509?groupCode=ecs

相关文章
|
10天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
2月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
64 3
|
2月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
79 2
|
3天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
58 16
Selenium:强大的 Web 自动化测试工具
|
8天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
18天前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
21天前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
97 4
|
27天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
27天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
52 4
|
29天前
|
运维 监控 数据安全/隐私保护
自动化运维工具的设计与实现
【10月更文挑战第34天】在现代IT基础设施管理中,自动化运维工具扮演着至关重要的角色。它们不仅提高了运维效率,还确保了服务的连续性和稳定性。本文将深入探讨如何设计并实现一个自动化运维工具,从需求分析到功能实现,再到最终的测试与部署。我们将通过一个简单的代码示例来展示如何自动执行常见的运维任务,如日志清理和性能监控。文章旨在为读者提供一套完整的方法论,以便他们能够构建自己的自动化运维解决方案。