内容简介:今天的演讲主要分为以下三个部分:第一个是DevOps全局的理解以及DevOps与ITIL的对比融合,第二个是DevOps落地经验14则,第三个是案例的分析。DevOps全局的理解其实讲DevOps特别的多,官方里面给了一个框架图,从计划需求、设计、开发、部署、运营、宗旨,持续交付到IT运营管理、经营管理,后来扩展了一下,大家看到这个全景图的时候的确有概念的认知,我觉得不够。做了以下几点改动:
| 编辑推荐: |
| 本文来自于网络,本文主要分享了对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工作变得越来越小,研发居多了,再往下看测试的工作量变得越来越少,变成自动化的工具。这是我们总结的数据,可以看到随着研发模式的变化,各个角色在里面承担了工作量的配比也在发生变化,研发越来越重要,很多工作也前置到研发阶段。
DevOps落地经验十四则
第一则:理念与价值先行
第一、二点
这里面一定不是简单谈文化的,一定谈工程实践落地的因素。
第三点:端到端持续服务交付流程的改革
这里面不是讲的结果而是讲的过程,process不是过去讲的IT服务流程,把过程的变革,一旦工具进来简化我的流程或者是自动化的流程都带来变革。
第四点:对新的应用和服务,加快且缩短实现价值交付的时间。
这里面讲的怎么样有一个想法,快速实现这个想法,把这个想法反馈回来,让我持续的改进,不影响安全性和持续性,这一点我觉得蛮有意思的,比如说在国内讲双态运维的理念,双态运维根源上有双态IT形态的存在,
但是运维的本身没有所谓的双态的差别,你使用的方法论、工具自动化套路都是一致的,因为我管理的IT都是从本质上干几件事情,把命令传过去、文件传过去、数据采集回来,就干这三件事情,本质上这个流程该形成有效的设计,兼容安全和性能的要素。
第二则:顶层设计、全局规划。
这个是之前给一个物流行业做咨询的时候提出来一个模型,DevOps运维的体系分成6个维度+一个文化,这里面包括组织、过程、架构、工具、基础设施、度量+文化。
第一点:组织
DevOps首先必须打破组织之间的隔阂,其实DevOps团队建立面向产品而非项目的协作文化。
第二点:过程
过程不是流程,轻量级流程和自动化的工具完美结合,确保企业的高度敏捷性、自动化为先、而后再流程。
第三点:架构
架构是应用的架构、基础的架构和数据的架构,数据的架构谈起来虚一点,应用的架构和基础的架构是比较明确的,应用的架构更多讲微服务的架构,基础架构是标准化的基础设施,像Saas、paas平台。
第四点:工具
强调的平台层面上,怎么样把IT能力平台化,从DevOps整个过程构建持续交付的平台,到运营构建IT运营管理的平台,都是很重要的,只有它们能够把所有的质量成本和效率几者维度兼顾起来,具备可落地化。
回到顶层设计和平台层面来说,IT运营管理平台到底应该怎么样的设计?这里面讲到的云数据平台和iaas平台。在上面面向不同的IT管理过程,我做一些域设计的细分,比如说ITIL,分成基础、高级的、运维服务平台、研发的服务平台。
第五点:基础设施
对应的IaaS、PaaS部分,怎么样做持续反馈?监控,端到端的监控,从底层的基础设施,到上层的应用服务组建,从基础设施到接口、用户测量的监控这个端到端的能力怎么构建?这个构建成数据采集的基础。
第六点:度量
今天看监控是面向数据化的思维做监控,今天数据的特征发生了变化,不仅仅是结构化还有非结构化的数据。比如说日志,怎么样把日志当成流式数据的处理?
有了这样的数据采集基础,这里面有分析的平台,结合运维的场景,容量、可用性、业务连续性等等进行分析,结合IT的规模形态发生变化,所要看到的指标也会不一样,比如说基于云端要看成本和费用分析都不一样的,需求也不一样的。
IT服务中心是把整个IT服务能力怎么样的目录化,同时结合自动化的工具两者衔接起来。这个讲的变更中心,有一个梳理的方法,现在的传统企业,比如说国信证券,结合CMDB管理的对象,把这个管理的对象整理出来,通过IT服务中心给变更能力目录化,同时表达标准化,最后对接工具自动化。
再往上可以提供各种的服务编排的能力,这种服务编排是跨越了各种工具的,再往上是构建运维的统一模库。这是顶层设计和全局规划。
第三则:Start Small,从小做起。
DevOps这么大的体系,大平台上又有这么多,是不是全都要落地?一定要Start Small,这个准则很好梳理,基于每个角色+某个场景从小做起,一定要把IT部门的角色梳理出来,比如说到运维这边,有业务运维、系统管理员,网络运营。
第二可以基于每个系统和每个功能实施导入,比如说今天就做监控库,我看传统的企业很多做CMDB导入,切忌贪大求全,给你画的图景是很美好的,很多人说DevOps很好,怎么样落地呢?一定要Start Small。
第四则:构建元数据基础平台CMDB
下一个阶段要把它名字改为IT资源管理平台,因为我觉得现在需要把CMDB的管理资源和职责范围缩小,其实在不同的阶段,我们管理也不能贪大求全,把所有的配置全部管理起来,最后发现自己转不动了。上面的场景又起不来,现在很难把场景构建起来,场景起不来的时候,结果把CMDB做死了,我们一直讲这个数据的鲜活性,结果做不起来。
今天我把范围缩小了,只管基础设施的资源和应用的资源,基础设施是属于目前应用的,这个资产状况管理起来我从应用的角度看,到底用了哪些资源?
把这两层的维度强关联起来,然后在应用上层构建应用的各种的管理场景,比如说应用的发布、应用的部署、应用的监控等等。应用的数据分析,由它来进行进一步的驱动CMDB的流转,因为在应用的维度上,才符合以前讲的高频的特征。
今天到任何一个组织,其变更的场景来说,应用是最频繁的,比顶层基础设施更频繁。如果符合高频的特征可以理解场景化的能力最强的,场景化的能力强那驱动力就是最强的,今天把CMDB转化成IT资源管理,以应用的视角看资源。这个平台里它的核心作用是毋庸置疑的,应用是CMDB平台的元数据。
这里面怎么样的上层联动?CMDB这么多的数据,其实就是一类的实例的数据。比如说这里面到底有多少服务器、服务器有多少的虚拟机?这是实例的数据,然后就是拓扑的数据。我的服务摆在机柜上,介入的上面数据是什么。同样是根据顶层的资源拆出来的,一个基础资源一个是应用的资源,分成实例管理和拓扑管理。
今天很多人讲自动化,其实资源有生命周期的状态,一定不能通过自动化来替代的。比如说这个IP地址从资源池里面分配出来给业务池使用,一定要通过一个流程申请出来,无论是自动化的还是以前离线流程的,这是一个生命周期的状态,IT地址退还不能保留业务使用,这个一定要有流程控制的,这里面自动化不能代替人工的流程,流程是聚焦在事前的管理。
再往上是场景应用,要找各种的场景应用,构建出来这一层做的形象的比喻就相当于今天的地图一样的,比如说百度地图,这个地图可以在不同的场景用,大众点评可以用,滴滴也可以用,今天的CMDB也起到这样的作用。这么多场景建设的时候,事件平台是一个很好的入口。
因为今天看到传统的行业太多的监控系统,这个监控系统都要进行收敛,怎么收敛?把所有的监控实践发到统一事件系统,由统一事件系统根据底层的IT对象关系自己来进行收敛,现在老的监控系统基于CMDB收敛是很难的,基本上找不到监控厂商来修改,提一个需求要带来大量的成本。
为什么一直在讲CMDB核心的管理模型是应用的管理模型,IT形态发生变化了,这个模型不用改变的,不用调整的,比如说是公有云。CMDB模型的扩展力是把所有的资源管理起来,这个资源分成本地资源和第三方的资源,本地资源是应用部署在同一主机上的资源,比如说程序包、操作系统的版本,使用的内存,或者是这里面的配置的版本等等,甚至在本机占用了端口甚至是接口服务都是我们的资源。第三方资源如阿里云,这些资源都可以通过应用管理维度集中起来。
第五则:痛苦的事情优先解决
基于角色和产品如何梳理管理能力?运维的复杂度为什么复杂?在这儿,因为运维角色太多了,管理的对象太多了,产品太多了,最终出来的能力管理流程也可以太多。开发测试没有如此复杂,开发就开发,测试就测试。这里面一定要通过角色+场景,最后导出我应该构建什么样的能力管理的平台出来,一定要有这样的思路。
今天讲的运维自动化,最后我变成配置管理或者是工具的自动化或者是调度的自动化,这个远远不够,其实运维自动化弥漫在每一个角色、每一个场景里,今天说的基于容量的自动扩容不算自动化吗?CMDB的自动发现不算自动化?基于监控事件故障自愈不算自动化吗?都算。基于这个图把自动化的场景收敛一样,作业和调度的能力是底层平台化的能力,在各个子系统使用。
第六则:工具也是一种文化
这里面讲的作业管理和调度的管理应该是平台级的能力,不需要进行场景化的理解。在自动化的构成要素里有一个原子化的事务,同时有调度编排原子化的事务,有两个要素有够了。再往上是面向角色的场景化收敛和归类,工具可以把我们的能力拼装起来,在各个场景下使用。工具是真正推动变革的有效手段,好的经验一定是通过自动化的手段沉淀管理过程。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Game Engine Architecture, Second Edition
Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95
A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!