2017年在线技术分会——运维/DevOps在线技术峰会上,来自阿里基础架构事业部大数据SRE团队的池枫分享了构建通用化智能运维体系的实践。他主要介绍了智能运维体系的设计以及通用核心套件,从T-flow操作执行、ICS事件连接、IAS智能分析三个核心套件的实际案例出发详细介绍了阿里的运维经验。
以下内容根据直播视频整理而成。
发展历程
上图的上方是大数据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模板的配置界面。首先需要建立流程模板,最中间是核心的分析流程,包含了两类节点,蓝色为分析节点,黄色为结论节点。左边是整个流程定义的全局变量,每个节点都可以去修改全局变量的内容。当我们点击任何一个分析节点之后,就可以在右边的详情面板上展示出其内容。