又是一年年中时:由 Puppet 与 DevOps 研究与评估(简称 DORA)协会共同发布的最新《DevOps 现状调查报告(State of DevOps)》再度出炉。作为本轮的核心议题,双方分析了“高效领导者如何影响技术实践与流程改进,从而带来更为理想的 IT 与组织运作成效,同时确认称自动化水平已然成为不同企业之间的核心区别所在。”
今年,双方对 3200 名 IT 专业人士、开发人员以及高层管理者进行了调查,并发现每一年 DevOps 团队的人员规模都保持着持续上涨。三年之前,只有 16% 的受访者身为 DevOps 团队成员,但如今这一比例几乎翻了一番(达到 27%)。先来三张图解释这次报告
受访者图像
今年 Puppet 对全球范围约 3200 人进行的一次调查,包括高管,开发人员和 IT 专业人士。 最多的受访者来自拥有 100-499,500-1999 和 10k + 员工规模的组织,其中大多数来自 DevOps,IT Ops / 基础设施和开发 / 工程类别。
然而,性别比例偏差依然很大,女性和其他人分别占 6%和 3%。 北美的受访者人数最多(54%),欧洲和俄罗斯为 27%,亚洲为 10%。 科技公司去年仍然领先(34%),其次是金融服务(14%),其次是教育、零售、电信和政府机构,达到 6-8%。
调查中发现在 DevOps 团队工作的受访者人数在过去三年中从 16%上升到 27%,表明 DevOps 采用率有所上升。
高绩效 vs 低绩效团队的对比该报告区分了高绩效和低绩效的团队,并阐述了他们之间的差异。 与去年类似,绩效指标如下:
- 部署频率 - 部署到生产的频率
- 改变的交付时间 - 如何快速地将新的变化推向生产
- 平均恢复时间(MTTR) - 从故障中恢复的平均时间(中断)
- 更改故障率 - 更改导致部署管道故障的频率
与上一年相比,高绩效者在所有指标上有所改善。 它们的代码部署频繁 46 倍,MTTR 快 96 倍。 不过,与上一年相比,表现较差的人员在多项指标方面也有所改善。
自动化实践显着上升,特别是在高绩效团队中,28%的配置管理和 26%的部署已被自动化。
此份报告显示,高成效 DevOps 团队在代码生成量与稳定性方面优于低成效团队。根据结论,高成效 DevOps 团队拥有:
- 46 倍于低成效团队的代码部署频率
- 440 倍于低成效团队的代码提交至代码部署实施速度
- 96 倍于低成效团队的停机后平均恢复速度
- 变更故障率仅为低成效团队的五分之一(即二者变更故障比率为 1 比 5)
通过与 2016 年的调查结果进行比较,Puppet 报告发现高成效团队与低成效团队在代码生成量(包括部署频率与变更速度)方面的差距有所缩小,但稳定性(平均恢复时长与变更故障率)则进一步扩大。
关注连续能力组织做连续交付(CD)的能力是通过两个因素衡量的:从需求到生产的部署能力,并快速响应团队中的每名成员。
为实现这些成果,需要顾及的因素包括综合版本控制、CI、基于中继的部署,包括软件交付过程中的安全性,测试和部署自动化。架构层面的服务和团队的松散耦合。服务之间的耦合性的衡量是从人们是否可以在不需要集成环境的情况下进行测试,以及这些服务是否可以独立于其他服务部署。
实现高性能 DevOps 的非技术方面包括精益产品管理。该报告将此定义为三个功能 - 将工作分成小批量,使工作流程可视化,收集,广播和实施客户反馈,并使开发团队有权在开发过程中创建或更改规范,而无需批准。
团队的领导本身还不足于决定高质量的 DevOps 落地,还要取决于是否有合适的架构和良好的技术实践。报告作者使用结构方程模型(SEM)作为衡量与软件交付相关的预测模型。
当企业决定采用 DevOps 理念时,其亦面临着众多前所未有的新问题,包括“如何吸引工程师的参与”以及“如何吸引领导者的参与”。
根据 Puppet 公司在报告中所言
“每个人都意识到杰出的领导者在成功实现 DevOps 转型工作当中的重要意义。”
“仅具备变革性特质的领导者并不足以带来理想的 DevOps 成果。”
这是因为领导者无法单凭一己之力实现 DevOps 转型成效。DevOps 能否成功亦取决于架构是否合适、技术实践是否良好、精益管理原则的使用方式以及我们多年来在研究中囊括的其它重要影响因素。
成功 DevOps 团队的普适性实践
重点在于持续交付
今年的报告归纳出以下将对持续交付带来积极影响的关键性因素:
- 全面采用版本控制机制;
- 持续集成与主干开发;
- 将安全性保障整合至软件交付工作当中;
- 采用测试与部署自动化方案。
在以上因素当中,测试自动化的的贡献效果最为突出。
团队层面的具体举措另外,以下团队整体层面的具体举措能够将持续交付成效提升至新的高度:
- 无需从团队外人士处获取批准即可对系统设计进行大规模变更。
- 无需其它团队变更自有系统或者承担大量相关配合工作,即可对系统设计进行大规模变更。
- 无需与团队外人士进行细化沟通及协调即可完成工作。例如无需经历多次预约及交流以获取反馈意见。
- 根据需求实现产品或服务的部署与服务,且相关工作不依赖于其它服务。
- 无需使用集成化测试环境即可根据需要完成大部分测试任务。
- 在正常营业时间内执行部署,且停机时长可以忽略不计。
赋权为成功之母这份报告指出,“众多号称实施敏捷化原则的团队仍然要求开发团队必须遵守由多个不同部门制定的具体规则。这种限制可能引发一系列实际问题,导致产品无法真正吸引客户或者受到客户青睐,亦无法提供与预期相符的业务成果。”
研究结果表明,各团队在开发过程当中能否切实尝试新鲜思路并对规范进行建立与更新(无需团队之外人士的批准),已然成为决定盈利能力、生产效率以及市场份额等核心团队成效指标的一大重要因素。
尽管报告作者并不建议开发人员完全依照个人思路处理工作内容,但其仍强调称“组织应将赋权的重要意义与以下能力衡量因素加以同等重视:分批工作 ; 在工作流中确保交付流程对每位成员保持透明 ; 并将客户反馈纳入产品设计当中。”
DevOps 现状解析:核心要点 1. 变革型领导者拥有五大共通性特质——制定愿景、鼓舞人心的沟通能力、脑力激荡、支持型领导风格以及个人认同感,这一切能够显著塑造团队的文化与实践方针,从而带来更高成效。
2. 高成效团队仍然保持着成果产出与稳定性优势。
3. 自动化成为企业竞争当中的核心优势。
4. DevOps 适用于一切组织机构。
5. 松散耦合结构与团队是实现持续交付的重要前提。
6. 精益产品管理有助于提升组织绩效。
这份报告最终给出结论
“由于几乎每一家企业皆依赖于软件方案,因此 IT 成效水平对于当前的各类企业皆拥有重要意义。IT 成效水平受到多种不同因素的影响,具体包括领导力、工具、自动化以及持续学习与改进型文化方针等等。”
写在最后的解读 一项值得注意的趋势是,2017 年年内最高成效团队与最低成效团队间的差距正有所减小——目前最高部署量仅为最低部署量的 46 倍,而同一指标在 2016 年的比值则高达 200 倍。另外,最高成效团队的代码部署频率与最低成效团队间的差异亦由 2016 年的 2555 倍缩小至 2017 年的 440 倍。
在另一方面,2017 年最高成效团队的平均恢复时间则要远快于最低成效团队(由去年的 24 倍提升至今年的 96 倍),二者之间的变更失败率则由去年的 1 比 3 降低至今年的 1 比 5。Puppet 公司推测,之所以出现上述状况,主要是由于低成效团队的行动速度有所提升,但却仍未能将开发时间投入真正运用于质量保障之上——这意味着此类低成效团队会遭遇更多失败,并需要更多时间以解决问题。
研究人员们亦在报告中写道:
“高成效团队很清楚,他们并不需要为了稳定性而牺牲速度——反之亦然,因为他们在工作当中充分保证质量水平,从而同时满足这两项需求。”
参考文章:
https://www.infoq.com/news/2017/06/puppetlabs-devops-report-2017
https://www.theregister.co.uk/2017/06/06/state_of_devops_low_performers_are_fast_but_ignore_quality/
https://jaxenter.com/puppet-state-devops-2017-134662.html
感谢木环对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论