DevOps成熟度评估模型

什么是DevOps

随着敏捷软件方法的广泛采用,以及IT基础设施即程序代码的管理方式的推广,DevOps也应运而生了。

DevOps 是通过人、流程和技术的有机整合,以协作、自动化、精益、度量和共享文化为指引,旨在建立一种可以快速交付价值并且具有持续改进能力的现代化 IT 组织。


什么是DevOps成熟度评估

随着技术的发展,越来越多的公司期望各种有用的方法论能够标准化,可量化。这样可以帮助决策者快速的知道我目前的水平,以及我未来发展的目标。

因此,随着DevOps被越来越多的推广,决策者们也期望知道自己公司或者团队的DevOps被量化之后长什么样子。于是DevOps成熟度评估模型便诞生了。


DevOps成熟度模型

在这些年的咨询生涯中,见过很多公司的成熟度模型。

这里给大家介绍几种吧。

常见DevOps成熟度模型

首先是信通院的,信通院把DevOps分成了3个模块,每个模块下面对应了一些纬度。如下:

  • 敏捷开发管理
    • 价值交付管理
    • 敏捷过程管理
    • 敏捷组织模式
  • 持续交付
    • 配置管理
    • 构建与持续集成
    • 测试管理
    • 部署与发布管理
    • 环境管理
    • 数据管理
    • 度量与反馈
  • 技术运维
    • 监控管理
    • 事件与变更管理
    • 运营配置管理
    • 容量与成本管理
    • 高可用管理
    • 连续性管理
    • 用户体验管理

再来看看某技术咨询公司的,他们把DevOps成熟度分为了6个纬度来进行评估。如下:

  • 组织职能与能力
  • 轻量级变更流程
  • 自动化环境管理
  • 持续部署与发布
  • 运维监控与度量
  • 架构解耦

同样是某咨询公司的,他们的DevOps成熟度模型的纬度又不一样了,他们把成熟度模型分为了8个纬度。如下:

  • 发布组织与方法论
  • 精益发布治理与过程
  • 自动化软件发布
  • 持续集成
  • 持续部署
  • 自动化运维
  • 基础设施与云计算
  • 平台与应用架构

另外一家科技公司,他们的DevOps成熟度模型的纬度也不一样,他们的分法如下:

  • 持续集成
  • 持续部署
  • 轻量级变更流程
  • 自动化环境管理
  • 质量保证
  • 运维监控与度量
  • 可视化与可追溯

我总结的DevOps成熟度模型

凭借这些年的DevOps咨询经验,我总结了一套我认为更易用的能符合大部分公司情况的DevOps成熟度模型。结合了各家成熟度模型,做了一些调整和优化,以适用于大部分团队的DevOps成熟度评估。

他们也是8个纬度,如下:

  • 组织与文化
  • 敏捷开发
  • CI/CD
  • 质量与安全
  • 可视化与自动化
  • 版本与配置管理
  • 运维监控与预警
  • 持续度量与改进

组织与文化

DevOps不是一个软件产品,DevOps也不是一个工程师。DevOps需要文化与组织的变化,不仅是开发与运维之间的隔阂需要消失,IT与业务之间的隔阂也需要消失。

由于DevOps和敏捷一样,离不开组织的变革和支持,同时DevOps也是一种文化,因此综合了一下,把组织能支持DevOps的程度,与现阶段文化与DevOps的匹配程度,作为了这个纬度的关键。

敏捷开发

为什么要有这个纬度可能有些人会比较疑惑。因为Oleg Skrynnik在《DevOps精要》里面提到DevOps发展的其中一个前提是敏捷开发被广泛的采用。因此,敏捷做得好不好直接影响到DevOps做得好不好。他们是相辅相成的。

CI/CD

CI/CD即代表的是持续集成和持续部署。也可以理解为我们俗称的pipeline流水线。但它指代的不仅仅是工具,更是一种方法论。相对于集成与部署,更重要的是持续两个字。CI/CD占据了我们开发过程中的大部分阶段,从代码提交那一刻开始,到代码运行在生产环境,都是由CI/CD促成的。

质量与安全

这个纬度很多公司没有把它单独提出来,但我认为它是非常重要的。很多团队随着时间的推移,通常都会累积越来越多的技术债,最终也无法偿还。在兼顾交付的同时,质量与安全一定是我们长线能看到收益的纬度。因为质量与安全问题带来的隐形成本浪费,是很多团队和公司会忽略的。

可视化与自动化

IT工作内容很多是不可见的,因此可视化成了DevOps的重要指标。可视化的好处在于可以构建拉式系统,有助于识别低效环节,并且改善对剩余工作以及当前状态的了解。

很多团队以为有了流水线就是DevOps了,却不曾想依然有很多人工的工作。DevOps就是要规避人为的风险。因为人是会犯错的,而机器则不会。因此,自动化是非常重要的DevOps成熟度的考量纬度。

版本与配置管理

全面的版本控制能帮助团队在开发过程中获得收益,这些版本控制包括但不限于测试、脚本、环境、包、类库、文档、配置等。团队成员可以无风险的删除不需要的文件。

配置管理也是同样的原理和收益,配置与环境管理使得我们所有的变更都是受控的,系统可以被快速地重置到稳定状态。如果关键成员离开, 知识也不会遗失。

运维监控与预警

过去常常由一个独立的运维部门来负责所以线上运维的事情,这种情况在DevOps这里需要发生极大的变化了。运维的事情和开发合并到一起了,由一个团队共同负责了。这也是DevOps所强调的职责共担。同样对于运维的监控和预警也应该是对整个团队可见的。

持续度量与改进

DevOps已经越来越多的和效能关联上了。因此也出现了各种关于DevOps或者效能的度量。这些度量不是为了考核KPI,而是帮助团队持续改进的一种手段。DevOps提倡更频繁的直面问题,度量则是一种很好的方式帮助我们发现问题,并持续改进。

小结

可见,行业里没有一个统一的DevOps成熟度模型,各家都是按照各家的方法论在总结成熟度模型。

他们没有好坏,他们各有各的优点和侧重点。在不同的场景和不同的公司现状下,选择不同的成熟度模型能帮助我们更好的评估。

DevOps成熟度评级

关于级别的定义,行业里面普遍有两种,一种是4个级别,一种是5个级别。

我个人认为5个级别更合理,因为第1级其实就是零,并未尝试DevOps,第5级就是天花板,是以谷歌、微软、亚马逊等公司的领先DevOps团队为代表的天花板。

因此综合一下,级别定义如下:

  1. Regressive初始级 - 几乎没有尝试任何DevOps实践
  2. Basic基础级 - 做了一些DevOps实践,正在起步阶段
  3. Standard成熟级 - 能成熟运用各种DevOps实践
  4. Optimized优化级 - 不仅能运用各种DevOps实践,还能根据团队和组织情况进行优化改进
  5. Leading领先级 - 是行业里面DevOps的先行者、创新者、探索者、领导者

因此,把这个成熟度模型做成一张可量化的表则如下。

简单解释一下,表里的描述并不是全部,只是包含了一些关键例子和方向,使用者可以根据自己的情况调整和添加。其次,由于这些纬度很难量化,因此如果只是符合了部分描述,我们也认为没有做到。这样的好处是,我们不会因为评估为成熟级,而放弃了那些成熟级本应该达到而没有达到的描述。

举个例子,质量与安全纬度中,基础级做到了部分,同时成熟级也做到了部分,我们也认定只达到了基础级。

通过对这张表的打分,最后我们就能得到了一个例如下图的成熟度评估图:

总结

DevOps成熟度评估模型并不是指导你把DevOps做得更好的方法论,它只是用来评估目前的现状,以指导你未来还有哪些改进空间。

我做咨询的经历中,发现很多公司会把DevOps当作项目来做,要求团队在N个月内完成DevOps搭建和应用。但DevOps不应该以项目的方式进行,因为项目的方式意味着公司期望在有限的时间以及预算内获得特定的结果,然而DevOps其实是一场没有终点的马拉松比赛。

如果想知道如何把DevOps做得更好,推荐去看《DevOps精要》那本书,里面讲了DevOps的一些原则和关键实践,掌握这些东西才能持续把DevOps做好。

下回我也整理一篇文章来讲讲如何把DevOps持续做好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/287093.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式-C语言-const关键字-指针常量和常量指针

C语言-指针常量和常量指针 一:结论 1.常量指针 :b的值不能变,但是b的地址能变 const int* b &x; 2.指针常量:p的地址不能变,但是p的值能变 int* const p &y; 3.巧记口诀 星在(const&#xf…

autograd与逻辑回归

一、autograd—自动求导系统 torch.autograd.backward() torch.autograd.backward()是PyTorch中用于计算梯度的函数。以下是对该函数的参数的解释: 功能:自动求取梯度 • tensors: 用于求导的张量,如 loss • retain_graph : 保存计算图 •…

Zero-shot:半监督:pansharpening

Zero-shot semi-supervised learning for pansharpening (用于全色锐化的零次半监督学习) 全色锐化是指融合低分辨率多光谱图像(LRMS)和高分辨率全色(PAN)图像以生成高分辨率多光谱图像(HRMS&…

安卓学习笔记

一、eclipse问题记录 (1)."Android requires compiler compliance level 5.0 or 6.0.Found 1.3 instead. Please useAndroid Tools > Fix Project Properties." 问题描述:"Android要求编译器兼容级别为5.0或6.0。但找到的…

GZ075 云计算应用赛题第3套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷3 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenSt…

720VR全景通微信小程序商业运营版+多用户+云储存+大图切图效率高+完整的代码包以及搭建教程 功能强大

随着科技的飞速发展,虚拟现实技术已经逐渐融入我们的日常生活。其中,720VR全景技术以其独特的视角和沉浸式体验,受到了广泛的关注和应用。为了满足市场需求,春哥团队推出了720VR全景通微信小程序商业运营版,集多用户、…

Python - 深夜数据结构与算法之 DP

一.引言 常规算法介绍的差不多,最不喜欢的动态规划 Dynamic Programming 还是来啦,前面介绍贪心算法时以及一些最大最小收益等等的问题,其实都可以套用动态规划的思路来实现的,下面我们看看动态规划的思路与模版要点。 二.动态规…

案例分享:Qt多国语言输入法软键盘

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135346374 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

HTML制作暴雨特效

🎀效果展示 🎀代码展示 <body> <!-- partial:index.partial.html --> <canvas id="canvas-club">

猫粮有营养吗?性价比高的主食冻干猫粮测评

随着养猫的人越来越多&#xff0c;铲屎官们对猫咪的饮食也越来越注重。除了猫粮&#xff0c;很多铲屎官还会给猫咪准备小零食。那么&#xff0c;猫咪是不是除了猫粮就没有其他可吃的了呢&#xff1f;答案当然不是。猫咪还有猫冻干、冻干猫粮、猫条等可以选择。每个铲屎官都希望…

PostgreSQL荣获DB-Engines 2023年度数据库

数据库流行度排名网站 DB-Engines 2024 年 1 月 2 日发布文章宣称&#xff0c;PostgreSQL 荣获 2023 年度数据库管理系统称号。 PostgreSQL 在过去一年中获得了比其他 417 个产品更多的流行度增长&#xff0c;因此获得了 2023 年度 DBMS。 DB-Engines 通过计算每种数据库 2024 …

opencv期末练习题(5)附带解析

根据R、G、B的值实时修改图像的颜色 import cv2 import numpy as np""" 滑动块调整图像灰度1. 读取图片&#xff0c;并转为灰度图 2. 定义启动滑块和R、G、B滑块 3. 只有启动滑块的值为1时&#xff0c;拖动R、G、B滑块才生效 4. 根据R、G、B的值实时对修改图片的…

【算法设计与分析】期末复习

文章目录 复习大纲第一章算法概述1.1算法与程序1.2 算法复杂性分析 第二章递归与分治策略分治法的基本思想递归与分治的关系&#xff1a;用分治法解决的问题的几个特征&#xff1a;例题&#xff1a; 第三章动态规划动态规划的基本思想&#xff1a;分治与动态规划算法的异同&…

【小白刷机】Pixel手机刷Magick模块不兼容重启卡开机logo解决方式

目录 关于Pixel为什么要刷机&#xff1f;刷机流程1. 手机进入bootloader2. 电脑准备好系统包和SDK工具包下载系统包下载SDK工具包 3. 手机连接电脑4. 修改配置文件&#xff0c;刷入系统小结彩蛋 关于Pixel Pixel作为一台谷歌手机&#xff0c;在国内不使用魔法是基本无法使用的…

【AI故事】灵感的源泉还是知识的盗窃?

灵感的源泉还是知识的盗窃&#xff1f; ——ChatGPT Robot在一个漆黑的夜晚&#xff0c;年轻的作家艾米丽坐在书桌前&#xff0c;手里紧握着一支笔&#xff0c;思绪万千。她一直在寻找创作的灵感&#xff0c;但却毫无头绪。 突然&#xff0c;她听到了一声巨响&#xff0c;仿佛…

计算机基础面试题 |05.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

客户反馈说mysql启动不了&#xff0c;报错信息&#xff1a; 本地计算机 上的 My5OL808 服务启动后停止&#xff0c;某些服务在未由其他服务或程序使用时将自动停止。 查了不少资料&#xff0c;最后分析问题是这样的&#xff0c;手动或者重复安装mysql时&#xff0c;创建了多个…

大数据规模存储的几个核心问题

文章目录 三个关键问题RAID&#xff08;独立磁盘冗余阵列&#xff09;RAID是如何解决关于存储的三个关键问题&#xff1f;水平伸缩 大规模数据存储都需要解决几个核心问题&#xff0c;这些问题都是什么呢&#xff1f; 三个关键问题 1.数据存储容量的问题 既然大数据要解决的…

Python高级并发编程的实例详解

更多Python学习内容&#xff1a;ipengtao.com Python中的高效并发编程&#xff0c;有几个重要的概念和工具可以帮助大家充分利用多核处理器和提高程序性能。本文将介绍一些关键的概念和示例代码&#xff0c;以帮助大家更好地理解Python中的高效并发编程。 多线程 vs. 多进程 在…

PyTorch中常用的工具(3)TensorBoard

文章目录 前言3 可视化工具3.1 TensorBoard 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c…
最新文章