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 等,覆盖从规划、编码、构建、测试、发布、部署和维护的软件生产全过程。
但市面上的大部分工具能解决的都只是一部分问题,无法从根本上解决 DevOps 的落地问题。因此,近年来市场上也出现了一些开箱即用、集成功能的 DevOps 自动化平台,最近业内讨论度很高的飞算 SoFlu 软件机器人,就是一款覆盖软件全生命周期的自动化开发工具。开发者只需要输入相关指令,平台就能实现前后端全自动开发、全自动测试、全自动运维,做到一“人”全栈解决:后端开发、前端开发、测试、运维。对于有个性化开发需求的企业来说,该平台还支持用户开发自定义组件,进一步提高开发效率。依靠平台提供的自动化、可视化开发能力,可以大大降低开发门槛,配置灵活,非资深的开发人员即可轻松上手,可以达到一个 ID 相当于一个 10 人科技团队的效果。
对于 DevOps 实践中亟待解决的自动化测试不足的问题,飞算 SoFlu 软件机器人全自动测试平台做到随开发平台联动,开发测试一键关联,自动生成测试用例完成软件测试。一方面,软件质量可以通过工具、流程和管理予以保障,而不再依靠有丰富经验的软件工程师。另一方面,可以进一步降低沟通成本,提升沟通效率,让软件测试更加高效便捷。
另外值得一提的是,发布以来,飞算 SoFlu 软件机器人始终保持着持续更新,大大小小的迭代升级共计 50 余次。例如,近期发布的版本更新中一大亮点就是新增了对接 Jenkins 的功能,快速进行 CI/CD, 实现敏捷开发。
评论