在运小皮《百度自动化运维演进》文章中提到,2014 年以来,百度运维开始向智能化方向迈进。智能运维时代,如何提高智能运维效率,降低通用运维操作(典型如故障场景)开发难度和成本,成为首要难题。本文将向大家介绍面向感知、决策、执行的百度智能运维工程化解决方案。
故障处理和操作变更是运维两大主题。在过去,为维护系统稳定,各业务线都投入大量人力进行故障处理工作,除直接人肉运维外,各产品线深度定制的运维工具、系统被研发出来。随着业务规模扩张和形态变迁,传统运维模式受到极大挑战:
无统一的开发管理模式,运维服务开发及维护成本大,运维效率低。
横向扩展能力差,运维经验难以复用,各产品线”重复造轮子”。
智能运维开发框架,提供了一种以软件工程方式解决运维问题的解决方案。通过提供统一的开发模型和管理机制,支持不同产品线运维操作的设计、实现和管理。从而:
降低设计、开发难度与成本,使业务 OP 专注自身的业务逻辑,提高开发和迭代效率。
促进基于代码的跨产品线经验积累与分享,提升百度整体的业务运维能力。
充分运用和发挥自动控制、机器学习、人工智能等领域的技术成果,提高运维效率。
解决思路
智能运维开发框架以 Noah(百度自动化运维管理平台)时代的运维经验为基础,通过对运维概念和操作的统一,整合当前运维系统,提供运维操作的统一入口;让更多的业务线 OP 加入到运维社区建设中,共享运维经验,满足业务日益多样化的需要。
具体解决思路如下:
1 运维模式标准化
统一开发模式:提供统一的开发规范,社区化开发模式,业务线 OP 共同参与运维操作开发,沉淀运维经验。
统一运维对象:通过知识库,统一描述机器、实例、服务、应用等运维对象的属性,聚集分散的运维状态数据,达到公司内运维对象的统一。
统一运维操作:屏蔽具体平台操作实现,提供统一的运维对象操作接口。
2 运维开发工程化
提供统一的运维开发框架:封装常用功能组件,提供高扩展的开发框架,使产品线专注于自身业务逻辑,开发”智能运维机器人”。
提供仿真系统:通过提供服务拓扑搭建及模拟故障的能力,完成机器人上线前功能验证,提高”机器人”可靠性。
提供托管平台:通过提供高可用的机器人托管环境,降低服务运维成本。
3 运维操作智能化
智能感知:依赖监控系统提供的智能异常检测、多维度异常分析,感知满足时效性和准确度的异常事件。
智能决策:自定义算法实现决策机制,充分利用机器学习、人工智能成果,提供决策可靠性。并沉淀人对问题的决策经验,做到经验可迁移。
智能执行:提供丰富的执行策略,满足业务线通用运维操作的需求。
实现方案
整体解决方案如下:
以智能运维机器人为主体,深度整合公司内代码管理工具,持续交付平台,部署系统等 devops 工具链,帮助产品线同学快速完成源码构建、镜像打包、应用部署,提供开发、测试、运维整套解决方案,大幅提升开发效率。
智能运维开发框架自身提供的功能如下:
智能运维开发框架提供了高扩展、易使用的智能运维机器人开发框架,具备线上服务拓扑结构搭建和 query 级别异常模拟能力的仿真系统,具备单地域故障处理能力的高可用服务部署托管平台,完成开发至上线流程的全覆盖,用户只需要在智能运维开发框架基础上嵌入自己的业务代码,即可完成满足自身业务的运维操作。
总结
智能运维开发框架以变革运维模式为目标,提供了开发、验证、运维工程化解决方案。一经上线,便作为各类故障自愈、高可用架构项目的基础支撑,大幅提高了项目开发效率,减小了开发难度和成本,表现出了极强的稳定性。
相信在不久的将来,智能运维开发框架会成为百度运维操作的载体,不断达成智能运维的使命。
作者介绍:
运小韩,百度高级研发工程师,负责百度运维部分布式任务调度系统、智能运维开发框架及可用性相关工作,在分布式系统、AIOps、可用性方向有广泛经验。
本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。
原文链接:
https://mp.weixin.qq.com/s/xrvx-ZerRu43J-DRaOeeUQ
评论