持续集成持续部署工具平台 CircleCI 发布了一份年度 "软件交付状态 (State of Software Delivery)" 报告,分析了来自 43000 多个组织、超过 29 万个项目的超 25 亿个工作流的数据。“利用这些数据,我们可以确定导致 DevOps 成功的习惯和做法,以便我们可以与社区分享这些经验和基准”。
同时,这项研究还揭示了团队工作时所采用的一些工具和技术的趋势。CircleCI 方面称,他们将在该本报告中深入挖掘基于 CircleCI 的组织中最流行的编程语言的数据。
CircleCI 上使用的前 25 种编程语言,按完成的工作量排名(2019-2021 年)
要进入前 25 名,一种语言需要在超过 15 万次的工作流中使用,要达到前 10 名则需要数百万次。报告揭露的一些趋势包括:
Typescript 超越 Javascript 成为最受欢迎的 DevOps 语言
研究称,TypeScript 成为 CircleCI 上最常用的语言的原因在于:首先,类型安全使开发人员能够在他们的 IDE 中或在编译时而不是在运行时捕获错误,从而降低将错误传送到生产中的风险。通过使代码更易于阅读、重构和共享,类型还支持跨项目的快速入门和协作。这些生产力和增强信心的好处是 TypeScript 在企业级采用的关键驱动力,也是对持续集成提供的开发者体验改进的自然补充。
值得注意的是,基于 CircleCI 构建的 TypeScript 项目在成功率和吞吐量方面均高于 JavaScript 项目,但在平均修复时间 (MTTR) 方面却没有。这支持了一个观点,即 TypeScript 帮助开发人员在本地捕捉较小的错误,使他们能够比 JavaScript 开发人员更频繁、更可靠地提交工作代码。然而,当 TypeScript 构建失败时,平均而言,调试比 JavaScript 项目更耗时。
Hashicorp 配置语言进入前 10 名
CircleCI 上 HashiCorp 配置语言 (HCL) 的使用量一直在稳步增长,自 2019 年以来攀升了三位,成为该平台上使用的第九大流行语言。事实上,在 GitHub 的 2018 年和 2019 年 “State of the Octoverse” 报告中,HCL 在增长最快的语言列表中也有一席之地。这表明,基础架构即代码 (IaC) 已经跨越了从个人从业者到大规模交付软件的组织广泛采用的鸿沟。
除了是第九大受欢迎的语言外,报告指出,HCL 的 MTTR 也是第二快的,仅次于 Gherkin。
Gherkin 将行为驱动开发带入前 20 名
Gherkin 是一种特定领域的语言,用于在 Cucumber 中定义测试场景,Cucumber 是一种支持行为驱动开发 (BDD) 的开源测试工具。Gherkin 位居榜单第 19 位,于 2020 年开始出现在 CircleCI 榜单上,在 2021 年实现上升,“这表明组织从开发过程的一开始就越来越重视跨团队协作和用户体验”。
在报告衡量的所有语言中,Gherkin 项目的 MTTR 最快。报告称,这可能意味着 Cucumber 的详细错误报告为开发人员提供了高度可操作的信息,以便他们专注于调试工作。而且,由于自动化验收测试位于测试金字塔的顶端,因此可以假设,在管道的早期阶段,进行更全面的单元和集成测试会捕获更多重要的代码缺陷,从而使此阶段的补救措施相对简单。
总的来说,这三个数据点都表明:精英软件交付团队正在采用人性化的工具和实践,使他们能够实现自动化和扩展,同时消除开发人员和管理人员的摩擦。在当今竞争激烈的生态系统中,快速行动的能力至关重要,但同样重要的是组织吸引人才、让员工快乐、消除信息孤岛和其他阻碍团队成功的障碍的能力。从开发语言到测试框架再到部署场景,高绩效者都倾向于鼓励协作、可重复性和生产力的工具。