【干货】DevOps的演进与落地价值

DevOps是当前IT领域最热门的话题之一,了解、掌握、应用DevOps对于提升软件交付与管控具有重要的意义。然而时至今日DevOps尚无统一的定义。


本文主要从业务及IT的发展对DevOps的诞生背景、定义演进以及落地价值等方面进行了分析和阐述,以期对DevOps的内涵进行探讨。

【干货】DevOps的演进与落地价值

DevOps在2009年提出以来,已经走过了十个年头。近几年来,DevOps的热度呈快速上涨趋势,从DORA的年度报告也可以看出来,到2018年末全球主要行业的DevOps的应用程度已达到30%,上升势头迅猛。


然而,时至今日,对于DevOps仍没有一个准确的定义,这对于我们理解DevOps,或者说在落地DevOps的过程中会带来不小的困扰,各方都有自己的理解。那么,DevOps的内涵究竟是什么呢?我们期望从DevOps的发展背景、定义演进以及落地价值等方面进行一次探讨。



DevOps发展背景


业务发展对软件的依赖

民用软件系统的应用崛起于上个世纪八十年代, 2000年后蓬勃发展,其中,作为重要组成部分的软件系统,逐渐深入到社会的每一个角落,从整体的发展过来来看,业务与软件系统的关系可分为三个阶段。


轻度依赖

在这个阶段主要出现在早期,软件系统主要解决业务中重复多或计算量大的问题,支撑范围主要局限在业务中的某一过程或环节。或者说,在这个阶段,业务离开了软件系统也能开展,软件对业务来说不是必选项,软件功能的更新频率可以是数天乃至数月、年。


重度依赖

随着业务的发展,业务的关联性与复杂度提高后,业务完全依赖人工完成已经成为不可能。到这个时期,软件系统成为业务的核心支撑,业务的开展已经离不开软件系统,但尚可接受短暂的非服务期存在,软件功能的更新频率被要求在数天、月。


完全依赖

随着软件服务深入社会各个角落,社会生活的衣、食、住、行、用都依赖于软件系统,从某一领域或应用来说,软件系统相对于业务已经进入了主导阶段,软件系统必须提供365*7*24的服务,任何中断服务可能都会带来极大的经济或社会损失,软件功能的更新频率必须控制在数天、小时、分钟。



IT管理与研发模式演进

IT管理与研发模式的演进,与IT对业务的响应效率密不可分,大致可分为三个阶段;


“稳态”模式

传统稳态模式的管理上,业务、研发、测试、运维依次分阶段管理,各阶段的人员只需关注本阶段内部的相关内容即可,研发以系统软件包交付为目标;整体结构如下图所示:

【干货】DevOps的演进与落地价值


在研发模式上,以瀑布模型为主要特点,其优势是各阶段划分比较清晰、整体成本较低,但迭代速度较慢,其在业务对软件轻度依赖阶段适用性较好。


“稳态+敏捷”模式

随着业务对软件依赖程度的提高,传统模式下软件的迭代效率成为了一个阻碍业务发展的主要问题点,于是针对软件研发过程最耗时的开发过程出现了一系列的优化措施,敏捷研发是其代表。这个时期的IT管理模式变成了“稳态+敏捷”的模式,研发仍旧以系统软件包交付为目标,如下图所示:

【干货】DevOps的演进与落地价值


当然,在这个时期,针对各阶段的效率提升也进行得如火如荼,出现了了一大批针对不同阶段提速的工具软件,如下图所示:

【干货】DevOps的演进与落地价值


“敏态”模式

当业务对软件系统完全依赖时,IT管理与研发模式就需要进入“敏态”模式了。而这个模式也就是我们今天时常提起的DevOps。在这个模式下,研发交付目标不再是系统软件包,而是面向业务的服务能力,如下图所示:

【干货】DevOps的演进与落地价值

【干货】DevOps的演进与落地价值