DevOps如今是最热门的IT开发运营模式,根据DevOps研究组织Dora的调查报告,DevOps的实践在各个行业已全面展开,但在具体落地中,各企业仍困难重重,或是偏离了DevOps的方向,历经多年都不得其门而入,或是小规模的试行获得成功,但大规模的推行进展迟缓、效果不佳,诸如此类。
企业DevOps实践,成功的方法很多,但失败的方式更多,其根本原因是DevOps实践自身是一个系统化的工程,对于企业来说,是摸着石头过河,已有的成功经验复制难度高。企业或期望DevOps实践短期内带来足够可观的效益回报,或期望DevOps的实践转型一蹴而就,忽略了企业的现状基础和DevOps实践的客观过程,缺少符合企业现状与特点的DevOps实践内容与演进路线的设计。
那么,企业究竟如何开展DevOps实践,才能更快、更好、更有效地推进落地,充分享受到DevOps实践带来的业务价值提升?通过多个DevOps实践规划参与,对比不同企业的DevOps实践落地提出影响落地的关键因素,并基于此提出DevOps实践落地路径建议。
影响因素
DevOps落地实践关乎业务,源于对IT组织研发、运维、运营服务能力提升的诉求。因此,IT组织的研运能力提升是DevOps实践的内因,而业务发展变化则是DevOps实践推进的重要外因。业务、IT组织与DevOps的关系如下图所示。
DevOps对于研发效能的提升,可通过逐层的能力传递最终服务于业务竞争。
01 业务因素
在DevOps实践中,业务因素相对来说仅为外因,但在现实过程中,其往往成为推动企业开展DevOps实践的第一核心要素。因为企业在当前数字化转型的热潮中,业务的开展越来越多依赖业务系统,而业务系统的快速迭代与高质量交付又依赖于IT组织的研运能力。而DevOps实践,是当前已证明最有效促进持续交付能力提升的方向与方式。
业务越具有如下的特征,其企业对DevOps实践的需求越强烈,也越紧迫,更应该及早的开展。
业务服务模式:业务服务模式以线上模式为主,或线上模式所占比重逐年上升。
用户群体:用户群里以C端用户为主,或以互联网方式的B端用户为主。
业务变化频率:受市场或政策影响,业务变化频繁,需及时调整应对。
业务连续性、可靠性:业务的连续性、可靠性要求高,任何业务中断都会带来较大的损失。
行业竞争性:行业竞争充分,持续的业务创新有利于提升企业竞争力。
02 IT因素
IT研发、运维服务能力现状是推动DevOps实践的内因。狭义的DevOps用于承载企业IT部门研发侧支持,而广义的DevOps则涵盖企业IT的研发、运维乃至技术运营等业务,当前DevOps的实践主要都集中在研发侧。
企业在研发侧的支撑能力、标准、质量,也并非白纸一张,现有企业大多仍是按需求、开发、测试、运维的划分阶段管理,长期以来研运支撑都是烟囱式建设,导致对于研发、运维的支撑一直难以形成合力,即使建设新的能力,也只是在树立新的烟囱,业务流、数据流难打通,难持续演进。
DevOps相对于IT来说,一方面是治理,另一方面是创新,IT的如下因素,对于DevOps的实践落地推动具有较大的影响。
- IT现有与业务要求的研发效能差距,差距越大,越急需。
- IT管控诉求,精细化管控诉求越高,越必要。
- IT团队规模,规模越大,越有价值。
- IT工具链缺少或烟囱式建设越明显,越必要。
演进路线
对于DevOps实践上,Dora曾经提出过五个阶段的指导,如下图所示:
其分别是:
- Stage 1: 规范化技术栈
- Stage 2: 推进标准化&降低不一致性因素
- Stage 3: 扩展DevOps实践
- Stage 4: 自动化基础框架交付
- Stage 5: 提供自服务能力
该指导中特别强调构建标准的技术栈,认为它是Stage 1的关键因素,同时是Stage 2中的实践内容,也是Stage 3的关键因素,是一项需要持续实施的实践要素。
标准化的技术栈有利于降低DevOps实践的难度,但从企业的长期过程来看,实现的难度极大,不太现实;因此,我们建议DevOps的实践要基于异构体系,朝着一站式、企业级的方向,其更符合企业采用技术的演进现状。
DevOps实践演进建议
DevOps实践的演进要从目标定位、建设方式、实践过程等方面进行综合设计与推进,各方面的建议分别如下。
01 目标定位
DevOps实践是一个体系化、持续化的工程,不是一次性的项目建设,不可能一蹴而就。企业DevOps实践的阶段性目标规划既重要又必须,虽然不同企业的最终目标类似,但由于业务、IT的现状不同, DevOps实践的阶段性目标必然会有所差异。
企业DevOps实践的阶段性目标规划,需要依赖于企业的IT基础实力,例如组织、制度、协作模式、人员能力、研发模式等,结合业务保障与IT基础条件,合理的DevOps实践阶段目标。
一般来说,可将企业DevOps的整个实践过程划分为自动化、数字化、一体化三个大的阶段。
在自动化阶段,构建DevOps的自动化过程工具链,着重实现DevOps意识提升、研发转型,以及初步的研发效率与质量提升,助力业务发展。
在数据化阶段,构建面向业务和研发全过程的度量体系,形成持续改进机制,实现研发侧的DevOps的持续优化落地,提升业务竞争力。
在一体化阶段,构建覆盖研发侧、运维侧,乃至运营侧的延展与闭环,实现应用系统的生命周期DevOps实践覆盖,推动业务持续创新,引领业务发展。
02 建设方式
DevOps的落地推进,部分企业采用的是来自研发团队的自下而上的方式,个别团队自主引入,效果出来后,再推广到其它团队;部分企业采用统一组织,自上而下推行的方式,企业统一规划,统一建设,应用与团队逐步迁移。
相对来说,自上而下的方式更有利于促进企业级的DevOps实践落地。因为对于自下而上的方式,成功经验带有较为浓厚的团队的特点,工具链以开源组件攒建,工具的体系化程度不够,团队级适用是其主要特点,DevOps的实践也常止步于“自动化”阶段。
基于此,经验复制、工具复用的方式难以落地,况且IT组织的核心职能是为企业业务提供服务与保障,IT服务业务如纳入IT组织自保障,必然分散IT组织的服务资源,短期内可能有一定的效果,长期看瓶颈明显,投入产出比不佳。
相对应地,自上而下的方式,从规划之初就会考虑到不同IT组织文化、团队技术栈、业务的特点差异,不同职能组织、不同角色的诉求支撑,产出可服务于企业不同团队的平台级的DevOps实践工具、方法与制度规范,避免实践中方向偏离。
03 实践过程
DevOps实践涉及工具平台、流程体系、规范制度、人员能力等方面建设。实践可采用先提升认知后落地实践、先试点验证后全面推开的过程进行。
DevOps的理解与认知
DevOps从2009年提出以来,其内涵一直在不断的丰富。因此,对于DevOps的理念与认知,在一定程度上决定了DevOps的执行程度。DevOps的定义演变过程如下:
DevOps的定义不断发展,内涵也在不断的演进。因此,企业的DevOps实践是一个长期过程,是一个会伴随企业业务发展、IT能力提升的长期过程,涉及企业的业务组织、IT组织的协作提升与持续优化。
DevOps实践平台
DevOps平台是企业DevOps实践的落地承载,一站式、企业级、可持续演进应该成为平台的基本能力诉求。
DevOps的实践不是一天完成,同样,支撑DevOps实践的工具平台,也需要持续建设与丰富。厚云薄端的研运中台模式,应作为平台建设的唯一方向,其可有效沉淀通用工具能力,又能通过低成本的方式提升企业DevOps场景变化的支撑诉求。
DevOps实践的有序推进
DevOps实践的有序推进包括两个方面,一个方面是指面的推广,也就是将DevOps实践推向企业内部的其他项目、其他团队,逐步实现团队敏捷、项目敏捷,乃至企业敏捷;另一个方面是不断加深DevOps的应用,也就是基于DevOps的研发效能持续优化与提升,建立学习型、使命型团队,推进DevOps文化的落地。
总结
DevOps自提出以来,其内涵一直在不断的发展与丰富。相应地,DevOps的实践,也会是一个螺旋上升的过程,需要企业持续推进,进而为企业业务发展注入持续不断的活力。
作者:黄全中
其他优质文章
来源:oschina
链接:https://my.oschina.net/u/4026796/blog/3167831