导读:5月6日,优维科技与数人云主办了【DevOps&SRE超越传统运维之道 · 深圳站】,6月北京站敬请关注~本文是优维科技CEO王津银关于DevOps与传统的融合落地实践的精彩分享
王津银/优维科技创始人&CEO
中国开放运维联盟发起人,精益运维”理论提出者,中国第一批DevOps Master授权讲师,持续交付专家,业内人称“老王”。“互联网运维杂谈”公众号创办者。致力于互联网运维整体解决方案的产品化能力提升,缩短企业到达互联网运维的路径。
一直觉得华南这一片技术沙龙太少了,在DevOps、SRE理念大热的今天,我们希望能把一些先进的经验分享出来,让更多的企业能够受益。华南有很多优秀的业界从业者,比如说今天邀请到的大梁,腾讯内部关于DevOps还是有很多的经验值得分享的。
今天活动主题是DevOps&SRE,我来讲DevOps,王璞分享SRE,SRE是谷歌的DevOps实践,大梁把DevOps最后一棒——持续反馈跟大家分享,希望把这些链条全部的打通。
今天的演讲主要分为以下三个部分:第一个是DevOps全局的理解以及DevOps与ITIL的对比融合,第二个是DevOps落地经验14则,第三个是案例的分析。
DevOps全局的理解
其实讲DevOps特别的多,官方里面给了一个框架图,从计划需求、设计、开发、部署、运营、宗旨,持续交付到IT运营管理、经营管理,后来扩展了一下,大家看到这个全景图的时候的确有概念的认知,我觉得不够。做了以下几点改动:
☆ 第一: IT运营管理
以前叫IT服务管理,因为IT服务管理带来很多ITIL的认知,今天看IT运营范畴变得很多了。面向IT运营管理的实践,ITIL延伸出来的IT服务管理只是其中一部分,还有运营管理、性能管理、监控管理、分析管理等等。
☆ 第二: 扩展上层的实践和工具部分
同时给出一个从理念—工程与方法—过程—实践—工具的转换路径图。这样让我们更能清晰的看到DevOps的整体框架和落地实践及工具的关系。
今天看DevOps整体框架,其实也是一连串工程实践组合,包括敏捷工程、持续交付和IT运营管理及其精益实践等等。在过去IT组织中,或多或少都有敏捷管理和IT运营管理的实践,但IT的效率依然不高,为什么?今天似乎在持续交付中可以找到答案——IT如何成为业务的核心竞争力。
DevOps与ITIL的对比融合
DevOps跟ITIL对比,其实两个不属于同一个范畴,DevOps是属于IT全局的,ITIL是属于运维这块的,IT服务管理的,其实聚焦的领域不一样,但是还是有必要做一个对比。
因为我觉得在运维的行业,我觉得还是要把这两个理念做一个清晰的划分,比如说今天讲的以DevOps整个理念做平台,到底以ITIL做这个平台有什么样的不同。这里面是做一个对比。
首先ITIL是面向管理的过程,以这个目标规范优先,DevOps是面向IT运营过程,是执行的能力跟自动化,ITIL 是离线任务管理为主要特征,而DevOps是以在线服务的。
可以看这里面有关键的作用力,我自己的理解把云计算、上层的框架模式拆分出来之后你会发现越接近上层应用,其实ITIL 对它的作用力越来越小。
比如说之前大梁给我的数据,他的部门两个星期发布9000次,这个不可能针对每一次的发布建立强流程,这样流程太多带来成本非常高,达不到那种的效率。
我们在底下可以看到,在底层基础设施这块的,硬件基础能力还没有达到软件定义这种SDX化,它的作用力依然存在的,但是未来随着软件定义化的能力越来越强,这波浪潮也会改变。NetDevOps的兴起就是一个极好的例子。
DevOps自动化与ITIL规范之间的融合
DevOps可以看到在线服务管理里面,可以兼顾质量效率和成本规划,上图就是DevOps自动化与ITIL怎么融合,极力避免形成OA流程在IT部门的应用。这是按照优维的实践,在传统的行业做交付的过程中我们的产品怎么跟ITIL流程思想对接得出来的模式:
☆ 第一种模式:申请ITIL流程的时候可以直接调动DevOps的工具
典型的特征,比如说第一种在线服务开通流程,我要把我的防火墙开通了,这时候申请一个表单,审核通过了立马调用DevOps的工具执行。
但以前是离线的IT服务目录,我提一个表单、需求单,这个需求单审核通过同意之后,方案管理人员再跑去设备去开通,今天不一样,让流程变成立即可以执行的模式。
今天举例:资源申请流程,在CMDB整个资源申请里,这是国信证券的典型案例,比如说以前资源申请,我从库房拿一个设备,这个设备拿出来我要分配网络重组,以前是各个角色分配完了填写回复,今天不是这样的,把这个流程在线化,所有的资源通过CMDB资源层拿出来直接在表单里执行。
☆ 第二种模式:重大变更的流程
这个流程在华南很大的银行总结出来的案例,我们把所有的变更流程、审批流程做完之后,立马启动执行流,对于高稳定性服务保障流程非常的重要。
比如说对于银行基础设施的网络等等非常重要的,这里有一个问题,这个流程我在审批的时候是A方案,到审核之后方案有可能会被人为改变,怎么办?这种情形有改进的措施,我们把DevOps调度流作为审批流方案一部分,审批通过了这个流程可以去进行执行,这个保证了流程审批完了以后和在线的流程是一致的。
☆ 第三种模式:敏捷发布的流程,或者是DevOps变更的流程
因为今天很多的流程不再依赖ITIL 完成的,比如说敏捷的发布流程JIRA管理,这是一个新的研发管理工具,不可能再回到ITIL 提一个发布单,这里面我总结的是红绿灯机制。当我进入到某一个环节,比如说测试环节不符合的时候,我看到基于什么样的状态?如果通过了就开始的执行。
今天讲的DevOps,还可以从另一个维度看,叫软件研发的模式去看。我们经历了几种模式的变化,第一种是waterfall 的模式,比如说研发、测试、运维间彼此是割裂的,独立的,中间有一个墙存在的,这里面有严格的输入输出在进行传递。
往下面走就是敏捷研发的模式,这里面讲的TDD的测试研发,在每一次的版本可以做很多的小迭代,比如说今天我们做easyops平台,我们规定两个星期出一个小版本,这两个星期出一个小版本的时候,内部还经历一个小迭代,内部很多的小迭代做这个事情。
但是这里面依然有问题,研发跟测试是一体化的,测试驱动研发,这块运维、operation 还是被隔离在外了,但是随着新的业务形态出现后,比如说互联网的模式出现了之后,要强调端到端能力的整合。
DevOps软件研发模式就出现了,在和客户交流的时候,不断的触发思考一个点,实施了敏捷和IT服务管理,为什么IT依然看成成本中心而不是业务的核心竞争力,为什么还是对业务需求响应很慢?在前面讲的持续交付就是来解决这个问题的。
可以看在几种研发模式中,比如说这个Develop以前测试的时候占的70%,详细的设计占比重越来越大,但是到小迭代、小设计的时候Design工作变得越来越小,研发居多了,再往下看测试的工作量变得越来越少,变成自动化的工具。这是我们总结的数据,可以看到随着研发模式的变化,各个角色在里面承担了工作量的配比也在发生变化,研发越来越重要,很多工作也前置到研发阶段。