11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

DevOps,一场更深入的敏捷文化变革

  • 2010-12-05
  • 本文字数:1895 字

    阅读完需:约 6 分钟

12 月 7 日和 8 日,在北京世纪金源大饭店将举行《 O’Reilly Velocity China 2010 ── Web 性能和运维大会》,这不禁让人联想起最近在业内流行的一个热词,即“DevOps”。从名字上不难想到是由“Development”和“Operations”两个英文单词合并而成。那么究竟什么是“DevOps”呢?业内人士对它的看法又是怎样的呢?

Wikipedia 上对它的定义是:

DevOps 是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。 它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。 … DevOps 并不仅仅关注软件部署,它是部门间沟通协作的一组流程和方法。

这个定义似乎并没什么特别新鲜的内容,您可能会说:“我们的日常工作中不是一直需要各部门间的紧密协作吗?”然而,就象很多敏捷实践(比如迭代开发、每日构建)一样,它们在“敏捷”一词出现之前就已被应用到工作中,但敏捷让这些实践有机地结合在一起,发挥出前所未有的作用。敏捷强调打破需求、开发和测试之间的隔阂,形成自组织的跨功能交付团队,而 DevOps 则又向前迈进一步,强调以业务目标为导向,推倒交付团队与运维团队之间那道墙,将敏捷开发理念延伸至运维领域,使我们在 IT 方面的投入可以快速地转化为业务价值,从而打通“需求提出”到“上线运行”之间的所有环节。正如 Puppet Lib 的运维总监 Kartar 所说:

DevOps 就是试图避免重大失误,并更聪明且高效地工作。它是一种旨在促进开发和运维两个团队相互合作、学习的思想、原则和框架。在一个 DevOps 环境中,开发人员和系统管理员建立关系、流程和工具,让他们可以更好的交互,并最终为客户提供更好的服务。

作为 DevOps 的倡导者,独立 IT 咨询师 Patrick Debois 认为,DevOps 对下述问题的解决有很大帮助:

  1. 对变更的恐惧。一旦软件应用正式上线以后,业务方面往往害怕变更。他们认为软件本身和它所依赖的软硬件平台都很脆弱。所以对于任何变更都可能需要一个冗长的流程来保证。
  2. 部署充满了风险。因为没有人对软件质量有信心,比如不能肯定它是否能够处理生产环境中那么多的负载。
  3. 它在我的机器上没有问题!”常常听说开发人员这么说,而运维团队的确遇到了麻烦。
  4. 部门壁垒。开发人员和运维人员认识世界的方法,以及各自所处的角色,存在根本性的差别。他们都认为自己的做法是正确的。开发和运维团队通常处于公司组织架构的不同部分,通常具有不同管理者的和竞争关系,而且通常工作在不同的地点。

敏捷开发现已渐成主流。而随着虚拟技术和云计算的成熟与发展,对原有的运维模式与要求也发生了变化。 Joyent 的系统部总监 Ben Rockwood 认为:

“Devops 是下一代的 ITIL,即大众 ITIL。Devops 说:‘运维要为业务服务,而不能在角落里做极客’或者‘运维需要度量所有方面,比如发布流程、变更管理和版本控制等’。而更多的人认为,ITIL 再次火了起来,不只是 ITILv3,还有 CobiT, CMMI, ISO20K, ISO27K 等。”

Thoughtworks 敏捷发布管理工具GO 的产品经理 Jez Humber 在其博文《持续交付与ITIL:变更管理》中指出,ITIL 完全可以通过“持续交付”来实现一个轻量级的ITIL。 Tripwire 公司创始人 Gene Kim 写的《 Visable Ops 》中也阐述了如何用现实且合理的方式实现 ITIL。

另外,目前也有工具链对 DevOps 提供了强有力的支持,它覆盖了监控、准备、配置管理以及控制等方面,逐渐形成该领域中流程及工具标准化的生力军。作为 DevOps 运动的实践者,ThoughWorks 的 IT 主管 Ajey Gore 介绍说:

“在 ThoughtWorks 内部,我们已经在全球 22 个办公室的 500 多台服务器和虚拟机上安装了 Puppet。在公司内部,我们现在 - 建立了 Puppet 的版本控制库。

  • 每个 Puppet 服务器每 30 分钟会检查一次版本控制库。如果发现有变更,就会进行本地更新,并重新启动服务器。
  • Puppet 服务器也检查 puppet 脚本,反过来重新启动版本控制库。
  • 如果有 Puppet 服务器出了问题, Nagios 就会告诉我们那台服务器上的 Puppet 没有运行,我们就可以修复它了。

综上所述,在思想上,DevOps 是敏捷理念向运维领域的延伸;在流程上,它是“需求”到“上线”全线贯通的关键;在工具及技术准备上,虚拟技术、云计算以及各类工具的日趋成熟,为这场变革奠定坚实的基础。

尽管大家对 DevOps 的看法不尽相同。但只要您把它看作是一种文化的演进,让交付团队与运维团队互相学习,互相帮助,成为真正的跨功能一体化团队,为客户提供更好的服务,最终也就达到了它的目标。


感谢张凯峰对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2010-12-05 21:224337
用户头像

发布了 100 篇内容, 共 19.4 次阅读, 收获喜欢 4 次。

关注

评论

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

全面解析ArrayList,超详细!

程序员的时光

面试 ArrayList JAVA集合

数据结构与算法系列之栈&队列(GO)

书旅

数据结构与算法 Go 语言

数据结构与算法系列之链表操作全集(三)(GO)

书旅

数据结构 Go 语言

会展云技术解读 | 面对突发事故,APP如何做好崩溃分析与性能监控?

京东科技开发者

云计算 云服务

mongodb 源码实现系列 - 网络传输层模块实现三

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 分布式 高性能 分布式数据库mongodb

移动安全加固助力 App 实现全面、有效的安全防护

蚂蚁集团移动开发平台 mPaaS

安全攻防 App风险 mPaaS

架构师训练营第 1 期 第 7 周作业

李循律

极客大学架构师训练营

第七周总结

tomcat打包成rpm包

lee

tomcat rpm

架构师训练营第八周总结

邓昀垚

简析低代码开发与传统开发的区别与优势

Marilyn

敏捷开发 低代码

阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版

阿里云基础软件团队

内核

大厂程序员必备的一套浏览器书签,我帮你整理好了。[下载导入浏览器]

小傅哥

Java 程序员 小傅哥 资料整理 浏览器书签

天啦撸!打印日志竟然只晓得 Log4j?

沉默王二

Java 日志 log4j

嗯,查询滑动窗口最大值的这4种方法不错...

王磊

Java 数据结构和算法

技术分享:WebAssembly能否重新定义前端开发模式?

葡萄城技术团队

webassembly

DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座

华章IT

数据库 postgresql

go-zero如何追踪你的请求链路

万俊峰Kevin

Trace microservice Go 语言

接口测试如何在post请求中传递文件

测试人生路

接口测试

第七周作业

《迅雷链精品课》第一课:认识区块链

迅雷链

区块链

架构师训练营第 1 期第 7 周作业

du tiezheng

极客大学架构师训练营

架构师训练营第八周作业

邓昀垚

极客大学架构师训练营

“开源软件供应链点亮计划-暑期2020”公布结果 基于ChubaoFS开发的项目获得最佳质量奖

京东科技开发者

大数据 开源 云原生

训练营第三周学习总结

爱码士

训练营

终于啃完了这份Java核心原理+框架“面试圣经”,成功五面上岸美团

Java架构追梦

Java 架构 面试 微服务 框架开发

第 7 周 性能优化(一)总结

蓝黑

极客大学架构师训练营

2020LF AI&DATA DAY(AI开源日):中国开源社区迈入全球化新征程

分库分表的 9种分布式主键ID 生成方案,挺全乎的

程序员小富

分库分表 Java 分布式

架构师训练营第 1 期第 8 周作业

业哥

【涂鸦物联网足迹】API及SDK介绍

IoT云工坊

软件开发 物联网 API sdk 云平台

DevOps,一场更深入的敏捷文化变革_敏捷_乔梁_InfoQ精选文章