2020年6月19日,由云计算开源产业联盟指导,高效运维社区和 DevOps 时代社区联合举办的GNSEC 2020线上峰会圆满举办。BoCloud博云参加了本次峰会并分享了博云帮助客户实施DevOps的真实案例,以及博云内部推行DevOps落地的实践经验。
01
DevOps范围、愿景和目标
过去我们谈到DevOps的时候有很多不同的认知。早先说DevOps可以是CICD,持续交付,后来有人把敏捷开发管理放进来,之后有客户跟我们聊DevOps是指运维SRE。得利于中国信息通信研究院主导的研发运营一体化的标准,终于把DevOps包含哪些内容给说清楚了,如下图所示:
DevOps标准中主要包含5大块内容:研发运营一体化、应用设计、安全积极风险管理、组织架构、系统工具。核心的模块在第一部分“研发运营一体化过程”里,而且标准中把最佳实践是什么样、不同等级实践对应有哪些具体细节都说的很清楚。
基于如上这个框架,实际上可以看到DevOps的目标是很多的,涉及开发、测试、运维三个模块。
因为目标很多,所以DevOps到底要怎样落地?是不是照着蓝图做就能很好的实现DevOps落地?因为有蓝图有最佳实践、有标准,按理说DevOps落地应该是非常轻松的。我们回答也很明确:不是这样的。这里我举2个例子,管中窥豹的看看DevOps实践过程中的一些弯路。
02
照着蓝图做,是否就能轻松DevOps落地?
第一个是大型央企DevOps推广案例:内部云团队想规划建设PaaS平台,包括DevOps平台,因为PaaS包含DevOps,所以云团队想将PaaS平台中的DevOps能力推到研发部门。
整体建设范围是敏捷开发管理、持续交付管理、运营一体化,这个事情花了很多精力,也做了很多内部团队的沟通,整体来讲在业务团队推广效果不是特别好,后来就逐渐搁置了。这个事情不是说做失败了,至少效果没有显现出来。总结来说的话:DevOps平台应该是谁使用谁建设可能在起步阶段会更容易一些。
第二个是我们某个中型金融机构案例。这个案例建设目标起的比较高,并找了咨询公司做了咨询。咨询公司做的东西确实比较好,比较完整也比较细致。整个的建设目标包括开发管理、持续集成、测试部署、持续监控的,规划的很完整。
到了落地阶段,这个项目整个落地周期10个月,上线7套系统。整个落地模块包含项目协同,流水线制品库等等,落地了项目协同、CICD流水线、度量仪表盘、管理驾驶舱。客观说实际推广效果还是可以的,尤其开发团队感受还可以。但是整个项目后来总结时运维团队提出了很多意见,说前期运维团队也参与了,领导也提了目标要求,但最后做了10个月,运维团队没有感受到这个平台带来价值。
这个实际应该算是比较成功DevOps项目,但是后来评估的时候运维团队却提出了明确的负面意见,影响了项目评价。总结来说:项目前面调起的太高,范围过大,各个团队落地的期望比较高,但是实际上落地的时候可能有些团队没有得到想要的效果,效果评价受到了影响。DevOps落地初始目标设计,要更合理一些。
如上两个小案例,以点带面说明下DevOps落地的典型问题。
基于前面的案例,我想回答一下为什么DevOps蓝图很难一步到位。第一是因为组织架构, DevOps项目希望同时在开发部门、测试部门和运维部门都得到很好效果很难,最好分步来做,先解决单部门问题是比较合理。
第二个DevOps自动部署的工具仅仅是一部分,其实还涉及DevOps文化和共同认识的建立过程,这需要一个较长的过程。DevOps整体蓝图要解决的问题,涉及的底层工具非常多,很难短时间在没有很好的基础前提下快速落地,良好的DevOps落地需要一系列标准规范的推广落地。但一般来说,因为历史包袱原因,标准规范的推广需要一个逐步甩包袱的过程。这些规范非常需要,但是因为历史包袱问题推广是很麻烦,遇到业务部门业务需求是很大的,所以说标准规范推广是比较难,但必须要做,但是推广需要过程。整体来说,这几个原因是DevOps有了蓝图和最佳实践还是很难一步到位原因。
03
DevOps落地实施路径建议