AIOPS案例学习-阿里巴巴构建通用智能运维平台

2024-03-02 20:08

本文主要是介绍AIOPS案例学习-阿里巴巴构建通用智能运维平台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2017年在线技术分会——运维/DevOps在线技术峰会上,来自阿里基础架构事业部大数据SRE团队的池枫分享了构建通用化智能运维体系的实践。他主要介绍了智能运维体系的设计以及通用核心套件,从T-flow操作执行、ICS事件连接、IAS智能分析三个核心套件的实际案例出发详细介绍了阿里的运维经验。

以下内容根据直播视频整理而成。

视频:https://bbs.aliyun.com/read/324739.html?spm=5176.10695662.1996646101.searchclickresult.7da31cd6afrEzn

 

发展历程

上图的上方是大数据SRE团队运维的产品,几乎包括了所有阿里巴巴使用的大数据产品。下方是运维模式的发展历程,经过了:人工脚本化、工具整合、自动化平台、智能运维体系。承载这些服务的集群规模、服务器规模已经从一开始的K左右发展到如今的近百K左右,分布在所有阿里巴巴的IDC即生产网络域中,业务的种类和业务的形态各不相同。特斯拉智能运维体系下的主要核心运维场景包括环境管理、操作执行、需求处理、时间连接、事件分析、故障预测。各行各业都希望AI能够在自己领域落地,而在运维领域AI有比较现实的需求和比较具体的应用场景。智能运维必须在一个体系化的产品之上,强调的是从监控到分析、到执行整个过程的无人化甚至超人化,突出的是系统的自治能力和预知能力,这个目标比较长远。

智能运维体系设计

横向上,将产品分为四种类型:执行类,直接操作系统,应用程序,硬件,网络的产品;分析类,实现运维人员思考问题,分析需求,排查故障的产品;连接类,实现分析与执行产品驱动与反馈的连系产品;展现类,将智能平台的状态以多种可视化的方式表达出来。

从业务的纵向分层上,在特斯拉体系的内部又分成两个层次:下层是运维Paas层服务,上层是面向终端客户的Saas层服务。在特斯拉体系外部,依托于整个集团的运维Paas服务。

通用核心套件

T-flow操作执行

T-flow是最基础的Paas服务,设计之初是用来替代运维人员的双手。首先将运维操作抽象成一个对象,发现其三个关键的属性(where、what、how),T-flow就是用来实现抽象、封装、实例化的产品。

上图总结了用户在系统上操作的场景:在一个系统目标中按照顺序执行操作、在不同系统目标中按照顺序执行操作、在不同的系统目标中并发的执行操作。为此,设计了simple flow模型来适应这三种场景。

如何构建T-flow模板?用户首先需要配置这些节点中操作的内容,然后配置模板需要输入的参数(T-flow支持多种文本类型的输入),将操作和参数内容进行配置绑定。希望用户只需要关心局部代码逻辑的实现,从全局上面关注整个运维事件。

一次中等规模的应用运维事件往往会牵涉多个应用,任务种类、任务执行方式都不相同,所以在simple flow的基础上又封装了一层多任务、多应用的操作类multiflow,上图共有4种simple flow,每一个方块代表在一个应用上的一个实例,开始执行之后就可以看到每个步骤执行的状态。

UpgradeRegionServer案例

上图是实例的执行界面,中间的绿色方块代表节点,点击每个节点之后会在下方显示节点具体的内容。这是生产上hbase集群热升级的案例。为了适应应用中的服务是热升级的场景,开发了迭代器功能,实现一批服务器上按照顺序执行相同的指令,用户只需要配置同样的指令、输入目标集群参数,系统就可以自动生成节点。

shrek-drc-alipay案例

该案例的步骤只有三步,每个步骤中使用了并发器组件(在一批机器上并发执行脚本命令),提供了灰度和正式批的区分,提供了并发数可配置的功能,并且异常节点可以很清楚的显示在界面上。

并发器的具体内容如上图所示,三个步骤都是推送文件到目标服务器上的操作。

FlightingUpdate案例

此案例是multiflow的实例,在第一个大步骤中有12个simple flow实例,可以清晰看到每个实例的执行状态和执行方式。

ICS事件连接

事件包括监控事件、故障分析、流程事件,服务包括脚本分析、T-flow实例执行、Noc通知等。通过ICS的使用,可以使简单的运维事务实现闭环。比如在ICS上配置监控事件并且配置其修复方案就实现了故障自愈的场景。ICS能够将我们关注的,而且是确定能够通过自动化方案解决的事务形成一个简单的智能处理闭环,减少了人工处理过程中的消耗。

上图是ICS的架构图,整体分为三个部分:触发器、事件处理、执行器。ICS的触发器和执行器采用了插件化的方式去实现业务连接。事件处理模块充分考虑了事件的抑制、冲突等机制,保证了整个ICS处理的稳定性、可靠性。

分布式文件系统一副本高危自愈案例

首先是高危事件的配置,事件触发的来源可以有很多种,监控、文件分析等,采用了从监控的源头获取事件。当选择了监控事件之后,需要配置监控来源的应用、事件的抑制处理方案、异常处理的逻辑。下一步是配置事件修复的执行器。最后,将触发器和执行器进行连接,生效之后ICS平台就会关注这个事件。如果有事件发生就会启动执行器进行处理。

IAS智能分析

IAS预期目标包括:实现问题分析、发现潜在问题、进行决策分析。

IAS1.0(图分析平台)

该版本实现了问题排查的自动化,通过DAG决策来模拟人排查定位问题的过程。在此基础上,还要根据用户的实际需求情况完善整个流程。图中的每一个节点代表用户的分析逻辑,由用户来实现,边代表各个节点之间的依赖关系,边上的条件可以通过用户需求进行配置。

上图是使用IAS的案例,界面为IAS模板的配置界面。首先需要建立流程模板,最中间是核心的分析流程,包含了两类节点,蓝色为分析节点,黄色为结论节点。左边是整个流程定义的全局变量,每个节点都可以去修改全局变量的内容。当我们点击任何一个分析节点之后,就可以在右边的详情面板上展示出其内容。

展望及发展计划

特斯拉体系中除了运维Paas组件之外,还有面向客户的Saas服务,这些服务对运营效率的提高也是巨大的。运维工作需要沉淀,即对运维过程的格式化,只有格式化之后才能产生数据。只有格式化的数据才能作为数据分析、挖掘的依赖。通过tesla运维体系的建设使得运维更加主动,使运维有时间去做更深层次的、更高价值的工作。运维智能化的大潮刚好是改变运维价值的很好机会,将运维从低价值的工作中解脱出来,起到更重要的作用。

要是你在西安,感兴趣一起学习AIOPS,欢迎加入QQ群 860794445

这篇关于AIOPS案例学习-阿里巴巴构建通用智能运维平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767285

相关文章

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

MySQL 复合查询案例详解

《MySQL复合查询案例详解》:本文主要介绍MySQL复合查询案例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录基本查询回顾多表笛卡尔积子查询与where子查询多行子查询多列子查询子查询与from总结合并查询(不太重要)union基本查询回顾查询

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen