写点什么

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

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

关注

评论

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

基于区块链的去中心化身份技术有哪些应用前景?

CECBC

基于HTML5/CSS/JS响应式圣诞老人过悬崖小游戏

海拥(haiyong.site)

28天写作 12月日更

小程序的昨日与今天

王字 Wannz

小程序 小程序生态 开发框架 finclip

DataPipeline与飞腾完成产品兼容性互认证,携手共建自主IT底层生态

DataPipeline数见科技

cpu 数字化转型 中间件 数据融合 数据管理

通过元宇宙远程上班有的搞吗?

王字 Wannz

虚拟现实 元宇宙 凡泰极客

Flink Hudi 0.10.0 发布,多项重要更新,稳定性大幅提升

Apache Flink

大数据 flink 编程 数据湖 Hudi

从零到一,我也能写小程序

王字 Wannz

小程序 小程序市场 finclip 小程序框架

CSS之变量

Augus

CSS 12月日更

Python代码阅读(第70篇):删除列表一边的n个元素

Felix

Python 编程 Code 列表 阅读代码

权威专访|对话凡泰极客联合创始人杨涛: 小程序生态市场潜力广阔

王字 Wannz

小程序 移动应用 小程序生态 凡泰极客

浅谈前端角色权限方案

王字 Wannz

前端 权限控制 finclip

CameraX入门笔记

Changing Lin

12月日更

数字化转型时代,如何让你的 App 摆脱“内卷”?

王字 Wannz

小程序 去中心化 finclip 互联网生态

SIGCOMM 首篇 Multi-path QUIC 论文:阿里自研多路径传输技术XLINK

阿里巴巴终端技术

网络协议 传输协议 移动端 客户端 QUIC

Java、Go 和 Rust 的比较

百度开发者中心

Java Go rust

开发小程序的正确方式

王字 Wannz

小程序 小程序制作 finclip 凡泰极客 小程序框架

Flink CDC 系列 - 实时抽取 Oracle 数据,排雷和调优实践

Apache Flink

大数据 flink 编程 实时计算 CDC

语音合成(TTS)技术在有道词典笔中的应用实践

有道技术团队

人工智能 语音合成 网易有道

从高盛的技术“开源”看金融业软件发展未来

王字 Wannz

金融科技 开源项目 开源技术 小程序框架

优酷播放黑科技 | 基于WebRTC实现的直播“云多视角“技术解析

阿里巴巴终端技术

WebRTC 移动开发 直播技术 客户端

Gitee 如何自动部署 Pages?还是用 GitHub Actions!

冴羽

GitHub 前端 GitHub Pages gitee vuepress

决战下半场:小程序技术助力金融 APP 重回 C 位

王字 Wannz

小程序 移动应用 数字化时代 finclip

架构实战营第 4 期 -- 模块三作业

烈火干柴烛灭田边残月

架构实战营

EMQ & 轻流:全托管物联网消息服务助力海量设备低代码智联

EMQ映云科技

物联网 mqtt

电竞进入5G时代!腾讯云联合腾讯游戏CROS首秀5G电竞专网

科技热闻

开发者供不应求,传统企业如何拥抱 DevOps ?

飞算JavaAI开发助手

你未必知道的 WebRTC – 前世、今生、未来

王字 Wannz

WebRTC 音频技术 元宇宙

【MongoDB学习笔记】MongoDB 快速入门

恒生LIGHT云社区

数据库 mongodb

架构训练营 week3 作业

红莲疾风

「架构实战营」

在Vue-cli中使用mock.js

CRMEB

京东金融云,三年造五力

脑极体

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