写点什么

为 DevOps 正确组合 IT、文化和实践

  • 2015-12-09
  • 本文字数:1966 字

    阅读完需:约 6 分钟

Nicole Forsgren 发表了 GOTO Berlin 2015 第一天的闭幕主题演讲。她介绍了高效组织如何部署 DevOps 和精益管理,实现快速和可靠交付。

InfoQ 对她进行了采访,关于为什么组织开始拥抱 DevOps 方法,拥有快速部署能力的同时如何提高 IT 稳定性,为了提高性能当改变组织文化时应该关注什么,精益管理如何帮助提高性能,和其对组织希望采用 DevOps 提高性能时的建议。

InfoQ: 2015 年 DevOps 现状报告讨论了高效组织,他们能够更快速和最可靠地交付代码。您能解释一下为什么这些结果令人关注,为什么组织在他们的软件开发和交付过程中开始拥抱 DevOps 方法?

Forsgren:2014 和 2015 年的 DevOps 现状报告都表明高效的 IT 组织在生产能力——比如每天部署的内容和循环时间速度——和稳定性——恢复和改变成功率的平均时间,方面都比对手好得多。在软件交付过程中同时交付生产能力和稳定性的能力是一个巨大的附加价值,这种附加价值一直被传统的 IT 认为是不可能实现的。也就是说,我们总是被告知需要在生产能力和维持稳定性之间做出权衡取舍,但是 DevOps 却可以承诺实现这种附加价值。报告数据表明生产能力和稳定性度量呈现相同走势——有效但是不支持 ITIL 声称的为了获得稳定性需要权衡生产能力。报告数据不能表明为了稳定性需要权衡生产能力。这对客户意味着什么呢?增加了的生产能力意味着在维护越来越多的可靠软件和基础设施的同时,能够更快地将内容和新功能推向市场,或者是对承诺和政策法规的变化更快的响应能力。

InfoQ:您能否解释一下,在拥有快速部署能力的同时如何提高 IT 稳定性?

Forsgren:快速部署来自于快速的循环时间(代码提交到代码部署的时间)和高的部署频率,这些通常都是高度集成工作的成果,适用小批量。这些小批量允许开发人员快速发现并修复问题,这非常有利于稳定性。同时它还允许快速修复过程,这也有利于稳定性。因此,你能够想象这两种场景:在新的范式里,开发人员提交了一个新的变更,它会自动测试、构建和——如果测试通过——经过批准部署到生产环境中。在这种场景下,大部分错误能够在早期被发现,降低了变更失败和中断服务的概率,即使变更失败或者中断了服务,恢复服务的时间也非常短。在旧的范式里,开发人员往往会为大段的代码忙上数周甚至数月,最终才会被部署到生产环境中。在第一种场景中,如果部署失败,仅仅需要对一小段代码进行调试;很容易发现问题并找到解决方案。在第二种场景中,那种及其庞大的代码对生产环境而言是一个很大的变更,因此发现问题不太可能,即使发现了,调试如此大的代码费时费力——引入这种变更到生产环境中在某种程度上,增加了失败或者中断服务的概率。并且紧急变更会受漫长而缓慢的部署过程的牵制,进一步减慢了恢复服务的时间。

InfoQ:如果组织希望改变组织文化从而提高性能,那么他们应该关注什么?

Forsgren:在 DevOps 范式中,优良文化的关键因素在于信息流和信任。它们非常的重要,因为它们将不总是在一起工作,甚至有竞争目标(开发人员试图交付最大化内容到生产环境,而运维团队希望维持稳定性——通过停止向生产环境交付任何变更)的团队团结起来。信息流允许这些团队一起沟通他们如何做和为什么这么做,信任促进同理心的成长,填充了存在的隔阂。有些关键实践常常可以用来培养信息流和信任,比如站立会议和无指责性的事后评估。

InfoQ:您能否解释一下精益管理如何融入这一切?精益管理如何帮助提高性能?

Forsgren:哇。我真不知道从哪说起,因为精益管理指导了太多的 DevOps 运动。高的生产能力和单件流是精益制造理念和消除浪费的核心组成部分,因此它是 IT 性能定义的一大部分。它同样出现在持续集成中,用快速反馈展示了它的重要性。它甚至在某种程度上以运动的名义呈现自我:DevOps 将开发和 IT 运维团队更紧密的团结起来,可能甚至是物理方面。通过使用制造单元——专门向组织交付价值,我们可以在精益制造中看到这种现象,他们重新调整团队,成为更紧密、更严格的单位,从而减少切换成本和优化沟通。2015 年 DevOps 现状报告调研了精益的额外具体实践,比如限制在制品和可视化,并且发现它们对 IT 性能有着显著的影响。

InfoQ:对于希望应用 DevOps 提高性能的组织,你有什么建议?

Forsgren:当你决定开始应用 DevOps 时,你需要牢记它不仅仅是自动化和工具;你还需要关注你的过程和文化。为此你还需要捕捉度量:没有度量你就不能提高。除此之外,选择合适的项目也非常的重要。挑选一个向业务交付价值的项目,包括拥有关键技巧的成员(比如开发,QA,测试,运维和安全等等。)和挑选一个可以在四个月以内交付原型的项目。使用早期项目迭代和学习,并将经验教训扩展到业务的其它领域,在整个过程中不断交付价值,Target 和 Nordstrom 对成功采用这种方法非常有经验。

查看英文原文: Having the Right Mix of IT, Culture and Practice for DevOps

2015-12-09 17:061944
用户头像

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

关注

评论

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

春种一粒粟:企业如何修炼好云原生内功?

脑极体

云原生

一图读懂 | 2023年中国企业数字化技术应用十大趋势

易观分析

数字化 数字经济

LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注释

Lee Chen

JavaScript 算法 LeetCode 哈希表

体验AI乐趣:基于AI Gallery二分类猫狗图片分类小数据集自动学习

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

火山引擎DataTester:在广告投放场景下的A/B实验实践

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

MQTT QoS 0,1,2介绍

EMQ映云科技

物联网 IoT mqtt QoS 企业号 2 月 PK 榜

MQTT保留消息是什么?如何使用?

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 保留消息

飞书与钉钉的真正竞争在这

B Impact

苏宁基于 AI 和图技术的智能监控体系的建设

NebulaGraph

运维 图数据库

为什么面试 SaaS 产品经理一定要问权限管理?

产品海豚湾

产品经理 SaaS 权限管理 B端 产品面试

借力英特尔® Smart Edge,灵雀云 ACP 5G 专网解决方案获得多维度优化加速

York

云原生 5G 系统架构 边缘计算 英特尔

Matic链矩阵公排智能合约挖矿dapp系统开发详情(案例演示)

开发微hkkf5566

LeetCode:240. 搜索二维矩阵 II,二分查找,详细注释

Lee Chen

JavaScript 算法 LeetCode

企业微信的聊天机器人来了!免费下载,Python自动化办公

程序员晚枫

Python 聊天机器人 企业微信

热点面试题:JS 中 call, apply, bind 概念、用法、区别及实现?

Immerse

JavaScript call apply bind 前端面试题

软件测试/测试开发 | app测试中常用的Android模拟器

测试人

android 软件测试 自动化测试 测试开发

修改ctags让fzf.vim插件显示C,C++方法声明的标签

Geek_pwdeic

ctags fzf.vim

ChatGPT:将一个「营销小助手」请回家

FinFish

AI AIGC ChatGPT

架构训练营-模块五作业

Sam

架构实战营

京东力荐!深入理解高并发编程手册,GitHub上线3小时飙升榜首

Java 并发编程 高并发

微服务-常见配置中心工作原理

Java 微服务 配置中心

华为云API Arts:用“1+1+5”的模式,为你带来API-First体验

华为云开发者联盟

云计算 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

立即执行函数在前端国际化方案中的应用

xiaoxi666

架构实战 7 - 王者荣耀商城异地多活设计

架构实战营 「架构实战营」

2023-02-20:小A认为如果在数组中有一个数出现了至少k次, 且这个数是该数组的众数,即出现次数最多的数之一, 那么这个数组被该数所支配, 显然当k比较大的时候,有些数组不被任何数所支配。 现在

福大大架构师每日一题

算法 rust 福大大

到底怎么理解分布式事务

墨天轮发布数据库行业报告,亚信科技AntDB“超融合+流式实时数仓”开启新纪元

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库 企业号 2 月 PK 榜

软件测试/测试开发 | 想做App测试就一定要了解的App结构

测试人

软件测试 自动化测试 测试开发 app测试

为DevOps正确组合IT、文化和实践_方法论_Ben Linders_InfoQ精选文章