DevOps模式: 定义你的DevOps-程序员宅基地

遗憾的是,很少有人真的关心 “DevOps 是什么”,当然其实也不重要。比 DevOps 是什么来说,更重要的是 “DevOps 能做�什么”。据 John Willis 的说法,DevOps 运动的发起人 Patrick Debois 一直拒绝给 DevOps 下定义是一件了不起的事情。 Patrick Debois 他不希望把 DevOps 据为己有。DevOps 应该属于社区,属于每一个愿意投身于 DevOps 目标的个人和组织。

由于第一届 DevOpsDays 奠定 DevOps 的基础。组织者 Patrick Debois 作为第一个"官方" DevOps 发言人。第一届 DevOps 的产出内容给未来的 DevOps 发展方向上起到决定性作用。因此,DevOps 模式中的 DevOps 的相关定义均参考Patrick Debios 的博客。

然而,在我过去经历的不同的 DevOps 转型/改进项目中的经历来看。不同的组织,不同的部门,甚至是同一个部门的人,大家对 DevOps 的理解并不一致。这对 DevOps 长时间在组织内发挥改进作用是不利的。

模式:定义你的 DevOps (Define Your DevOps)

模式名称:定义你的 DevOps (Define Your DevOps)

模式别名:定制化 DevOps 定义 (Customize DevOps Definition)

模式类别: 策略模式

风险: 中 - 采用的时候要注意场景和条件,否则会出现反模式。

价值:中 - 采用该模式产生中期固定的收益,但要持续做才可以获得收益。

见效时间:快 - 2 周内可看到显著改进。

说明:

根据组织的需要,在基于对 DevOps 历史和实践的理解上建立对组织发展有益的 DevOps 的定义。DevOps 的定义包括 DevOps 的组织改进范围,DevOps 的度量,DevOps 的实践。在采用 DevOps 实践的过程中,要先取得 DevOps 共识并基于共识采取 DevOps 度量。否则无法确定 DevOps 带来的改进。

此外,DevOps 的定义会随着组织在的不同阶段而变化。要定期重新定义当前阶段的DevOps 目标,否则会导致"DevOps教条主义" 反模式和" DevOps 复制者"反模式。

DevOps 的定义要在实施 DevOps 的组织内达成共识。否则会陷入"片面的 DevOps" 反模式。

相关模式:DevOps 共识,DevOps 范围,建立 DevOps 度量,短期 DevOps 提升

相关反模式: DevOps 教条主义,DevOps 复制者,片面的 DevOps

相关引用:

https://en.wikipedia.org/wiki/DevOps

https://youtu.be/o7-IuYS0iSE

http://www.jedi.be/blog/2009/12/22/charting-out-devops-ideas/

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/

反模式:DevOps 教条主义 ( DevOps Dogmatism )

如果不定义适合自己的 DevOps,或者对 DevOps 理解太单一。会导致"DevOps 教条主义"和"DevOps模仿者"反模式。

反模式名称:DevOps 教条主义(DevOps Dogmatism)

反模式类别: 策略反模式

不良后果: 无法达到 DevOps 改进预期的效果

常见原因:

  1. 认为 DevOps 是静态,完整的理论体系。
  2. 认为体系化的 DevOps 资料,例如:文献、书籍可以覆盖所有 DevOps 内容。

说明:

DevOps 的目标是"通过一系列行之有效的管理实践和技术实践,以消除软件全生命周期的中的浪费,提升软件及其过程的质量、效率和反馈频率。从而使组织能够更好的适应外部的变化。"

在此基础上,DevOps 相关的实践和模式是不断随着组织上下文和技术上下文的发展而发展的。

注意,DevOps 教条主义的表现形式是 DevOps 复制者反模式。但 DevOps 复制者反模式并不一定会导致 "DevOps 教条主义"反模式。DevOps 教条主义的关键在于 DevOps 的实践是不继续发展的。而 DevOps 复制的关键在于 DevOps 不需要进行定制。

修正模式:定义你的 DevOps,DevOps 度量

相关反模式:DevOps 复制者

相关引用:

http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices

反模式:DevOps 复制者 (DevOps Copycats)

反模式名称:DevOps 复制者 (DevOps Copycats)

反模式别名:无

反模式类别: 策略反模式

不良后果: 完全复制别人的 DevOps 实践做法,而不进行分析和定制化。导致无法达到 DevOps 转型或者改进的效果。

常见原因:

  1. 简单的复制成功企业的经验,而没有分析成功的上下文。
  2. 成功的案例很少会展示失败的部分。
  3. 没有度量机制进行改进。

说明:

在同一行业内发现成功案例会很容易错误的以为案例可以复制。缺乏对案例成功的上下文分析会导致同样的实践产生了不同的效果。因此,有必要分析自身的上下文和成功案例上下文的区别,或者进行试点以总结经验。以便更好的定制化 DevOps 实践。任何外部的实践都只具备参考意义。

对外部案例的尝试不算是 DevOps 复制者。DevOps 复制者的关键在于尝试后没有进行回顾复盘并不进行改变。

注意,DevOps 教条主义的表现形式是 DevOps 复制者反模式。但 DevOps 复制者反模式并不一定会导致 "DevOps 教条主义"反模式。DevOps 教条主义的关键在于 DevOps 的实践是不继续发展的。而 DevOps 复制的关键在于 DevOps 不需要进行定制。

修正模式:定义你的 DevOps,DevOps 度量

相关模式:和该模式相关的其它模式,其它模式也会导致同样的反模式。

相关反模式:DevOps 教条主义

相关引用:相关资料的引用。

关于 DevOps 模式

DevOps 模式的索引在 Github 上开源,地址是 https://github.com/wizardbyron/devops_patterns 欢迎通过 issue 和pull request 提交你的建议。

你可以通过关注我的公众号了解 DevOps 模式和反模式,也可以加入我的付费知识星球“DevOps 模式” 和所有 DevOps 的实践者共同交流,我将在知识星球中定期回答那些最受关注的问题。

274927-bf46a7dad03b0999.jpg
付费知识星球

关于我

我是顾宇,是一名在埃森哲工作的职业咨询师。我目前专注于产品服务设计、敏捷软件开发、DevOps 、云计算以及应用架构领域的技术和实践落地。热爱阅读、写作、旅行和健身。具有强大的好奇心的经济学和脑科学爱好者,喜欢结交不同领域的朋友,一起体验并分享世界上未知的美好。

欢迎关注我的公众号:顾宇的研习笔记

274927-bdba2dc670dcf0b7.jpg
我的公众号
274927-aae7578c2529db14.png
知识共享署名-禁止演绎 4.0 国际许可协议

本作品采用知识共享署名-禁止演绎 4.0 国际许可协议进行许可

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/byronm/article/details/90585483

智能推荐

物联网-物联网智能数据处理技术_物联网数据处理技术-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏39次。物联网数据处理技术的基本概念物联网数据的特点海量 动态 多态 关联从无线传感器网络TinyDB数据库结构中可以清晰地看到物联网数据“海量、动态、多态、关联”的特点物联网中的数据、信息与知识物联网数据处理关键技术数据存储 数据融合 数据挖掘 智能决策物联网与云计算云计算产生的背景云计算的分类IaaS—基础设施即服务,只涉及到租用硬件,是一种..._物联网数据处理技术

win10找不到打印机_Win10系统如何连接和找寻打印机?-程序员宅基地

文章浏览阅读4.8k次。很多朋友改完win10系统就找不到打印机设备,无法设置默认打印机,今天来解析这个问题!01进入设置界面通常,对于已经启动了并连接到了网络的打印机,会很容易被系统识别到,只不过需要确保打印机和电脑是连接的同一个网络。点击开始菜单,进入设置界面。选择设备。02添加打印机和扫描仪选择打印机和扫描仪,点击添加打印机或扫描仪。系统将会自动搜索识别,并将搜索到的设备罗列出来。接着,找到并点击您想要添加的打印机..._w10打印机在哪里找

【存储缓存】bcache原理及实践-程序员宅基地

文章浏览阅读9.1k次,点赞5次,收藏29次。bcache是linux内核块设备层的cache。主要是使用SSD盘在IO速度较慢的HDD盘上面做一层缓存,从而来提高HDD盘的IO速率。一个缓存设备(SSD)可以同时为多个后端设备(HDD)提供缓存。既然是缓存,那自然就会想到缓存策略,bcache支持三种缓存策略....................._bcache

linux amixer原理,amixer和alsamixer使用说明-程序员宅基地

文章浏览阅读658次。amixer和alsamixer使用说明amixer和alsamixer使用说明amixer和alsamixer说明本文主要解答:1. amixer与alsamixer的区别2. amixer与alsamixer的使用alsamixer与amixer的区别alsamixer是Linux音频框架ALSA工具之一,用于配置音频各个参数;alsamixer是基于文本图形界面的,可以在终端中显示.通过键盘..._amixer

web搭建,dns服务器搭建_dns和web服务器搭建-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏15次。安装Web服务1、www(万维网服务),主要应用于搭建web站点2、中间件,是用承载我们的Web站点,那么什么是中间件(如,iis、apache、nginx、tomcat、jboss等),Web网站没有中间件是不能运行。3、如何安装windows IIS服务器管理器–角色–添加–web服务器–4、web站点的访问方式有三种(1)通过ip访问,一般是有多个公网地址,可以每一个站点分配一个ip(这种情况用的极少)原因:Ip很难记,公网地址需要收费(2)多端口访问,web站点默认是80端口,80_dns和web服务器搭建

Java时间处理工具类TimeUtils_java 时间工具类-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏5次。以上方法笔者觉得没有必要再封装进工具类了,直接调用就行而其他的处理可以参考笔者的时间处理工具类 TimeUtils 的以下方法时间格式转化:转化成时间戳:转化成 LocalDateTimeformat():转化成格式化日期字符串时间获取:获取当前时间戳(精确到毫秒):获取当前的年(仅数值):获取当前的月(仅数值):获取当前的日(仅数值):获取当前的年(格式为 yyyy 的字符串):获取当前的年月(格式为 yyyy-MM 的字符串)_java 时间工具类

随便推点

Andorid源码编译需要掌握的shell语法(三)_android shell脚本语法 :>-程序员宅基地

文章浏览阅读1.2k次。Android 源码编译文件中语法记录_android shell脚本语法 :>

Linux V4L2子系统分析(一)_v4l2_subdev_call-程序员宅基地

文章浏览阅读4.2k次,点赞12次,收藏72次。1.概述Linux系统上的Video设备多种多样,如通过Camera Host控制器接口连接的摄像头,通过USB总线连接的摄像头等。为了兼容更多的硬件,Linux内核抽象了V4L2(Video for Linux Two)子系统。V4L2子系统是Linux内核中关于Video(视频)设备的API接口,是V4L(Video for Linux)子系统的升级版本。V4L2子系统向上为虚拟文件系统提供了统一的接口,应用程序可通过虚拟文件系统访问Video设备。V4L2子系统向下给Video设备提供接口,同时管理_v4l2_subdev_call

服务器基础配置:浪潮服务器配置ILO地址、修改管理员密码、查看虚拟化是否打开:_浪潮服务器修改管理口密码-程序员宅基地

文章浏览阅读1w次。使用场景:因为在公司机房中的服务器我们在使用需要对他做一些类似于初始化的配置,分别是三个,——》第一个是配置服务器的ILO地址,这个是我们通过网络打开一个Web页面对服务器进行一些操作;——》第二个是对管理用户的密码进行修改,这个是因为不同的服务器初始的管理员的密码也许是不一样的,我们将其修改为统一的方便记忆也方便管理;——》第三个就是开启服务器的半虚拟化功能,这个是我们的公司的也许需要服..._浪潮服务器修改管理口密码

php如果字符串有1 3 5,PHP常用字符串函数小结-程序员宅基地

文章浏览阅读87次。PHP常用字符串函数小结来源:程序员人生 发布时间:2015-01-22 09:02:32 阅读次数:1594次1、判断类型的函数is_bool() //判断是不是为布尔型is_float() //判断是不是为浮点型is_real() //同上is_int() //判断是不是为整型is_integer() //同上is_string() ..._php 字符串1-5位

matlab从flove,Matlab玩出新高度,变身表白女友神器_善良995的博客-程序员宅基地-程序员宅基地

文章浏览阅读431次。原文作者:善良995原文标题:Matlab玩出新高度,变身表白女友神器发布时间:2021-03-19 13:36:02Matlab还可以这样玩儿?每逢节日愁哭程序员,不知道该送什么给女朋友,在这里教你用Matlab玩儿出属于程序员的浪漫,送给她一整天的惊喜^^一、效果图先来看看效果图:怎么样,这礼物是不是很用心?是不是很特别?是不是很程序猿?(斜眼笑~)二、完整模板代码当然,我怎么忍心让好男孩们千..._clc clear [x,y,z] = meshgrid(linspace(-3,3,101)); f = -x.^2.*z.^3-(9/80)

字符数组和字符串指针在内存中存储_使用字符串指针定义的变量储存在内存中的-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏4次。#include#includechar* strcpy1(){ char *p = "hello kitty"; printf("%s\n", p); return p;}int main(){ printf("%s", strcpy1()); return 0;}字符串在内存中存储在只读数据段,当定义一个字符串指针时,该指针指向这个只读区域,即使在函数中将这个指针返回_使用字符串指针定义的变量储存在内存中的