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

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结