2023全球软件制品应用报告

5月18日深度解读JFrog · 2023全球软件制品应用报告
分享目前业界软件包流行程度和应用趋势,为您2023年的项目提供参考

《全球软件制品应用报告》简介

Stack Overflow 的 Developer Survey 和 Tiobe Index 等工具为 IT 和开发运维负责人提供了有用的资源,有助于在启动新项目时了解最新技术趋势和编程设计。这些报告也可以作为参考,帮助开发人员或 DevOps 工程师决定如何提升自己或其团队的技能。然而,这些报告只依赖于间接数据,如调查、GitHub 仓库或谷歌趋势,未必能全面洞悉哪些语言是真正在生产环境中运行或适合企业使用的。

JFrog 提供广泛而深入的软件包支持,拥有庞大的客户群,具备独特的分析优势,对当今最终用户为创建软件所真正使用的技术了如指掌。我们在全球拥有超 7000 家企业用户,包括财富 100 强中的大多数公司,支持从单一用户到最大型企业的各种应用规模。这份《全球软件制品应用报告》简要说明了软件包流行程度和应用趋势,内容真实可靠。

软件包为何重要?

编程语言流行度是说明开发人员偏好和趋势的一个指标,但软件包和二进制文件才是企业将软件从设计交付到生产所使用的真正组件。鉴于大多数软件包类型最多只支持一种或两种语言,因此软件包流行度也能相当可靠地反映编程语言流行度。

研究方法

用于排名和分析的数据收集自 2021 年 10 月至 2022 年 10 月期间,基于 JFrog Artifactory 使用情况,并按分类汇总如下:
~7K
JFrog 客户
~27K
Artifactory 服务器
~4.2M
Artifactory 仓库
PETA­­BYTES
制品
BILLIONS
制品操作
85%
财富 100 强企业
软件包流行度基于维护的仓库总数以及针对特定软件包类型所采取的操作总数。
少数企业可能会为特定软件包创建不限数量的仓库,从而导致排名偏离真实情况,但由于我们也着眼于制品操作,因此可以真正地知道哪种软件包类型正在作为开发过程的一部分被积极使用。

发现

软件技术排行榜
排名 软件包类型 仓库数量 同比增长 (%)
1 Docker 1,330,329 10.11%
2 Maven 1,183,167 18.79%
3 Npm 313,992 19.61%
4 YUM 307,549 10.36%
5 Helm 244,582 33.67%
6 Pypi 206,830 29.51%
7 NuGet 172,989 31.54%
8 Debian 114,737 21.56%
9 Gradle 62,842 22.80%
10 GitLfs 48,734 26.34%
11 Go 40,481 29.10%
12 Gems 34,292 17.93%
13 Conan 23,423 29.64%
14 Ivy 21,537 19.90%
15 Conda 20,247 23.78%
16 SBT 17,262 16.82%
17 Composer 12,909 38.74%
18 CRAN 12,151 36.15%
19 Bower 12,124 8.36%
20 P2 10,771 5.48%
21 Chef 10,547 14.27%
22 CocoaPods 9,011 28.39%
23 Vagrant 8,424 11.53%
24 Puppet 6,360 21.97%
25 Alpine 5,535 49.81%
26 VCS 4,961 18.48%
27 Rust (Cargo) 4,205 67.13%
28 Opkg 2,993 32.31%

软件技术趋势
单击下面的按钮选择趋势结果。

洞察

容器为王

容器化应用程序已经改变了我们打包软件并交付给最终用户的方式。Docker + OCI 容器和 Helm Charts 的使用量快速增长(从 2020 年 1 月到 2022 年 10 月分别增长了 5 倍),这表明企业对 DevOps普遍采取云原生的方法。

虽然 Kubernetes 早在 2013 年就已经面世,但直到最近才开始走向主流,被大型企业用作容器部署解决方案——目前它仍在不断完善——所以请继续关注进一步的发展趋势。

为物联网和边缘设备做好准备

IDC 的数据显示,到 2025 年,物联网设备数量预计将增长到 416 亿台,产生的数据量将超过 74.9 ZB (物联网和数据放置)。 企业需要一种向边缘设备交付软件的策略。C/C++ 是主要的物联网设备软件编程语言,因为大多数物联网设备都基于微控制器。Conan 是常用的 C/C++ 部署管理器,可以更容易地向边缘和物联网设备交付更新,因为它是基于软件包,而不是使用标准的依赖项管理。这有助于提升物联网设备软件开发的速度和一致性。

从 2020 年 1 月到 2022 年 12 月,Conan 的使用量增加了 5 倍,这可以表明更多的公司正在为边缘设备进行设计。

传统技术语言实力未减

虽然 Rust(Cargo) 等新兴编程语言引起了大量关注,但 Java、JavaScript、Python 和 C/C++ 等传统编程语言在现代软件开发中的地位不可撼动。例如,我们的数据显示,超过 90% 的企业维护 Maven 仓库,这清楚地表明企业并没有放弃使用传统编程语言。

确保内存安全

糟糕的内存管理会导致许多漏洞。甚至美国国家安全局也呼吁企业在构建应用程序时采用内存安全语言。安全性只是开发人员对 Rust(Cargo)、Swift 和 Go 等新兴语言感兴趣的众多原因之一。例如,Rust 本质上是以内存管理为标准来打造的,它还有助于实现“零漏洞”,提高安全性,这意味着开发人员可以在编程时意识到任何潜在的问题。然而,即使是 Rust 也有其不足之处,需要持续地加以监控。

Rust(Cargo) 仓库的数量从 2022 年 1 月到 2022年 10 月增加了 30%。Rust、Swift 和 Go 等新兴语言提供了内置的安全机制,可以更好地支持软件包方式的开发,可靠性更高。Log4Shell、Solar Winds 和其他软件供应链恶意攻击的广泛影响和教训也激发了人们对内存安全语言的兴趣。



Terraform:基础设施即代码标准

自从 5 月份开始支持 Terraform 以来,Terraform 仓库的使用量快速增长,是我们已引入的增长最快的新软件包类型之一。企业发现,将这些文件的管理从 Git 和其他存储选项转移到基于二进制文件的全功能管理解决方案是有好处的,这种解决方案可以保证 Terraform 文件的安全,并与部署和运行软件所需的其他组件一起随时可用。

开发组织 软件包使用趋势的其他洞察

除了软件包在开发人员中的流行度之外,JFrog还审视了开发组织中软件包的使用情况,比如使用了多少种软件包类型,制品的种类和大小,组织中开发人员的平均数量等等。以下是基于这些数据的一些其他洞察。

软件开发涉及多种语言和技术

如今越来越庞大的软件供应链涉及多种技术和语言,可以跨本地、云和混合云环境交付应用程序。广泛的企业样本(不同的企业规模和行业)显示,企业使用的软件包类型数量平均为七种或以上。在规模较大的组织中,这一数字更高,达到 29 种之多。
软件交付中使用的软件包类型数量
*数据来源于JFrog Artifactory SaaS版产品应用情况。

制品数量更多,体积更大

使用 Docker 和 Kubernetes 等容器化技术的组织呈指数级增长,制品的大小也随之增长。此外,更多大型组织维护的制品数量也更多。
管理的制品总数
管理的制品总量(GB)

更多的用户,更多的仓库

随着企业的发展,企业往往使用更多的仓库来组织和保护制品。适当的仓库管理策略和基于角色访问控制系统有助于协调各个开发团队,并确保按需访问正在广泛使用的常见软件组件。
开发组织的规模
组织占比

2023年软件包应用趋势预测

疫情无疑促使各个行业加速向云迁移,导致Kubernetes(K8s)等云原生技术和Docker等容器化方法的使用有所增加。此外,随着员工们返回办公室办公,人们重新“上路”,云和协作工具将日益普及,远程和移动使用的设备将越来越多。

这一趋势将继续推动云原生技术的使用,这给开发人员带来越来越大的压力,他们必须迅速交付以移动优先的特性和功能,同时确保这些特性和功能始终是安全和最新的。Gartner的调研结果显示,到2025年,超过85%的组织将采用云优先原则,如果不使用云原生架构和技术,就无法贯彻其数字化战略。1 不要被你的竞争对手远远甩在身后。

从人才的角度来看,这可能意味着企业的用户体验、云原生或移动优先设计团队需要更多的开发人员。虽然仍有一些行业由于业务数据所在位置、数据隐私/主权、监管要求等原因,向云迁移的速度较慢。但随着软件包种类、数量和大小不断增长,企业转向云和K8s的总体趋势将继续加速。我们还可能会看到越来越多的公司借助Terraform等框架来应用云基础设施的动态特性。

从我们自己的数据以及行业和经济的发展趋势来看,考虑到用于支持加密货币、元宇宙、云游戏和区块链等技术的制品种类和大小不断增加,我们预计Docker和容器的使用量将保持强劲增长。

虽然对“元宇宙”还没有定论,但我们看到许多企业涉足这一领域,推出更大的制品,扩大C++、Python、Rust(Cargo)以及容器化技术的使用范围。与此同时,C++、Python和Java使用量的增加也标志着区块链技术得到更广泛的开发和应用,这符合业界对安全性的强烈关注,更具体地说,是确保软件供应链的安全。Rust、Java和JavaScript等传统语言热度不减,这也标志着许多组织正在推动新一代互联网应用,借助去中心化的Web基础设施来创建新的应用程序工作流。

总而言之,考虑到由各种软件语言支持的许多不同用例,企业应寻找一个全面且通用的平台,让他们可以从端到端管理整个软件供应链,同时促进团队协作,提高可伸缩性、一致性和安全性。

*https://www.gartner.com/en/newsroom/press-releases/2021-11-10-gartner-says-cloud-will-be-the-centerpiece-of-new-digital-experiences

*报告中展示的制品数据均来自于JFrog Artifactory SaaS 版产品应用情况。

Release Fast Or Die

想要更深入了解数据? 向我们的专家提问?
参加我们即将举办的网络研讨会