一、前言

当前,我国处于以信息化、数字化、网络化、智能化为特征的科技变革浪潮中,企业数字化转型大势所趋,那么作为支撑企业 IT 运转的运营体系也在向多元方向发展,比如 DevOps(研发运营一体化)、AIOps(智能运维)、DataOps(数据研发运营一体化)、MLOps(机器学习研发运营一体化)、BizDevOps(业务研发运营一体化)、FinOps(云财务运营) 等内容,逐步形成围绕研运一体化、研运效能度量、安全体系建设、智能化、IT 资源财务运营等多个方面的 XOps 体系。本文重点侧重 DevOps 的知识内容阐述。

二、背景

随着大数据、人工智能、云计算、数字孪生、5G、物联网和区块链等新一代数字技术应用的发展,企业业务试图构建持续化、端到端的运营体系,从而推动新技术、新业务、新业态的发展。然而,企业 IT 管理却面临三个难点现状:

因此,当前企业 IT 管理旨在希望探索出新技术、新方法、新模式,从而提升需求响应速度以及技术深入应用与迭代能力,最终推动业务价值的实现。

三、发展历程(DevOps->XOps)

整体而言,对于企业 IT 运营管理对象中可以划分 7 层:战略与规划、业务管理、财务与成本、数据生命周期、机器学习工程、软件生命周期和基础设施运行。在战略与规划中,自 2009 年 DevOps 被首次提出,逐步在不同领域的面向对象中诞生出不同的创新应用体系。从笔者绘制的图表中我们可以看出 DevOps 在企业应用成熟度最高、其次分别是 AIOps 和 MLOps、DataOps,而在近几年企业更多关注成本、业务创新,BizDevOps 和 FinOps 也进入企业重点关注和落地范围内。

虽然 XOps 各领域面向的对象不同,但都是以文化、组织、流程三个维度串联多个流程领域,在提升效率的同时提高质量,并强调持续的优化改进,对于人员意识的文化培养、组织的协同能力和流程闭环的管理与持续反馈。

四、什么是 DevOps

维基百科:对其定义为 “DevOps(Development 和 Operations 的组合词) 是一组结合了软件开发 (Dev) 和 IT 运营 (Ops)的实践,其目的在于缩短软件开发生命周期并持续交付高质量的软件。

谷歌云:” 谷歌云认为 “DevOps 旨在提高软件交付速度,提升服务可靠性,并在软件利益相关者之间构建共享所有权的一种组织和文化运动。

AWS:” AWS 将 DevOps 定义为 “集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助组织更快地发展和改进产品。

Gartner: Gartner 认为其 “是一种使用敏捷方法、协作和自动化交付解决方案的业务驱动方法。”

从业界多方对 DevOps 的定义来看,DevOps 不只是一门技术或套工具平台体系。DevOps 是 Development 和 Operations 的组合词,是组过程、方法与系统的统称,通过研发、测试、运维之间的协作打破各部门之间的信息壁垒,改善团队之间的合作关系,通过自动化.敏捷化和一体化的软件交付和架构变更流程,实现更加便捷、频繁和可靠的发布软件。

在笔者观点理解而言,DevOps 是一种交付方式,其中涉及技术、工具、文化、组织多个环节的实践方法。(如下图是笔者简单的理解)

五、DevOps 的价值和发展趋势

随着近年来 DevOps 在企业应用成熟度趋于成熟,不乏出现一些文章中提到 DevOps 已死的标题来吸引读者的注意。正如为了推广微服务而出现铺天盖地的单体架构的贬低言论,推广敏捷而踩低瀑布开发,笔者认为在不同业务领域、业务复杂度情况、公司组织结构、企业 IT 基础设施等多方面维度都会作为判断决策依据,上面我们提到在战略与规划中,DevOps 是一种交付方式,只有交付方式适合不合适,没有直接死掉这么一说。现在我们铺垫了那么多,接下来看下 DevOps 的价值和发展趋势。

根据 IDC 报告显示,2021 年全球 DevOps 软件工具市场总额为 159 亿美元,据预测,2023 年全球 DevOps 软件工具市场规模将超过 200 亿美元,如下图:

企业数字化转型中,笔者曾经提到全新的业务模式、高效的业务流程、前沿的技术设施、精准的数据预测、健康的组织文化等 5 个内容方向,如果数字化转型基于业务模式的是否改变,可以将其过程划分为两个类型,一种是自身数字化重构,另外一种是创新数字化业务。

对于自身数字化重构来说:我们旨在提升企业效率,DevOps 能力体系强调协作、自动化、和持续优化。

(1)其中协作来说,包含信息共享(业务类、执行类、反馈类等)和协作调度(全自动、简化和基于事件);

(2)自动化包括软件过程(开发、测试、部署等过程)和过程支撑能力(编译构建、测试环境、部署环境等)。

(3)持续优化包括数据获取、数据分析、数据呈现等。

对于创新数字化业务来说:我们旨在提升用户体验、业务创新,DevOps 能力体系强调更好的价值交付,建设工具赋能业务创新和敏捷。

(1)价值交付:更深入的业务认知和需求痛点挖掘,以及基于用户进行量化体验。

(2)工具赋能:围绕工具平台、配置、基础设施等内容,由组织级统一团队以服务化方式赋能项目团队,为业务敏捷性和创新奠定基础。

5.1、DevOps 的价值交付、协作与敏捷管理

在 DevOps 中,我们提倡价值交付,更深入的业务认知和需求痛点挖掘,完成用户体验提升和业务交付。而在敏捷开发中,我们知道敏捷开发管理是一种为应对快速变化的时长和技术环境的新型软件开发方法,它更强调价值交付过程中所涉及的各类角色 (如业务产品、开发和测试等) 之间的紧密协作、能够很好地适应变化的团队组织、协作和工作方式,主张演进式的规划和开发方式,以及持续和尽早的交付,并不断反馈调整与持续改进,并且鼓励快速与灵活的面对变更,更注重软件开发过程中人的作用。而加快软件交付速度是企业应用敏捷开发最主要的原因。企业的本质是利用组织和技术追求效率与成本控制从而产生商业利润。敏捷开发管理实践方法众多,企业需根据自身特点选择适合的敏捷实践。

5.2、DevOps 的自动化与工具化赋能

首先,持续交付是指持续的将各类变更 (包括新功能、缺陷修复、配置变化、实验等) 安全、快速、高质量地落实到生产环境或用户手中的能力,是一组能够帮助软件开发团队极大提高其软件交付速度和质量的模式和最佳实践的组成。

那么,持续交付与部署流水线为软件的发布提供一个可重复且可靠的自动化过程,能够实现价值的持续稳定传递。流水线打通软件交付过程的各个环节,建立全流程、端到端、可视化的自动化部署流水线,每次变更都会触发完整的自动化部署流水线,为团队提供状态可视化和及时反馈。

所以我们可以简单定义,自动化部署流水线是实现持续交付的核心。

5.3、DevOps 的技术运营能力场景

技术运营包含监控管理、配置管理、容量与成本管理、高可用管理、事件与变更管理、业务连续性管理和用户体验管理七个能力场景。

5.4、DevOps 的应用设计与 DevSecOps

DevOps 的应用设计主要关注应用架构的可扩展性、可伸缩性、可观测性、安全性和可用性。在应用设计中,随着技术发展与业务变化,IT 架构已经经历了单体架构、垂直架构、SOA 架构和微服务框架几大阶段,而当前微服务与云原生架构正在企业中广泛试点。

在这里笔者想强调的是,应用设计中,往往安全是整个 IT 团队所有成员的责任,需要贯穿整个业务生命周期的每个环节。

DevSecOps 通过建立完善的软件安全开发生命周期管理体系,将安全内建到项目的生命周期每个阶段,并流程化跟踪项目安全建设中的各项安全活动。同时,在研发过程中融入安全基础能力,要求和检出一一对应,平台可集成安全工具,提升自动化能力.

六、DevOps 的生命周期与工具全景图

DevOps 通过其规划、部署、交付和运营阶段来影响应用程序生命周期。每个阶段都依赖其他阶段,且各阶段并非特定于角色。DevOps 文化在某种程度上涉及每个阶段中的所有角色。

图片来自https://learn.microsoft.com/zh-cn/devops/what-is-devops

贯穿云原生 DevOps 整个生命周期的工具链全景图如下:

图片来自:https://mp.weixin.qq.com/s/yPeRriDT-miiLoJdY-aY8Q

七、DevOps 的成熟度评估体系

DevOps 成熟度是评估效维工具选择的首要参考维度。不同企业可以基于自身实际情况可以从多维度进行评估:

八、感悟

笔者认为越是成熟度高的东西,体系知识越是庞大,本文限于篇幅的原因对于部分内容细节并未全部展开描述,更多的是从定义、描述、价值、趋势、知识体系和工具体系大的方向介绍,对于如何实施细节需要读者去针对细节内容去学习。其中上述内容有很多是笔者的观点,如有不同见解,还希望留言或者私下沟通。

九、参考资料

作者:京东零售 刘晓成

来源:京东云开发者社区 转载请注明来源


↙↙↙阅读原文可查看相关链接,并与作者交流