一文讲透DevOps理论体系的演进
一、前言
当前,我国处于以信息化、数字化、网络化、智能化为特征的科技变革浪潮中,企业数字化转型大势所趋,那么作为支撑企业IT运转的运营体系也在向多元方向发展,比如DevOps(研发运营一体化)、AIOps(智能运维)、DataOps(数据研发运营一体化)、MLOps(机器学习研发运营一体化)、BizDevOps(业务研发运营一体化)、FinOps(云财务运营)等内容,逐步形成围绕研运一体化、研运效能度量、安全体系建设、智能化、IT资源财务运营等多个方面的XOps体系。本文重点侧重DevOps的知识内容阐述。
二、背景
随着大数据、人工智能、云计算、数字孪生、5G、物联网和区块链等新一代数字技术应用的发展,企业业务试图构建持续化、端到端的运营体系,从而推动新技术、新业务、新业态的发展。然而,企业IT管理却面临三个难点现状:
- 业务需求变化快
- 技术迭代更新快
- 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的技术运营能力场景
技术运营包含监控管理、配置管理、容量与成本管理、高可用管理、事件与变更管理、业务连续性管理和用户体验管理七个能力场景。
- 一是监控管理,多数企业监控采集的平台化能力建设较为成熟,具有较强的灵活性和可扩展性,支持自定义数据采集、处理服务。
- 二是配置管理关注与技术运营相关的面向应用场景的配置对象及数据,配置对象可以实现误告警的自动屏蔽,根据配置对象的状态来设置规则,配置数据有多套配置系统管理方案,从线下转为线上方式,支持对配置进行统一纳管。
- 三是容量与成本管理,通过量化、精细化的方式对容量成本预算、成本核算等进行管理实施。
- 四是事件与变更管理,事件管理是对影响生产的事故和问题建立预防、高效处理及度量改进的制度和手段,变更管理是对 IT 基础设施、系统应用、业务产品配置等场景实施变更所进行的审批和控制流程。
- 五是高可用管理,包含应用高可用管理和数据高可用管理,采用软硬件结合的方式,以及多机房集群部署,最大限度保障系统的可用性。
- 六是业务连续性管理,通过风险管理、危机管理、应急管理等内容保障业务连续性要求。
- 七是用户体验管理,通过技术运营的方式关注用户体验,提升用户满意度,通常会通过埋点技术收集用户体验指标,并进行分析优化
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 成熟度是评估效维工具选择的首要参考维度。不同企业可以基于自身实际情况可以从多维度进行评估:
八、感悟
笔者认为越是成熟度高的东西,体系知识越是庞大,本文限于篇幅的原因对于部分内容细节并未全部展开描述,更多的是从定义、描述、价值、趋势、知识体系和工具体系大的方向介绍,对于如何实施细节需要读者去针对细节内容去学习。其中上述内容有很多是笔者的观点,如有不同见解,还希望留言或者私下沟通。
九、参考资料
- 《中国XOps应用创新发展研究报告》-中国信息通信研究院
- 《星汉未来综合运维解决方案》
- 微软DevOps资源中心:https://learn.microsoft.com/zh-cn/devops/what-is-devops
作者:京东零售 刘晓成
来源:京东云开发者社区 转载请注明来源
一文讲透DevOps理论体系的演进的更多相关文章
- 一文讲透产品经理如何用好ChatGPT
作者:京东零售 何雨航 "4.0版本的ChatGPT可以有效提升产品经理工作效率,但并无法替代产品经理的角色." 一.引言 3月15日,OpenAI发布了最新的基于GPT-4的Ch ...
- 一文讲透静电放电(ESD)保护(转发)
一直想给大家讲讲ESD的理论,很经典.但是由于理论性太强,任何理论都是一环套一环的,如果你不会画鸡蛋,注定了你就不会画大卫. 先来谈静电放电(ESD: Electrostatic Discharge) ...
- 一文讲透Dubbo负载均衡之最小活跃数算法
本文是对于Dubbo负载均衡策略之一的最小活跃数算法的详细分析.文中所示源码,没有特别标注的地方均为2.6.0版本. 为什么没有用截止目前的最新的版本号2.7.4.1呢?因为2.6.0这个版本里面有两 ...
- 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务
作者 | 张维(贤维) 阿里云函数计算开发工程师 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹 ...
- 一文讲透CabloyJS全栈框架的来龙去脉
本文受众 咱们做软件开发,就好比是建造一幢幢房屋,一座座桥梁,既可以是北方宫殿的巍峨,也可以有南方庭院的雅致,更可以是横跨群山的峻险与孤悬.那么,不同的语言.不同的框架也都由其内在的秉质吸引着一批粉丝 ...
- 一文讲透Cluster API的前世、今生与未来
作者:Luke Addison 原文链接:https://blog.jetstack.io/blog/cluster-api-past-present-and-future/ Cluster API是 ...
- 一文讲透Java序列化
本文目录 一.序列化是什么 二.为什么需要序列化 三.序列化怎么用 四.序列化深度探秘 4.1 为什么必须实现Serializable接口 4.2 被序列化对象的字段是引用时该怎么办 4.3 同一个对 ...
- 一文讲透为Power Automate for Desktop (PAD) 实现自定义模块 - 附完整代码
概述 Power Automate for Desktop (以下简称PAD)是微软推出的一款针对Windows桌面端的免费RPA(机器人流程自动化)工具,它目前默认会随着Windows 11安装,但 ...
- 一文讲透 Redis 事务 (事务模式 VS Lua 脚本)
准确的讲,Redis 事务包含两种模式 : 事务模式 和 Lua 脚本. 先说结论: Redis 的事务模式具备如下特点: 保证隔离性: 无法保证持久性: 具备了一定的原子性,但不支持回滚: 一致性的 ...
- 一文讲透Modbus协议
前言 Modbus是一种串行通讯协议,是Modicon公司(现在的施耐德电气 Schneider Electric) 于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领 ...
随机推荐
- 小白也能看懂的 ROC 曲线详解
作者:PrimiHub-Kevin ROC 曲线是一种坐标图式的分析工具,是由二战中的电子和雷达工程师发明的,发明之初是用来侦测敌军飞机.船舰,后来被应用于医学.生物学.犯罪心理学. 如今,ROC 曲 ...
- linux 脚本:iptables-nat.sh
#!/bin/bash # 2022.2.28 by dewan # DNAT configuration. iptables -t nat -F PUB_IFACE="enp125s0f0 ...
- Django错误:ERRORS: ?: (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or list. HINT: Perhaps you forgot a trailing comma?
报错的原因是因为我们的STATICFILES_DIRS赋值时,形式不对,其应该赋数组对象,具体如下: 找到settings.py文件, 把 STATICFILES_DIRS=(os.path.join ...
- 渗透-02:HTTPS主干-分支和HTTPS传输过程
一.HTTPS主干-分支 第一层 第一层,是主干的主干,加密通信就是双方都持有一个对称加密的秘钥,然后就可以安全通信了. 问题就是,无论这个最初的秘钥是由客户端传给服务端,还是服务端传给客户端,都是明 ...
- 用python用户注册和短信验证码逻辑实现案例
一.写代码前分析(逻辑分析OK了才可以顺利成章的敲代码): A.用户发送请求 1.注册账号(用户名不能重复)--按照需求进行判断 2.短信验证码(有效期5分钟)--对短信验证码进行保存 B.用户注册. ...
- 深入理解MySQL:数据类型、查询优化、索引、事务处理和数据备份与恢复
摘要: MySQL 是一种常用的关系型数据库管理系统,对于开发者和数据库管理员来说,掌握 MySQL 的关键概念和最佳实践非常重要.本文将围绕 MySQL 的数据类型.查询优化.索引.事务处理以及数据 ...
- 《SQL与数据库基础》03. SQL-DML
目录 DML 数据插入 数据删除 数据更新 本文以 MySQL 为例 DML 数据插入 给指定字段添加数据: INSERT INTO 表(字段1, 字段2, ......, 字段n) VALUES(值 ...
- (2023.7.24)软件加密与解密-2-1-程序分析方法[XDbg].md
body { font-size: 15px; color: rgba(51, 51, 51, 1); background: rgba(255, 255, 255, 1); font-family: ...
- 从 DMAIC 方法论说起,记一个长链接 bug 的排查全过程
引 本文是我在前端团队的第四次分享,在过去我曾做过一次关于 bug 排查的全流程的排查分析,文档:客户线上反馈:从信息搜集到疑难 bug 排查全流程经验分享,但这个文章更侧重我过去几年的排查经验,而非 ...
- 千万级数据的表,我把慢sql优化后性能提升30倍!
分享技术,用心生活 背景:系统中有一个统计页面加载特别慢,前端设置的40s超时时间都加载不出来数据,因为是个统计页面,基本上一猜就知道是mysql的语句有问题,遗留了很久没有解决,正好趁不忙的时候,下 ...