HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

深入学习SAP UI5框架代码系列之三:UI5 控件的渲染器

汪子熙

JavaScript 前端框架 SAP UI5 ui5 9月月更

围绕“开源+深耕”策略和数字化监控手段,动态管理场景生态价值

易观分析

银行 易观 场景金融

为什么要用小程序容器做小程序生态

Geek_99967b

小程序 小程序容器 小程序开发

LeetCode-26. 删除有序数组中的重复项(java)

bug菌

9月日更 Leet Code 9月月更

SAP系统和微信集成的系列教程之一:微信开发环境的搭建

汪子熙

系统集成 SAP 微信开发 微信平台 9月月更

跟着卷卷龙一起学Camera--AWB

卷卷龙

ISP 9月月更

小程序能否成为电商的突破口

Geek_99967b

小程序 小程序开发

计算机网络——速率相关的性能指标

StackOverflow

计算机网络 编程‘ 9月月更

剖析智能运维的五大应用场景

穿过生命散发芬芳

智能运维 9月月更

MVCC

急需上岸的小谢

9月月更

SD-WAN网络可靠性设计

阿泽🧸

9月月更 网络可靠性设计

LeetCode-21. 合并两个有序链表(java)

bug菌

9月日更 Leet Code 9月月更

DDD领域驱动设计

源字节1号

软件开发 前端开发 后端开发 软件设计思想

在小程序中开启直播的解决方案

Geek_99967b

小程序容器 小程序开发

动态规划-编辑距离

wing

Vue基础语法--插槽(Slot)基础使用

Sam9029

Vue 前端 基础 9月月更

行业智能化走向何方?昇腾AICE带来的新范式,新起点

脑极体

C++学习------iso646.h与limits.h头文件的源码学习

桑榆

c++ 9月月更

设计模式的艺术 第八章建造者设计模式练习(开发一个视频播放软件,为了方便用户使用,该播放软件提供多种界面显示模式,例如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异。例如,在精简模式下只显示主窗口、控制条)

代廉洁

设计模式的艺术

技术团队如何高效落地代码CR

慕枫技术笔记

架构 后端 9月月更

小程序容器技术加入到混合App开发队伍

Geek_99967b

小程序 混合开发

「工作小记」接口请求数据的缓存实践

叶一一

前端 设计思维 9月月更

深入学习SAP UI5框架代码系列之四:HTML原生事件 VS UI5 Semantic事件

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

时代变了,企业网站应该这么策划内容

石头IT视角

对jdbc的讲解

楠羽

JDBC 笔记 9月月更

ShareSDK Android端主流平台分享示例

MobTech袤博科技

an'droid

2022-09-06:以下go语言代码输出什么?A:Hi All;B:Hi go All;C:Hi;D:go All。 package main import “fmt“ func app() f

福大大架构师每日一题

golang 福大大 选择题

数据治理的内核:数据质量

小鲸数据

数据治理 数据质量管理 数据质量 数据生命周期

业务应用小程序化,一种潜在的技术趋势

Speedoooo

小程序 移动开发 小程序容器

前端食堂技术周刊第 51 期:pnpm v7.10.0、8 月登陆网络平台的新内容、重新思考流行的 Node.js 模式和工具、打包 JavaScript 库的现代化指南

童欧巴

chrome Node React Chrome开发者工具 pnpm

轻松理解20种常用AI算法

Baihai IDP

AI 算法

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