Evolution and landed value of [dry] DevOps

DevOps is currently one of the hottest topics in the field of IT, understand and master the application of DevOps is of great significance to improve the software delivery and control. However, to date there is no uniform definition of DevOps.


This article from the development of business and IT aspects of the birth of DevOps background, evolution and definition of landing value are analyzed and explained in order to explore the connotation of DevOps.

42593b267f2a37e3b9dabac2da021ae9

DevOps since 2009 put forward, it has gone through 10 years. In recent years, DevOps heat was rapidly rising trend can also be seen from the annual report of DORA, by the end of 2018 the extent of the application of the world's leading DevOps industry has reached 30%, up momentum.


However, to date, for DevOps still do not have a precise definition, which for our understanding of DevOps, or in the process of landing DevOps will bring no small trouble, the parties have their own understanding. So, DevOps connotation of what is it? We look forward to from time to explore the development of DevOps background, such as the definition of evolution and landing value.



DevOps development background


Business development depends on the software

The rise of civil application software systems in the 1980's, after booming in 2000, which, as an important part of the software system, gradually penetrated into every corner of society, from an overall point of view over the development, service and software relational systems can be divided into three stages.

ab098d8d6864a8d2c4662c97af7959f9

Mild dependence

At this stage mainly in the early days, the software system solves more than repeat business or computational load, largely confined to the range of support in the business or part of a process. Or, at this stage, left the business software system can be carried out, the software business is not mandatory, the frequency of update software functions can be days or even months, years.


Heavy reliance

With the development of business, the relevance and complexity of the business improvement, business entirely dependent on artificial completed has become impossible. To this period, become the core system software support business, business has been inseparable from software, but acceptable short period of service of non-existence, the update frequency software features are required in a few days, months.


Completely dependent

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



IT管理与研发模式演进

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

80c7b59309d7085c36ff5393ac23a727

“稳态”模式

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

ab34a5ed0ae435696e2feac04df1bc52


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


“稳态+敏捷”模式

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

cccbb629edaf218a0a1ee829ec587900


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

374006fc4fae552e69474af102662f58


“敏态”模式

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

806b01d5e98abdb228045ce29cfdd55d


由于业务与软件的关系越来越紧密,研发的交付已经由原来的面向软件包产品,而转向面向业务需要的服务能力,然而,这种服务能力也是涉及多个方面,下面我们从DevOps的定义发展,来看看DevOps的内容丰富过程。



DevOps定义演进

“稳态+敏捷”模型只能实现局部效率提升,而DevOps那么唯一的途径就是从整体上进行优化和提升,使整个研运过程形成一个有机的整体。从2009年提出依赖,DevOps的内涵也在进行着不断的发展与丰富,我们先看一下不同时期的定义。


  • 2009年10月,【Patrick Debois】DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。


  • 2010年5月,DevOps是一个重要的理论,它通过敏捷、精益等在方法、在一个传统的组织中,把独立的部门协同在一起实现跨部门集成,建立更加紧密的多部门协作。DevOps不仅仅关注软件部署这一技术问题,它是考虑部门与部门之间沟通和协作的管理方法。



  • 2014年12月 DevOps是一种软件开发方法,它强调软件开发人员和信息技术人员之间的沟通、协作和集成。



  • 2015年11月 DevOps是一种文化、运动或实践,它强调软件开发人员和其他信息技术人员的协作和沟通,同时强调自动化软件交付和基础设施变更的过程。



  • 2018年AWS DevOps定义:DevOps是一组实践,目的是在确保高质量的情况下,快速地把变更导入到生产环境。



我们把不同时期的定义整理为一个时间轴,并做一些关键字抽取:


adeadee74bde5da3a276b587d3c08041


可以看出针对DevOps的定义,随着时间的推移,DevOps的内涵在不断丰富,已经从最初一组过程、方法与系统的组合简的单定义,发展为一套有理论、有方法、有文化、有实践的体系。


DevOps体系与传统模式是有着本质的不同的,主要体现在以下几个方面:


组织方式不同

DevOps中强调以项目或产品的一体化管理为基本管理模式,从而消除传统模式下分阶段任务管理与执行,通过管理模式的调整,消除传统模式下不同阶段的衔接问题。


关注重点不同

DevOps是以最终向业务的服务能力交付为目标,而不是传统模式下分阶段任务交付为目标。


提升维度不同

DevOps关注软件系统的整个生命周期,是从整体上提升软件交付的质量与效率,而不单只关注某一个阶段的提升,各阶段的提升可以更加的有机协同。


管控深度不同

DevOps强调全程监控,全程度量,通过技术手段透明化软件交付的全程,包括过程与结果,而传统模式下过程数据缺乏,难以进行有效的过程度量与分析。


效益效果不同

DevOps支持针对交付过程的持续优化,通过度量数据分析可以快速定位交付过程的问题与努力方向,支持持续科学的优化提升,传统模式难以做到。



DevOps落地价值

DevOps的定义演进以及与传统模式的对比,可以看出DevOps体系本身系统化、整体性的设计思想,其既包括了软件全生命周期的系统化考虑,也包括了了IT管理的多方诉求,DevOps的落地涉及DevOps平台的建设、流程体系建设、人员赋能、标准规范等多个方面,其可以为带来如下方面的提升。


业务响应能力提升

DevOps的落地,在提升效率的同时可以提升交付的质量,自动化程度的提升可以提升对业务需求迭代的响应能力,研运吞吐量可以得到几何级的提升。


研发交付规范提升

不同项目或产品的研发团队,在同一套平台上开展研发交付活动,通过平台预先制定的流程、规则等约束不同研发团队的交付活动,从而实现研发交付规范与标准的统一,实现企业级的优化提升与改进。


研发交付效率提升

通过针对研发交付过程中的环境准备、编译构建、代码质量检查、系统测试、软件部署等过程的自动化实现,降低人工操作或等待人工操作时间,全面提升研发交付过程的自动化水平,提升研发交付效率。


研发交付质量提升

研发交付质量的从现有的部署结果质量保障,延伸到源代码质量保障、测试覆盖度保障等过程,从而实现从源代码到部署全过程的质量检查与提升,全链路提升研发交付质量


研发交付管控提升

针对研发交付的需求、开发、测试、发布和部署等过程,进行全面的数据化和度量,针对重点关注指标建立质量门禁,从而实现自动化的技术管控,结合已有的行政管控,由单一的结果管控,实现研发交付“过程+结果”管控,提升管控力度。


研发交付持续优化

基于DevOps平台,通过流水线过程数据收集,以及进一步的度量分析,实现研发交付过程的持续优化,既包括DevOps平台的优化,也包括研发交付流程、标准规范等方面的优化。



to sum up

It is a simple evolution of DevOps from a technology to build and practice culture; from irrelevant to rely on; from local business to all. The fall in the value of DevOps implementation research, operational integration and enhance the response to business needs. Has become a trend, we can only willing to join the festivities.


Author: Huang in full


Guess you like

Origin blog.51cto.com/11811406/2427182