写点什么

什么是(不是)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:4220146
用户头像

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

关注

评论

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

Flink x Zeppelin ,Hive Streaming 实战解析

Apache Flink

flink hive Zeppelin

实时计算的业务劣势、思维误区和改进之道

KAMI

大数据 flink 方法论 实时计算

作业1

chenzt

LeetCode 328. Odd Even Linked List

liu_liu

算法 LeetCode

区块链在这些生活场景中悄然落地了......

CECBC

区块链 落地应用

读书,区分一二三四手知识

dd多了个多

读书笔记

从0到1搭建大数据平台之数据采集系统

数据社

大数据 数据采集

湾区金科沙龙,华青融天技术总监吴伟平详解旁路式应用性能监控

DT极客

我是如何写读书笔记的

dd多了个多

读书笔记

从0到1搭建大数据平台之调度系统

数据社

大数据 工作流调度

写作社区划线笔记新功能全新上线!给你带来不一样的写作学习体验~

InfoQ写作社区官方

写作平台 玩转写作平台 热门活动

如何从0到1搭建大数据平台

数据社

大数据 中台

30秒,2种方法解决SQL Server的内存管理问题

华为云开发者联盟

数据库 sql 内存 服务器 华为云

读书笔记:Google软件测试之道【三】

Man

测试 测试文化

VIPKID 在线教育场景下的实时计算技术落地和实践

Apache Flink

flink

什么是零代码?零代码开发可以带来的好处

代码制造者

可视化 零代码 编程效率

一位区块链产品经理讲述“区块链”的通知 重点方向包括区块链安全

CECBC

物联网 区块链技术 联盟链

前端面试vue部分(1)——谈谈你对MVVM的理解

dd多了个多

面试 Vue 大前端 Web

从0到1搭建大数据平台之计算存储系统

数据社

大数据 中台 计算引擎

话题讨论 | 哪本极具影响力的书,是每位程序员都应该读的?

InfoQ写作社区官方

写作平台 话题讨论

读书笔记:Google软件测试之道【一】

Man

测试 测试文化

周子衡 | 数字资产、数字支付及跨境活动——以美元数字化为例

CECBC

加密货币 数字资产

Java 垃圾回收

dongge

汇丰坠落:世间已无「日不落」

钛禾产业观察

汇丰 财经

读书时,如何提炼文章架构形成思维导图

dd多了个多

读书笔记 读书感悟

架构师训练营第九周作业

一剑

原创 | 使用JPA实现DDD持久化- O:对象的世界(1/3)

编程道与术

Java hibernate DDD JDBC jpa

自主管理——对人性的假设

zhongzhq

自主管理 组织

成功的9大步骤:从手动测试转为自动化测试

禅道项目管理

测试 自动化测试

读书笔记:Google软件测试之道【二】

Man

测试 测试文化

糟糕,你写的 BUG 要被存1000年了!

华为云开发者联盟

GitHub 开源 代码 bug 卤化银胶片

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