2021 DevOps 报告综述

乔梁 | 2021-09-26

本文将概述来自 Puppet、DevOps Institute 和 DORA 的最新 DevOps 报告。我们将重点介绍以下每份报告中的重要信息。

Puppet’s 2021 State of DevOps

在 2021 年的报告中,Puppet 收到了来自世界各地的 2657 份回复,其中 32% 属于 1000 至 10000 名员工类别,40% 属于科技行业。

这份报告自上一份报告发布不到一年,它回顾了 DevOps 的历史演变,并强调了自动化、云、人员和文化对其成功的重要性。Puppet 指出,DevOps 已经发展到:

「许多“做得很好的DevOps”的团队甚至不再谈论DevOps,这只是他们的工作方式。」

然而,对于仍停留在半途上的组织来说,归根结底是为了更好地掌握技术和人员,以继续前进。

Puppet 发现,在这一中间群体中,阻碍和挑战从低端的技术、文化和组织的混合转变为高端的几乎完全是文化的(组织认同、风险规避、不完善的反馈循环、次优团队定义等)。

该报告还通过检查 DevOps 自发布报告以来的历史来设定水平,并着眼于 DevOps 是什么和不是什么的大局。

  • DevOps 不仅仅是自动化。高度发展的公司更有可能实现广泛和普及的自动化,但擅长自动化并不能使您擅长 DevOps 。62% 的接受调查的组织表示,尽管自动化程度很高,但他们在 DevOps 之旅中仍处于中期发展阶段。
  • 几乎每个人都在使用云,但大多数人使用得很糟糕。组织不应该仅仅因为使用云和自动化而期望高度进化。虽然 65% 的中度进化组织报告使用公共云,但只有 20% 的组织充分利用了云的潜力。
  • 团队身份和清晰的互动模式很重要。组织结构和动态阻碍了企业向最高层次的发展。「擅长 DevOps 」的组织拥有具有强大、易于理解的身份、具有高度自治的明确职责以及与其他团队的良好沟通渠道的团队。

其他主要调查结果还包括:

  1. 虽然中度进化的企业仍然存在文化障碍,例如组织对变革的抵制、遗留架构、技能短缺、缺乏自动化、目标不明确等,但对于低进化度的企业来说,文化障碍最为严重。
  2. 「DevOps团队」的存在让业界和许多组织感到困惑,在大多数情况下,这无助于组织的发展。Puppet发现,团队名称不那么模棱两可、职责定义更明确的组织更有可能拥有更高的 IT 职能。
  3. DevOps 实践支持良好的安全实践和更好的安全结果。随着 DevOps 实践的改进,DevSecOps 自然会跟进。
  4. 平台团队可以通过利用现有的自动化来加速 DevOps 转型,Puppet 的 DevOps 模型中发展最快的组织正在采用一种平台模型,该模型为开发人员提供自助服务,并管理开发人员体验。
  5. 使旧的(遗留的)IT 基础架构和应用程序现代化需要进行分析,将其分为易于理解的类别,并制定明确的目标和行动计划。

DevOps Institute 的 2020 报告

接下来,让我们看一下 DevOps Institute 2020 年技能提升报告。DevOps Institute 进行了这项研究,研究 DevOps 工程师连续第二年必须具备的必要技能。以下报告详细介绍了全球 1260 多名受访人员的调查结果,他们确定了哪些技能对 DevOps 和数字转型至关重要。

一些主要调查结果包括:

  • 目前主要使用的 DevOps 拓扑是一个巨大的挑战。
  • 对于超过 50% 的人来说,DevOps 的转型之旅仍然非常艰难。
  • Agile 、DevOps 和 ITIL 正面临来自 SRE 的激烈竞争。
  • DevOps 工程师被视为既是工作(job),又是角色。

谷歌 DORA 2021 DevOps 报告

今年,来自全球不同行业的 1200 名在职专业人士分享了他们的经验,以帮助 DORA 更好地理解推动更高绩效的因素。

从今年的报告中找到一些新发现:

  • 软件交付绩效度量的四个指标仍旧有效
  • 发现了第五个指标:从可用性到可靠性
  • 健康的团队文化可以缓解挑战时期的工作倦怠
  • 精英团队拉高了标准
  • SRE 和 DevOps 是互补的
  • 云应用继续推动绩效提升
  • 一个安全的软件供应链既至关重要,又能驱动性能
  • 良好的文档是成功实现DevOps功能的基础

文档

今年,我们考察了内部文档的质量,即团队工作的服务和应用程序的文档,如手册、READMEs,甚至代码注释。

我们通过以下程度来衡量文件质量:

  • 帮助读者实现他们的目标
  • 准确、最新且全面
  • 可查找、组织良好且清晰

记录和访问有关内部系统的信息是团队技术工作的关键部分。

我们发现,大约 25% 的受访者拥有高质量的文档,这种文档工作的影响是显而易见的:

文档质量较高的团队有更好的软件交付和技术运营(SDO)绩效的可能性是其他团队的 2.4 倍。文档质量好的团队比文档质量差的团队更快、更可靠地交付软件。文档不必是完美的。我们的研究表明,文档质量的任何改进都会对性能产生积极和直接的影响。

今天的技术环境中有越来越复杂的系统,以及这些系统不同方面的专家和专业角色。从安全到测试,文档是在这些专业化团队之间,以及与更广泛的团队共享专业知识和指导的关键方式。

我们发现,文档质量可以预测团队在实施技术实践方面的成功。这些实践反过来预测系统技术能力的改进,如可观察性、连续测试和部署自动化。我们发现具有质量文档的团队包括:

  • 实施安全措施的可能性提高 3.8 倍
  • 达到或超过其可靠性目标的可能性提高 2.4 倍
  • 实施网站可靠性工程( SRE )实践的可能性提高 3.5 倍
  • 充分利用云的可能性提高 2.5 倍

技术文档的质量指标参见:

  1. Software Documentation Issues Unveiled

  2. The Value of Software Documentation Quality.

  3. Cost benefits and quality of software development documentation:A systematic mapping. Journal of Systems and Software

如何改进文档的质量

技术工作包括查找和使用信息,但质量文档依赖于编写和维护内容的人员。

2019年,我们的研究发现,访问内部和外部信息源有助于提高生产率。

今年的研究进一步考察了所访问文档的质量,以及对文档质量有影响的实践。

我们的研究表明,以下做法对文档质量有显著的积极影响:

  1. 记录产品和服务的关键用例。关于系统的文档很重要,用例允许读者将信息和系统投入工作。
  2. 为更新和编辑现有文档创建明确的指导原则。大部分文档工作都是维护现有内容。当团队成员知道如何进行更新或删除不准确或过时的信息时,即使系统随时间变化,团队也可以保持文档质量。
  3. 定义所有者。拥有高质量文档的团队更有可能明确定义文档的所有权。所有权允许明确负责编写新内容和更新或验证对现有内容的更改。具有高质量文档的团队更有可能声明文档是针对他们所处理的应用程序的所有主要功能编写的,明确的所有权有助于创建这种广泛的覆盖范围。
  4. 将文档作为软件开发过程的一部分。创建文档并在系统更改时进行更新的团队拥有更高质量的文档。与测试一样,文档创建和维护也是高性能软件开发过程的一个组成部分。
  5. 在绩效考核和晋升中,识别文档工作。识别与总体文档质量相关。编写和维护文档是软件工程工作的核心部分,这样处理文档可以提高其质量。

我们发现支持高质量文档的其他资源包括:

  1. 关于如何编写和维护文档的培训
  2. 对代码样本或不完整文档的自动化测试
  3. 指南,如文档风格指南和面向全球读者的写作指南

文档是成功实现 DevOps 功能的基础。更高质量的文档增强了对单个 DevOps 功能(如安全性、可靠性和充分利用云)的投资成果。实施支持质量文档的实践通过更强大的技术能力和更高的 SDO 绩效获得回报。