带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(1)

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
简介: 带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(1)

弹性计算技术公开课——CloudOps云上运维季目前已经圆满结束了,阿里云弹性计算技术专家王子龙和阿里云弹性计算技术专家樊超在本次课程中带来了题为《提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具》的主题分享, 课程涵盖基于事件构建可观测体系、基于事件的云上运维、ECS事件驱动最佳实践、使用ECS遇到故障时的痛点分析、一眼排障ECS健康状态、一键定位ECS健康诊断等内容。

 

以下是本节课程的内容整理,供各位开发者学习:

 

大家好,我是来自阿里云弹性计算团队的王子龙,今天给大家讲一下如何构建 ECS 的事件驱动体系,如何基于 ECS 事件进行自动化运维,提升运维效率,从这四个方面给大家进行介绍。

1. 基于事件构建可观测体系

首先看一下如何基于事件构建可观测体系,先看一个真实案例。

 

image.png

 

某用户使用了突发性能实例,再进行大幅活动的时候,发现实例性能不符合业务预期,CPU 负载高,紧急进行了扩容,对大促活动造成了一些不好的影响,事后对该案例进行分析,可以看到,在问题可以发生时,如果能够提前感知对问题进行处理,就可以避免对业务的影响。

 

在使用 ECS 过程中会遇到很多突发问题。比如实例重启影响了正常业务使用,磁盘出现损坏,无法进行数据读写,创建实例后我们如何知道实例已经创建成功能够正常运行。针对这些问题,我们的共性思考就是能否提前感知问题,能否避免问题影响业务,是否能够知道问题产生的原因。针对问题,我们能做什么,如何处理从而对业务没有影响以及如何提升效率,比如使用 openai ati 的过程中,如何避免轮询更高效的感知 ati 的结果。

 

image.png

 

这里列出了使用 ECS 时可能会遇到的一些常见共性问题,在实例维度会遇到实例突然宕机,实例非预期重启,实例性能受损,实例欠费等问题,在磁盘方面会出现磁盘损坏,磁盘性能严重降低,如何换盘问题,从安全层面会遇到实例受 DDOS 攻击,是否存在潜在的安全违规问题,从业务操作层面启动实例,挂载网卡是异步的,怎么能够及时感知结果,创建快照时间比较久,如何知道快照什么时间创建完成。

 image.png

 

接下来了解如何监测这些问题,这是公有云的完整架构数据图。通过对刚才列出的问题进行分类可以分为两部分,一部分是阿里云底层物理设备或者服务异常导致的问题,另一部分是客户使用资源的直接或者间接行为导致所产生的,而这些问题都会有对应的 ECS 事件,阿里云会把 ECS 实例出现到异常以及用户操作所导致的资源状态变化包装为不同类型的 ECS 事件,通过订阅 ECS 事件,可以监测当前实例的健康状态。

 

image.png

 

通过介绍 ECS 事件,了解事件和实例问题之间的关系。首先,不同的事件类型代表不同的问题。

 

比如磁盘不可用会对应坏盘事件,比如创建的快照。快照完成后就会有快照创建完成时间。目前 ECS 事件整体分为运维事件,用户事件,安全类事件,费用类事件。

 

每个大的分类一下都会有不同的事件类型对应不同的问题场景。比如都会有实例重启时间。非预期事件就是发生了重启通知用户,计划内运维事件就是未来某个事件会发生重启,用户可以修改重启时间规避问题。

 

对运维事件进行一下说明:运维事件分为非预期运维事件和计划内运维事件,非预期事件是指由于宿主底层软硬件突然出现故障,比如说硬件损坏,软件 Bug 等,导致其上的 ECS 突然变得不可用,计划类运维事件是阿里云计划对宿主级进行维护升级或阿里云发现底层物理机存在故障隐患,提前通知用户进行相关操作,同时我们根据受影响的程度划分了不同的事件等级,分为严重、警告、信息、三个级别。

 

如严重的等级,就表示这个事件需要被尽快处理,否则可能会导致实例无法使用,用户可以根据自己的诉求关注不同等级的事件。另外,事件会按照统一的标准进行定义,根据事件定义,我们能够一目了然的明白当前事件代表的含义,一般事件会包括资源类型。比如 instanse 代表实例,DISK 代表云盘。还会有事件起因说明该事件为何产生,还有对资源的影响,如宕机表示 ECS 实例会停止运行。

 

另外部分事件会有事件的状态,如 executing 代表事件正在执行中。另外,我们可以基于事件进行一些运维的操作。

 

下面看一下什么是基于事件观测实例的健康状态。

image.png

 

首先是实例产生事件后会通过阿里云的消息中心发送短信,邮件。在阿里云 ECS 控台可以查看实例下产生了哪些事件,也可以通过 open API 进行实践查询,这里可以只查询自己关注的事件。

 

同时我们也可以在云监控查看事件,在云监控的系统事件列表下可以根据不同的条件筛选不同的事件和查看,同时我们再用监控也可以配置自定义的报警规则,选择关注的事件,针对事件创建报警规则,投递到指定的渠道,目前支持多种投递渠道,同时我们还可以根据事件的属性进行事件过滤,实现更精确的观测。

2. 基于事件的云上运维

看一下如何基于事件进行运维,先看一个真实案例。

 

image.png

 

某个用户在业务高峰期实例发生了重启,影响了该时间段的业务。分析后发现,该实例的底层宿主机出现了故障。平台计划在未来某个时间段重启实例,通过迁移规避故障。而刚好该是时间为用户的业务高峰期,用户可以通过修改计划重启时间,避开业务高峰。但是用户忽略了这个通知。除了重启,我们还会遇到比如本地盘损坏,云盘残留安全问题,而这些问题都会有对应的事件,都可以基于事件运维提前规定,比如阿里云底层宿主机存在潜在的软硬件故障风险,需要重启。那此时 ECS 就会生成实例相关的计划内运维事件。

 

通过重启,重新部署等操作,可以提前规避底层的风险。同时我们还能指定重启的时间,避免重启对业务造成影响。比如本地盘出现损坏,会生成磁盘相关的事件。我们可以通过隔离坏盘,本地维修,磁盘恢复事件,来完成对受损的本地盘的处理。我们可以授权阿里云执行事件,也可以修改事件的执行时间,也可以通过系统去集成事件。

 

下面介绍一下基于事件进行运维的几种方式。

 

image.png

 

第一可以基于 ECS 控制台进行运维。我们可以在控制台试验列表选择关注的事件。如果事件太多,也可以通过一些过滤条件进行筛选。在事件列表会展示事件对应的实例,事件类型,事件的严重等级,事件状态。通过点击操作下方的按钮执行事件,不同事件对应的操作会有所不同,有的是重新部署,有的可以设置重启时间。具体的操作会根据实践类型而有所不同。

 

第二用户可以基于 ECS 事件 open API 进行运维。用户可以通过 open API 主动查询某个地域下全部实例或者某个实例的运维事件。

 

image.png

 

并且快速适配自己的业务系统进行自动化的对接。目前有三个新的 API

 

一个是可以查询用户下某个地域内的沉没实例或者指定实例。第二个,就是我们对于外形中的状态的运维事件。用户可以去响应该事件,并授权阿里云执行默认的操作。第三我们可以修改某个地域下全部实例或者某个实例的运维策略比如说,修改运维的事件窗口,修改运维的维护动作。第三我们可以基于 EVENT  BUS 平台进行系统的集成。我们会把 ECS 事件推到云监控,可以在 EVENT  BUS 平台上订阅事件。

 

这里看一下基于 EVENT BREAK 示例。首先选择要订阅的事件来源。ECS 事件请选择阿里云官方事件源,然后选择需要订阅的事件类型,选择后会给出事件格式的示例。接下来呢,我们可以创建对应的事件,订阅的规则,选择合适的投递协议投递到我们的应用系统。目前支持了多种的投递协议,可以满足多样化的系统提升诉求。

3. ECS 事件驱动最佳实践

 

image.png

 

接下来看一下基于第三次事件驱动的最佳实践。这是云上某用户通过 EVENT bridge 订阅事件进行自动化运维的最佳实践。首先用户会在 EVENT bridge 创建实现规则,选择 HTTP 作为事件的投递协议。其次,用户会订阅关注的云产品产生的事件。EVENT bridge 也提成了阿里云很多云产品事件。当产品产生事件的时候会通过EVENT bridge 投递到用户自己的内部用户系统。

 

在用户系统中通过 KAFKA 进行内部的事件分发。事件会与内部的财务系统进行集成,实时感知费用变化情况,支持费用相关的业务。一些运维事件会按照优先级事件类型进行分类,分发给不同的运维人员进行处理。另外还有一些内部应用会集成事件,用来订阅资源状态变化。内部业务系统和应用程序通过实验驱动来集成阿里云的事件,方便运维人员通过事件进行自动化的运维。

 

这个是通过事件驱动解决轮询用户 OPEN API 体验差的最佳事件。用户会调用 ECS open API 操作 ECS 的资源。

 

image.png

 

但像启动实例,挂载网卡,创建镜像等操作是异步的,不能实时得到结果。此时用户就会调用查询类的 API,不断轮询资源的状态。但是轮询会遇到限流,并且会有很多无效的查询,不能实时感知结果。而通过事件驱动的方式,当有事件产生时, ECS 会把事件发布到 EVENT BUS 平台,如云监控,用户选择使用 MNS 协议,同时通过事件驱动的方式进行集成。

 

一方面更新内部业务系统的资源状态,解决资源状态更新不及时的问题。另一方面可以根据事件中的时间属性与内部运维系统提成统计整个操作的耗时。

 

通过事件驱动的方式,可以解决异步 Open API 轮询体验差,能够在第一时间感知业务操作结果,避免阻塞当前业务,同时事件驱动的方式编程更友好,相比 open API 更适合应用提成。


更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——提升云上资源稳定性的两大利器:事件驱动体系构建&自诊断工具(2):https://developer.aliyun.com/article/1405330

相关文章
|
2月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
233 116
|
2月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
257 114
|
2月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
291 113
|
2月前
|
JSON 监控 API
n8n错误处理全攻略:构建稳定可靠的自动化工作流
在n8n自动化工作流中,错误是提升系统可靠性的关键。本文详解常见错误类型、节点级与全局处理机制,结合重试、熔断、补偿事务等高级模式,助您构建稳定、可维护的生产级自动化流程。
|
2月前
|
Java 项目管理 Maven
Maven项目管理与构建自动化完全指南
Maven彻底改变了Java项目管理方式,通过POM模型、依赖管理和标准化构建流程,大幅提升开发效率。本文深入解析其核心概念、多模块管理、私服搭建及与Spring Boot、Docker等现代技术栈的集成实践,助力开发者实现高效、规范的项目构建与团队协作。
Maven项目管理与构建自动化完全指南
|
2月前
|
存储 运维 监控
57_大模型监控与运维:构建稳定可靠的服务体系
随着大语言模型(LLM)技术的快速发展和广泛应用,如何确保模型在生产环境中的稳定运行、高效服务和安全合规已成为企业和开发者面临的关键挑战。2025年,大模型服务已从实验室走向各行各业的核心业务流程,其运维复杂度也随之呈指数级增长。与传统软件系统不同,大模型服务具有参数规模庞大、计算密集、行为不确定性高等特点,这使得传统的运维监控体系难以满足需求。
数据采集 Web App开发 人工智能
173 0
|
4月前
|
数据采集 运维 监控
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
运维靠经验拍脑袋?不如上车:构建“数据驱动”的智能决策系统
168 0
|
4月前
|
人工智能 自然语言处理 安全
Milvus x n8n :自动化拆解Github文档,零代码构建领域知识智能问答
本文介绍了在构建特定技术领域问答机器人时面临的四大挑战:知识滞后性、信息幻觉、领域术语理解不足和知识库维护成本高。通过结合Milvus向量数据库和n8n低代码平台,提出了一种高效的解决方案。该方案利用Milvus的高性能向量检索和n8n的工作流编排能力,构建了一个可自动更新、精准回答技术问题的智能问答系统,并介绍了部署过程中的可观测性和安全性实现方法。
|
4月前
|
机器学习/深度学习 存储 算法
Trinity-RFT:构建智能体持续学习的自动化强化微调工厂
大型语言模型作为智能体在真实环境中持续交互学习面临诸多挑战。 Trinity-RFT 是通义实验室推出的强化微调框架,旨在实现智能体的持续进化。它通过探索、训练与经验池的解耦设计,支持多样化训练模式,提升资源利用率和学习稳定性。同时,Trinity-RFT 提供灵活的数据处理与算法模块化功能,降低应用与研究门槛,助力迈向终身学习与自主进化的智能体时代。
329 2

热门文章

最新文章