「软件开发」如何在DevOps实践中,持续优化体系构建?

2020-05-09  更新      浏览:255

持续优化,是DevOps体系落地的重要理念之一。通过持续优化,可以推进企业研发队伍的自我完善与效能的持续提升,那么,如何才能构建持续优化的体系呢?本文将从持续优化体系构建的前提条件,持续优化体系的设计要点等方面进行分析,希望能为企业的DevOps持续优化体系落地带来一些借鉴和启发。


DevOps持续优化的价值

企业DevOps体系落地建设,一般会经历自动化、数据化和一体化三个阶段(对于第三个阶段,从技术性本身来看,纵向“智能化”会更合适,但从落地的效果和价值上,横向一体化更为紧迫和目标达成)。当前,很多企业都已经进自动化阶段,甚至有一部分企业已逐步迈入数据化阶段。企业DevOps落地路径简述如下图所示。


6507cb7ad3d1493bb923e4d9eac65fd4.png


其中,各阶段的重心和特点是:


1.1 自动化阶段

核心是实现全过程的工具平台建设,但又不能仅限于工具平台建设,这个时期建设结果,将决定企业DevOps实践未来是否可以走向数据化、一体化。这个时期的建设内容和效果要求我们可以概括为:


1.支撑从需求提出到应用系统上线全交付过程的工具平台,从阶段上讲会包括业务、研发、测试、部署(运维)各阶段支持的工具链,也就是业务流的打通。


2.要建立基于DevOps理念及工具平台的全新持续交付模式,驱动研发效率、质量、管控的提升,也就是DevOps体系的落地应用。


3.要实现所有工具链的数据流打通,包括面向工具平台使用的组织、用户、权限、认证数据的统一,以及面向业务过程的数据流。那么,如何检验数据流已经打通了呢?可以看一下,一个业务需求提出后,是否可以在清晰地看到在需求、研发、测试、部署等阶段其生命周期信息。


1.2 数据化阶段

核心是实现持续优化的闭环体系建设,也就是我们今天探讨的主要内容。面向效能提升或过程管控,通过对持续交付全过程数据的采集、分析、监控, 找到交付工作过程中的弱项,并依托构建的持续优化闭环体系,对弱项进行改善提升,从而不断推高木桶效应中的短板,实现效能、管控乃至企业整体研发交付能力的持续提升。


1.3 一体化阶段

主要内容包括两个方面,一是向后的运维运营一体化,以及向前的业务一体化。也就是说,从业务策略提出,到业务策略的检验。


为了比较好的理解一体化,我们这里举一个例子:某网上商城为了提升商城的流量,决定借五一期间开展一项引流活动。研发运维侧自然需要做一些配合,那么从业务需求提出后,其服务交付、活动中的快速扩容,都可以通过一体化的DevOps平台支撑,实现持续交付、持续运维/运营。同时,也可以与业务侧的活动效果评估(比如以拉新促活的流量)一起,一体化核算业务活动中流量的业务特性、时间特性、主体特性、ROI等。


那么,从自动化演进到数据化,究竟能带来多大的价值?我们先来看一个数据化的落地思维和效果图。


f5911503bb93405d85c219905380a96d.png


从上图我们可以看出,通过DevOps自动化阶段的建设,企业研发效能与管控水平可以上升到一个全新的台阶,以100分代表满分持续交付能力,那么通过该阶段,我们可以达到70分左右,如果不建立后续持续优化的体系,那么就永远是70分,或逐步降低,这也是多年来,信息化重建设、轻运营的典型问题。


因此,只有企业建立了持续优化的体系和机制,才能保障和提升我们的研发效能与管控水平,推动整体提升,无限靠近100分。这也就是企业为什么要建立持续优化体系的原因。


从人员或团队来看,我们通过持续优化,每天进步一点点,通过积累,可以不断突破现有能力的天花板,实现个人或团队实力的整体飞跃。


15f30a5ac0f6468abea6153661b5bd7d.png


DevOps持续优化构建前提

DevOps实践的持续优化体系建立,可为个人、团队、企业带来交付能力的持续提升,拓展IT组织的吞吐量,为业务提供更加可靠、优质的服务保障。那我们在什么条件下、什么时机下就可以开展持续优化体系建设呢?通过实践,我们总结需要做到以下几个方面。


2.1 业务流贯通

业务流贯通,是推进DevOps实践持续优化体系建立的先决条件。


其包括2个方面,一是工具平台建设到位,实现从需求进入到发布上线全过程的支持,即研发过程支撑一体化;二是基于DevOps平台的全新交付体系的建立与应用的推广。


(1)工具平台建设

工具平台建设,是每一个过程点的功能支撑都要全部建设完成吗?从我们的经验来看,其实不尽然。


首先,研发场景会随着业务发展持续变化,传统以满足场景为目标的工具系统的建设思路,不能很好的响应研发场景的持续变化,换句话讲,场景化的支持只能满足一时。


此外,基于研发场景高敏性的特点,在工具链的建设上,就需要转换为以能力为核心的建设方式,同时解决能力的低成本扩展,场景应用的低成本实现的问题,也就是说,我们需要构建一套具有PaaS化思想的DevOps平台,可实现对于场景支撑服务SaaS的快速组装,也就是可以快速生长出“系统”的“平台”,而不仅是一套场景化的DevOps系统,一旦场景需求变化了,就需要花费大量的时间和人工成本升级改造,不能适配于研发业务本身高敏的特征。


工具平台的建设要求,可以用下面这个图示说明:


c22b309da49e43d8a2f2619b0c53a62c.png


(2)全新交付体系建立

现在的企业中,瀑布开发、敏捷开发等交付模式混杂,甚至更多的企业仍旧是处于瀑布开发的交付模式,要实现从现有交付模式向基于DevOps的交付模式演进,除平台建设外,还需要开展以下几项工作。


流程规范的梳理

流程梳理:DevOps平台建成后,研发过程的大部分活动,会由DevOps平台自动化的执行,因此,需要梳理和订立人员之间,人员基于DevOps工具平台的活动协同与衔接。


规范梳理:规范梳理既是效率提升的需要,也是质量提升的需要,更是管理控制的需要,其是实现基于平台的技术管控,实现国家级、行业级、企业级的技术要求、管理要求的技术化指标及门禁项的建立,自动化执行与结果统计汇报。


团队人员的赋能

基于DevOps平台的交付理念,以及工具平台使用的掌握,包括平台能力的自助扩展的掌握,消除团队个性化能力需求无法满足的短板,由团队自控。


现有过程的转换

现有过程的转换,就是使用DevOps平台支撑研发工作过程的转换。该工作的推进一般会由试点和全面推广两个阶段组成。

试点阶段:选取典型的项目和团队,进行转换过程的设计与推进,总结转换相关经验用于辅助后续团队推广。

推广阶段:企业全部或大部分项目和团队,均实现基于DevOps平台研发过程支持,企业整体建立全新的研发交付体系。


2.2 数据流贯通

数据流贯通,是推进DevOps实践持续优化体系建设的关键条件。其也包括2个方面,一是上层的业务数据,二是过程的辅助数据


(1)业务数据

业务数据即我们研发过程中的需求及其后的工程相关数据,包括需求、源代码、持续集成、持续部署等相关过程数据,需要实现全生命周期的贯通。


20ca231e0cab4846b9d1d513d084bee4.png


(2)辅助数据

主要包括组织数据、用户数据、权限数据、认证数据、日志数据等,其是用于标识不同主体的活动情况,其与业务数据的关联性,也需同步贯通。


早期的工具链建设上,如果我们没有关注到以上两类数据的贯通,在平台层面解决以上两类数据的贯通,那么,数据化阶段,将会成为企业DevOps时间永远也无法逾越的鸿沟,也就是说,从DevOps的理念来看,企业的落地是失败的。


2.3 企业持续优化的“欲望”

企业打通了业务流,贯通了数据流,如果缺少持续创新、持续提升的“欲望”,那么,持续优化的建设也是水中月、镜中花,可望而不可得。


一般来说,这种“欲望”来自于两个方面,一是业务需要驱动,二是IT服务需要驱动。


业务的驱动是由当前数字化时代,业务的快速变化,要求IT的研发及运维服务必须具备更快、更好、更稳定的交付能力,支撑业务响应市场变化而决定的。


IT驱动,则更多的是从IT服务与管控能力考虑出发,简单来说,就是是否能够支持企业业务低成本的创新与探索。


DevOps持续优化体系构建

既然DevOps的持续优化体系可为企业带来持续的能力提升,为业务提供更加及时、可靠的服务支持,有助于企业在数字化时代中持续抢得身位优势与竞争优势。那么,持续优化体系的构建,需要涉及哪些信息呢?企业应该如何实施呢?先看一下业务的相关方。


3.1 优化关系模型

持续优化工作涉及企业的管理与执行,其中又会涉及多种角色,因此,对于持续优化,企业可以先梳理不同层面的诉求。

在整个研发过程中,不同角色关注的信息是不相同的,如下图:


07629d7b317646009c35bfda93f50839.png


同时,企业也需要看到,持续优化的核心是针对执行与管理工作,也就是说,我们从外面来看,优化的整体期望是要么通过管理提升去拉升整体的效能,要么通过执行提升,去抬升整体的效能。如下图:


1ad1d718e41c4b7cb6a2026b7607c62d.png


企业的研发本身具备多维度的关联关系,这些关联关系则是企业在DevOps平台中的数据流贯通时需要解决的,如下图:


dc05ac01f42f4b87ab3a8a0886454f4b.png


基于以上的模型关系,企业可以从多个维度进行的执行和管理的优化提升实施。比如:基于企业级、团队级、个人级的需求平均交付周期分析,基于项目级的源代码质量分析,基于个人的工作能力画像等。


具体的分析维度及内容,可以结合企业关注点构建度量体系,通过自定义度量的方式落地实施。


3.2 优化闭环模型

在构建了优化关系模型后,下一步要实现的是优化的闭环模型,优化的闭环模型如下图所示。


a6e30acc6044477eb784f7d4b53e65a5.png


这闭环模式实现的关键,要能自由的设置比对基线,能够进行问题的快速跟踪和优化措施执行结果的比对分析。因此,优化闭环模型需要涉及指标管理、基线管理、告警管理、问题管理、任务管理、快照对比等方面内容,实现整体上的闭环。


总结

DevOps实践持续优化体系的构建,需要以企业DevOps自动化的阶段实施为基础,通过持续优化体系的构建,基于DevOps的效率、质量、管控、优化等理念都得到了落地,DevOps体系建设也才能算基本完成。


在后续的使用中,一些新的理念或诉求,也可能会由于业务或场景的发展变化而持续提出来,因此,DevOps落地的基础,底层的工具平台的扩展能力就显得尤为重要了,基于PaaS思想,实现“能力”与”服务”的分离,可以较好地响应企业能力持续、低成本、及时、个性化丰富的诉求。