东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

什么是(不是)DevOps,我们如何实现 DevOps?

  • 2014-03-11
  • 本文字数:2159 字

    阅读完需:约 7 分钟

在本文中我们将会讨论一些人们对 DevOps 的误解,同时会介绍一个能够带来 DevOps 文化转变的流程。

在一篇题为“不,你并不是一个 DevOps 工程师”的博文中,Cloud Technology Partners 公司的副总裁兼首席架构师 Mike Kavis 谈论了一些与 DevOps 相关的错误想法。例如,他提到一些团队是如何误用术语 DevOps 的:

企业正在为 DevOps 苦恼。他们都想得到 DevOps,即使很多企业并不知道它到底是什么。在很多情况下,我会看到那些自称 DevOps 的基础设施团队在领导一个基层倡议。当我问他们开发团队在哪里的时候,他们通常会说“我们并没有邀请他们”,甚至更糟“我们并没有同他们交流”。

一些工程师将自己宣传为 DevOps,但是他们并不是,因为根据 Kavis 所说“DevOps 并不是一个人,一个角色或者一个头衔。即使你可以声称自己是一个 DevOps 工程师,但是这仅是你自己的看法,实际上你并不是。”如果 DevOps 不是一个角色,一个资格,一个头衔 ,那么它到底是什么呢?Kavis 的定义是:

DevOps 是一种文化转变,或者说是一个鼓励更好地交流和协作(即团队合作)以便于更快地构建可靠性更高、质量更好的软件的运动。

然后他详细描述说:

DevOps 是软件开发生命周期(SDLC)从瀑布式到敏捷再到精益的发展。DevOps 超越了敏捷,它的关注点是从 SDLC 中移除浪费。通常情况下,发现浪费或者瓶颈的形式包括:不一致的环境,人工的构建和部署流程,差的质量和测试实践,IT 部门之间缺少沟通和理解,频繁的中断和失败的协定以及那些需要珍贵的资源、花费重要的时间和金钱才能保持系统运行的全套问题。

我看到的另一个重复模式是:一个“DevOps”团队的第一步通常是决定他们是否应该使用 Chef 或者 Puppet(或者是 Salt、Ansible 等其他任何热门的东西)。他们甚至还没有定义自己打算解决的问题,即使他们手头的工具可以解决它们。这些团队通常会紧张地构建数千行脚本,但是这就产生了一个问题:“我们的职责是编写 Chef 脚本还是通过质量更好、更稳定的产品更快地进入市场?”。在大多数情况下,这些团队会将自己逼入绝境,大量的专有脚本实际上是增加了系统的浪费,而隐藏在 DevOps 运动之后的驱动力是从系统中移除浪费,这些团队并没有做到这一点。

如果说 DevOps 是一种打算让开发某个产品的多个团队之间能够更好的交流和协作的文化变革,那么下一个问题就是我们该如何实现 DevOps,我们如何将这种文化引入到自己的公司中?

DTO Solutions 的共同创建者 Damon Edwards 在 2013 年的 DevOps Days Mountain View 上做了题为“如何发起一个DevOps 变革”的主题演讲,他推荐通过一个三步走的过程将DevOps 文化引入到某个组织中:

1.弄清楚“为什么?”

根据 Edwards 所说,首先非常清楚组织成员为什么会聚到一起,知道他们试图实现什么,清楚他们的目的是什么是非常重要的。为了找到这些问题的答案我们应该直接与组织中的这些人交流,询问他们为什么会出现在这里。组织的主要目标是我们实现 DevOps 文化的唯一原因,除此之外没有其他原因。

Edwards 认为 _DevOps_ 仅仅是达到目标的一种手段,但是它自己本身并没有结束:“DevOps 并不是你的 _ 为什么 _,不是你合作伙伴的 _ 为什么 _,当然也不是你业务的 _ 为什么 _”。他甚至建议忘记 _DevOps_ 团队,而是使用 _ 服务交付 _ 作为替代,因为“我们的职责是创造服务”。

2. 实现组织合作

按照 Edwards 介绍的过程,接下来需要做的是使整个组织合作,让所有人基于一组共享的条件和规则向一个共同的目标努力。当你能够把同一个目标指定给多个人的时候,一个组织就实现了正确的合作,他们会选择同样的方式去实现各自的目标;他们对于同一个问题有同样的答案。这可能是“组织合作的终极梦想”。

为了完成这种合作,组织内部必须要有人描绘一个 _DevOps__ 愿景 _。这并不能通过教学过程实现,因为人们只会尝试着机械性地遵循这些步骤。我们需要的是教会大家一种思维方式。根据 Edwards 所说,这可以通过遵循下面的几个步骤实现:

  1. 教导基本的概念,例如“单件流、批量工作、限制在制品的数量、拉式 vs 推式、持续交付”以及可以使用的工具等组织将会共享的一些通用词汇的概念。
  2. 让所有人目标一致,通过:
    a. 价值流程图——一个精益概念,它详细描述了一个组织内部发生的信息流和制品流,引导价值创造。
    b. 时间线分析——试图发现时间花费在哪里,瓶颈在哪里。
    c. 浪费分析——确定一个组织所产生的各种各样的浪费以便于尽可能地消除浪费。
  3. 发展度量链它的意思是对价值交付链中的各个活动进行度量,发现各个活动相互之间的影响。
  4. 针对基线识别项目/ 实验。识别哪些项目或者活动偏离了基线,并且采取纠正措施。
  5. ** 重复第24步。** 这一步构成了持续改进流程。

为了实现这些想法,Edwards 建议了一个 3 天的计划:

  • 1天—— 教导原则,提出一个方案进行研究,模式和反模式
  • ** 第2天——** 分析组织当前的状态,提供问题识别技术和改进指标
  • ** 第3天——** 讨论解决方案和工具链自动化原则,构建一个路线图

3.持续改进循环

这些循环的目的是通过制定计划、实现计划、测量输出和决定如何持续地改进流程。

在最近举行的 QCon London 2014 上 Edwards 做了题为“ Dev ‘Programming’ Ops For DevOps Success ”的分享,其中就讲到了这些原则,稍后这个分享将会发布到 InfoQ 上。

查看英文原文 What Is (Not) DevOps, and How Do We Get There?

2014-03-11 05:4220141
用户头像

发布了 321 篇内容, 共 115.9 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

自研的数据产品迭代了一年多,为什么不买第三方商业数据平台产品呢?

松子(李博源)

数据中台 数据产品经理 数字化转型 数据产品

Qt|模仿文字浮动字母

中国好公民st

qt 7月月更

腾讯云获国际专业流媒体测评肯定:三大场景下视频编码性能全部最优

科技热闻

git pull 和 git fetch到底什么区别?

Jackpop

SpringBoot项目使用Tomcat为什么让大厂禁止?

Java程序员

Java 程序员 Sprint Boot

百变小精灵,CRMEB Java 单商户系统也要当!

CRMEB

工业物联网中的时序数据

CnosDB

物联网 时序数据库 开源社区 CnosDB 工业数据

前端性能优化之请求优化

南城FE

性能优化 前端 7月月更

云原生(十一) | Kubernetes篇之Kubernetes原理与安装

Lansonli

云原生 k8s 7月月更

代码版本控制用SVN还是Git好?

Jackpop

阿里二面:什么是CAS?

Java永远的神

Java 程序员 面试 程序人生 CAS

iOS中#define和const

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

java零基础入门-异常、线程(完结篇)

喵手

Java 7月月更

【刷题记录】19. 删除链表的倒数第 N 个结点

WangNing

7月月更

面试官:MySQL 数据库查询慢,除了索引问题还可能是什么原因?

Java全栈架构师

Java MySQL 数据库 面试 后端

C# 线程锁和单多线程简单使用

IC00

C# 7月月更

这些 C++ 开源代码,简直绝了!

Jackpop

OpenIM重大优化-消息按需加载 一致性缓存 uniapp发布

Geek_1ef48b

Vim到底可以配置得多漂亮?

Jackpop

IntelliJ IDEA,有点强!

Jackpop

详解一次SQL优化

了不起的程序猿

java程序员 sql SQL优化

OpenIM重大升级-群聊读扩散模型发布 群管理功能升级

Geek_1ef48b

LeetCode-83. 删除排序链表中的重复元素(java)

bug菌

Leet Code 7月月更

.so 将c++转化为安卓可使用的数据

小肉球

qt 7月月更

软件质量体系之思

刘冉

质量体系

JavaScript 中如何取消请求

掘金安东尼

JavaScript 前端 7月月更

算法题每日一练---第6天:李白打酒

知心宝贝

算法 前端 后端 7月月更

C#入门系列(二十八) -- LINQ的查询语法

陈言必行

7月月更

数据治理浅析

五分钟学大数据

数据治理 7月月更

大规模团队中的敏捷测试实践

刘冉

敏捷测试

12张图+6K字图解ZGC垃圾回收器及调优技巧

程序员小毕

程序员 面试 程序人生 ZGC JVM

什么是(不是)DevOps,我们如何实现DevOps?_DevOps & 平台工程_Abel Avram_InfoQ精选文章