CDF全球调查:软件交付性能停滞不前
持续交付(Continuous delivery,CD)是一种软件开发实践,它使开发者能够可靠、安全地发布小型、频繁的软件更新。不久前,持续交付基金会(Continuous Delivery Foundation ,CDF)发布了《持续交付状态报告》。报告数据基于 SlashData 开展的三次 Developer Nation 调查,调查持续了12个月,覆盖全球 5.5 万多名软件开发者。报告部分观点如下:
一、 DevOps 实践已经较为普遍
截至 2021 年第三季度,仅四分之一 (26%) 左右的开发者没有参与 DevOps 相关的活动,这表明,精益软件交付实践已经被广泛采用。虽然大多数开发者都参与了 DevOps 实践,但只有极少数(仅 5%)的开发者将自己或他们的职位认定为 DevOps 工程师/专家。
持续集成是最流行的 DevOps 活动,32% 的受访开发者将持续集成作为其部署过程的一部分。紧随其后的是持续部署,被 29% 的开发者使用。另外,44% 的人使用持续集成或持续部署。
只有 18% 的开发者同时使用持续集成和持续部署 ( CI/CD ) ,将代码开发管道完全自动化到部署和操作中的还不到五分之一。报告认为,目前仍处于过渡的早期阶段,即从分阶段的开发方法到完全精简的软件交付方法。
DevOps实践广泛应用于软件经济的各个部门,而不仅仅是以互联网为中心的应用程序或复杂的分布式系统。此外,嵌入式软件项目与后端开发者一样有可能从事 DevOps 活动。
即使是在实践者最少的游戏开发领域,都有三分之二的开发者以某种方式参与了DevOps。
DevOps 在各种规模的企业/组织中很普遍,在 2人及以上规模的企业中,超过 80%的企业参与DevOps。
二、软件交付性能停滞不前
该调查还从代码更改的交付周期、部署频率和服务恢复时间来了解当前企业/组织的软件交付性能。
结果发现,优秀的软件交付吞吐量(用代码更改的交付周期和部署频率来衡量)还不是很普遍。14% 的开发者表示,从代码签入(check in)到成功运行在生产线上,平均需要不到一天的时间。
在交付周期方面,表现最佳者(指交付周期少于一天),比例略有下降,从 17%(2020 年Q3)下降到 的14%(2021 年Q3)。
只有 11% 的人表示,他们每天都会定期将代码部署到生产环境中。还有近三分之一的人表示,他们仍然手动将代码部署到生产环境。
近一半的开发者表示,计划外停机恢复服务不会超过一天。
交付周期小于1天的企业中,大型企业仅占13% ,而往年同期为 18%。相比之下,中型企业占比从 16% 下降到 14%,小型企业中占比从 9% 下降到 17%。
软件交付的稳定性(以计划外中断服务后恢复所需的时间来衡量)显示出类似的情况正在下降。表现最佳者(指1小时内恢复服务)的比例在 12 个月内从 17% 下降到 13%,超过一半的受访者表示,需一天以上的恢复时间。在这一指标中,表现不佳的往往是中型企业。
人们普遍认为,增加吞吐量会对软件交付过程的可靠性产生负面影响。然而,研究却表明:速度和稳定性往往是齐头并进的。
在交付周期方面表现最好的人(约占 30%),同样也在软件交付稳定性方面表现最好。相应地,在软件交付吞吐量方面表现不佳的人中,只有 6%在稳定性方面表现良好。
三、可利用工具提高软件交付性能
CD Foundation 的执行董事 Tracy Miranda 认为,一方面是软件系统变得非常复杂,另一方面是开发人员普遍缺乏经验。她补充说,经验在提高软件交付的速度和可靠性方面发挥着重要作用。
持续交付与持续集成这两种 DevOps 实践是互补的,但持续交付需要一定程度的工程专业知识,这正是很多开发者缺乏的。调查显示,只有不到四分之一 (23%) 的受访者参与了基础设施配置和管理;相比之下,有近三分之一 (32%) 涉及了应用程序和基础设施监控;此外,只有 20% 的人参与了创建自动化测试。总的来说,调查结果表明,在将 DevOps 实践的责任进一步转移给开发者方面,还有很长的路要走。
事实上,为了解决这些问题 ,越来越来的 DevOps 平台工具正在涌现,如 JIRA、Maven、Ansible 等,覆盖从规划、编码、构建、测试、发布、部署和维护的软件生产全过程。