序言
云计算行业已经有十多年的发展了,话题早已从“要不要上云”转向“如何用好云”。“要不要”其实是一个决策性的话题,直到决策出来一个结果了,话题就算结束了。而“如何用好云”却是一个持续性的话题。
一般来说,在规划阶段开始,企业就会开始思考“如何用好云”,这个话题会伴随用云的整个过程。如果简单地从工作类型划分,除了业务代码的研发(Dev),其他的部分都可以称为运维(Ops),包含资源创建(环境部署)、应用部署、资源管理、资源监控、报警、故障排查等工作。
笔者从事云计算工作超过五年时间,参与开发过多款云产品,可以说既是云计算产品的消费者,也是云计算产品的生产者。在这里,笔者谈一谈对云上DevOps能力体系的多年思考和总结,希望对准备上云或是已经上云的运维人员有所帮助。
1自动化运维等级金字塔
从运维自动化等级和程度来看,DevOps其实是一种非常高级的自动化,不仅自动化程度比较高,而且对于自动化的完成方式有着非常严格的定义。关于运维自动化与DevOps的关系,其实可以非常好地参考汽车自动驾驶技术分级标准,笔者做了个对比图,如图1。
图1:自动化运维等级金字塔
如图1,自动化运维可分为5个等级,分别是手动运维、半手工/半自动化运维、高度自动化、标准化运维和AIOps,分别对应自动化驾驶的6个Level,其中运维自动化L2对应了自动驾驶的Level1和2。为了方便说明和对比这5个自动化运维等级,请参考如下的表格。
表1:自动化驾驶等级与自动化运维等级对比参考
Level1:手动运维。一些技术能力一般的企业,在上云初期运维工作主要是纯手动,只能依赖云服务商提供的控制台进行操作。Level2:半手工/半自动化运维,运维自动化工作比例还不超过30%。运维人员可以通过命令行(CLI)完成部分运维工作。Level3:高度自动化,运维自动化程度可达到50%。企业运维人员会使用云平台的SDK调用API进行日常运维工作,同时自行开发运维系统,但运维系统通常无定制化和平台能力,和内部系统紧耦合。Level4:标准化自动化,运维自动化程度超过90%。企业的运维系统已具备平台化、模版化和代码化的能力,可根据自身的运维需求定制化开发系统。与此同时,运维人员已具备使用具备模板化的产品来实现运维工作的标准化和自动化。Level5:AIOps,即智能运维,运维自动化程度达%。不再需要值班人员,生产力完全解放。这是当前很多大型互联网企业的运维目标,也是头部企业重点投入的方向。2DevOps是自动化运维的进阶模式
2.1模板化是最DevOps的自动化方式
这里,笔者想着重谈一下Level3-高度自动化运维与Level4-标准化自动化运维的区别。大多数自研的运维系统是在Level3类型,例如在内部运维系统上开发了一个功能,可以立即创建10台云服务器,下次需要创建其他资源时,如创建3个消息队列,还是需要额外再开发创建消息队列功能。所以,Level3-高度自动化运维可以理解为是一个聚焦具体场景的单一“系统”。
而Level4-标准化自动化运维更具备普遍性,完成了更高一级的抽象。当前,大多数的云平台都提供了自动化部署相关产品,如AWSCloudFormation、阿里云的资源编排工具ROS等,所以Level4标准化自动化运维系统其实是一个平台型的产品。
使用Level4阶段的产品创建资源只需要创建一个模板,当需要创建新资源时,只需要套用模板即可,无需额外开发。多提一句,这里说的模板通常是YAML或是JSON文件,最近业界又开始将这类YAML和JSON代码化,面对资源的代码方式,思路和模板还是一致的,对于DevOps先锋者建议可以
转载请注明:http://www.0431gb208.com/sjszlfa/1379.html