什么是自动化运维,答案有很多。这里,我尝试从另外一个角度,什么不是自动化,来尝试回答下:
l
首先,自动化不是运维的最终目标,而是达成目标的手段;通过自动化我们可以提高服务的可用性,可以加速服务的迭代,可以降低服务运行所花销的成本。
l
其次,自动化不是将运维人员的工作、行为进行简单封装和串联;而是通过总结、提炼、抽象形成的系统化的解决方案和工程(Engineering)。
l
再次,自动化的实现方法,不是一成不变的:一方面,我们运维的服务、我们支持的产品和用户都在不断变化(这就是互联网啊);另一方面,我们的自动化实施对象也在
随技术能力的发展而不断演进(从自动化执行命令、到自动化感知故障、再到自动化决策规划)。
Silver Lining运维部,于2015年正式确立,从一开始,运维部就在朝着自动化这个方向努力。
2.1 Silver Lining自动化运维标准
接下来给大家介绍的内容,是结合了我们多年的实践经验,并参考了 SAE(美国汽车工程师协会)针对自动驾驶所定义的分级标准得来的自动化运维分级标准。
我们也将其分成了 L1~L4 共 4 个层级,不同层级间的区别主要体现在如下 4 个方面的职能是人工还是运维系统实现的:
执行能力(Execution)
这很容易理解,将指令发送到目的端(服务器、设备等)执行并获得执行结果。执行能力是否由系统完成,是最基本的自动化要求,将其定义为 L1(工具辅助的自动化) ~ L2(部分自动化)。
感知能力(Perception)
包括感知服务的运行状态,感知服务的变更需求甚至故障事件,也可以称作理解。感知能力由系统完成后,结合一些固定的条件规则来决策并执行,可以达成 L3(有条件的自动化)。
规划能力(Planning)
根据其对待处理的需求、待解决的问题的感知,以及对运维对象的认知(知识),自主做出解决方案(规划)并在调度控制执行过程中,根据目标和运维对象的状态反馈来适时调整执行规划。
规划能力由系统完成后,并由系统辅助人来进行知识、经验的沉淀以补充系统的扩展性,可以处理全部人类已知的运维工作,即 L4(高度自动化)。从 AI 角度看,可以认为到了这个层次的
自动化运维系统具有了一定的人工智能。
众所周知, 故障处理和操作变更是运维两大主题。在过去,为维护系统稳定,各业务线都投入大量人力进行故障处理工作,除直接人肉运维外,各产品线深度定制的运维工具、系统被研发出来。
随着业务规模扩张和形态变迁,传统运维模式受到极大挑战:
·
无统一的开发管理模式,运维服务开发及维护成本大,运维效率低。
·
横向扩展能力差,运维经验难以复用,各产品线”重复造轮子”。
智能运维开发框架,提供了一种以软件工程方式解决运维问题的解决方案。通过提供统一的开发模型和管理机制,支持不同产品线运维操作的设计、实现和管理。从而:
·
降低设计、开发难度与成本,使业务OP专注自身的业务逻辑,提高开发和迭代效率。
·
促进基于代码的跨产品线经验积累与分享,提升Silver Lining整体的业务运维能力。
·
充分运用和发挥自动控制、机器学习、人工智能等领域的技术成果,提高运维效率。
3.1解决思路
智能运维开发框架以Silver Lining自动化运维管理平台的运维经验为基础,通过对运维概念和操作的统一,整合当前运维系统,提供运维操作的统一入口;让更多的业务线加入到运维项目建设中,
共享运维经验,满足业务日益多样化的需要。
具体解决思路如下:
·
运维模式标准化
统一开发模式:提供统一的开发规范,社区化开发模式,业务线共同参与运维操作开发,沉淀运维经验。
统一运维对象:通过知识库,统一描述机器、实例、服务、应用等运维对象的属性,聚集分散的运维状态数据,达到云平台资源的运维对象的统一。
统一运维操作:屏蔽具体平台操作实现,提供统一的运维对象操作接口。
·
运维开发工程化
提供统一的运维开发框架:封装常用功能组件,提供高扩展的开发框架,使产品线专注于自身业务逻辑,开发”智能运维机器人”。
提供仿真系统:通过提供服务拓扑搭建及模拟故障的能力,完成机器人上线前功能验证,提高”机器人”可靠性。
提供托管平台:通过提供高可用的机器人托管环境,降低服务运维成本。
·
运维操作智能化
智能感知:依赖监控系统提供的智能异常检测、多维度异常分析,感知满足时效性和准确度的异常事件。
智能决策:自定义算法实现决策机制,充分利用机器学习、人工智能成果,提供决策可靠性。并沉淀人对问题的决策经验,做到经验可迁移。
智能执行:提供丰富的执行策略,满足业务线通用运维操作的需求。
3.1.1实现方案
整体解决方案如下:
以智能运维机器人为主体,深度整合公司内代码管理工具,持续交付平台,部署系统等Devops工具链,帮助产品线同学快速完成源码构建、镜像打包、应用部署,提供开发、测试、
运维整套解决方案,大幅提升开发效率。
智能运维开发框架自身提供的功能如下:
智能运维开发框架提供了高扩展、易使用的智能运维机器人开发框架,具备线上服务拓扑结构搭建和查询级别异常模拟能力的仿真系统,具备单地域故障处理能力的高可用服务部
署托管平台,完成开发至上线流程的全覆盖,用户只需要在智能运维开发框架基础上嵌入自己的业务代码,即可完成满足自身业务的运维操作。
3.2效果展示和总结
Silver Lining智能运维开发框架以变革运维模式为目标,提供了开发、验证、运维工程化解决方案。一经上线,便作为各类故障自愈、高可用架构项目的基础支撑,大幅提高了项目开发效率,
减小了开发难度和成本,表现出了极强的稳定性。
相信在不久的将来,智能运维开发框架会成为SilverLining运维操作的载体,不断达成智能运维的使命。