Situation actuelle des artefacts logiciels
par JFrog 2023

Les principaux composants logiciels utilisés aujourd'hui pour optimiser vos projets en 2023

Introduction à la situation actuelle des artefacts logiciels par JFrog

Des outils tels que l’enquête auprès des développeurs de Stack Overflow et l’indice Tiobe sont des atouts utiles pour les responsables informatiques et logiciels, afin de comprendre les dernières tendances de développement et les préférences de conception de programmation à prendre en compte lors du lancement de nouvelles initiatives. Ces rapports peuvent également être utiles aux développeurs ou aux ingénieurs DevOps lorsqu’ils déterminent comment ils souhaitent améliorer leurs compétences ou celles de leurs équipes. Cependant, ces rapports ne reposent que sur des données indirectes telles que des enquêtes, des dépôts GitHub ou des tendances Google, ce qui ne fournit pas nécessairement une image complète des langues réellement exécutées en production et/ou prêtes pour l’entreprise.

JFrog occupe une position unique pour détailler les technologies réelles utilisées pour créer des logiciels consommés par les utilisateurs finaux actuellement, en raison de notre large clientèle, de notre profondeur et de notre étendue inégalées de support de paquets. Avec plus de 7 000 clients dans le monde entier, allant des utilisateurs uniques aux plus grandes entreprises, notamment la majorité des entreprises du Fortune 100, la situation actuelle des artefacts logiciels par JFrog fournit un instantané fiable de la popularité des packages et des tendances d’adoption.

Pourquoi les packages logiciels sont-ils importants ?

L’examen de la popularité des langages de programmation est un indicateur des préférences et des tendances des développeurs, mais les packages et les binaires sont les véritables composants utilisés par les entreprises pour fournir des logiciels, de la conception à la production. L’examen des packages logiciels est également un proxy assez fiable pour les langages de programmation, étant donné que la plupart des types de paquets ne servent qu’un ou deux langages au maximum.

MÉTHODOLOGIE

Les données utilisées pour ces classements et analyses sont collectées directement à partir de l’utilisation de JFrog Artifactory jusqu’en octobre 2022 et proviennent de :
~ 7 000
clients JFrog
~ 27 000
serveurs Artifactory
~ 4,2 M
dépôts Artifactory
PÉTAOCTETS
d’artefacts
MILLIARDS
d’actions d’artefacts
(téléchargement/téléversement)
85%
du Fortune 100

Résultats

Principales technologies logicielles
Rank Package Type Repo Count % YoY Growth
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%
Tendances en matière de technologie logicielle
Cliquez sur le bouton ci-dessous pour filtrer les résultats de tendance.

informations

Les conteneurs occupent une place maîtresse

Les applications conteneurisées ont transformé la façon dont nous regroupons et fournissons des logiciels aux utilisateurs finaux. L’augmentation rapide de l’utilisation des conteneurs Docker et des charts Helm (multiplication par 5 entre janvier 2020 et octobre 2022 respectivement) illustre à quel point il est courant pour les organisations d’adopter une approche Cloud Native de DevOps.

Kubernetes existe depuis 2013 et n’a commencé que récemment à prendre de l’ampleur en tant que solution de déploiement de conteneurs en production dans de grandes organisations. Kubernetes est encore en train de mûrir, alors restez à l’écoute pour connaître les futures évolutions.

Préparation à l’IoT et à la périphérie

Le nombre d’appareils connectés devrait atteindre 41,6 milliards en 2025 générant plus de 74,9 Zettaoctets de données selon IDC (Internet des objets et placement de données). Les organisations ont besoin d’une stratégie pour fournir des logiciels aux appareils en périphérie. C/C++ est le langage principal utilisé pour concevoir des logiciels devant s’exécuter sur des appareils IoT, car la plupart sont basés sur des microcontrôleurs. Conan est un gestionnaire de déploiement C/C++ couramment utilisé, qui facilite la fourniture de mises à jour aux appareils en périphérie et d'IoT, car il est basé sur des packages plutôt que sur une gestion de bibliothèque de dépendances standard. Cela permet d’accélérer la vitesse et la cohérence du développement des logiciels d’appareils IoT.

De janvier 2020 à décembre 2022, nous avons constaté une multiplication par 5 de l’utilisation de Conan, ce qui peut indiquer que davantage d’entreprises conçoivent pour la périphérie.

La vieille garde reste puissante

Bien que les langages de programmation plus jeunes tels que Rust (Cargo) suscitent beaucoup d’intérêt, on ne peut pas nier le rôle des langages traditionnels tels que Java, JavaScript, Python et C/C++ dans le développement de logiciels modernes. Par exemple, nos données montrent que plus de 90 % des entreprises maintiennent un dépôt Maven. Cela indique clairement que les organisations n’abandonnent pas l’utilisation des languages traditionnels.

Assurer la sécurité de la mémoire

Une mauvaise gestion de la mémoire a été à l’origine de nombreuses vulnérabilités. Même la National Security Agency du gouvernement américain exhorte les organisations à adopter des langages sécurisés pour la mémoire lors de la création d’applications. Une conception de sécurité avancée n’est que l’une des nombreuses raisons pour lesquelles les développeurs souhaitent tirer parti de langages plus jeunes tels que Rust (Cargo), Swift et Go. Par exemple, Rust est intrinsèquement conçu avec la gestion de la mémoire comme norme, et il contribue également à plus de sécurité avec « zéro bogue », ce qui signifie qu’il est conçu pour sensibiliser le développeur à tout problème potentiel lors du codage. Cependant, même Rust comporte ses défis et doit être surveillé en continu.

Le nombre de dépôts Rust (Cargo) a augmenté de 30 % entre janvier 2022 et octobre 2022. Les langages modernes, tels que Rust, Swift et Go, sont conçus pour être plus responsables en fournissant un meilleur développement de style package avec des mécanismes de sécurité intégrés. Il est possible que le souhait de travailler avec un langage sécurisé pour la mémoire ait également été motivé par l’impact généralisé et les leçons tirées de Log4Shell, Solar Winds et d’autres attaques préjudiciables pour la chaîne d’approvisionnement logicielle.



Terraform : la norme pour IaC

Depuis l’introduction de leur support en mai, nous avons assisté à une adoption rapide des dépôts Terraform, l’une des trajectoires de croissance les plus rapides parmi tous les nouveaux types de paquets que nous avons introduits. Les organisations perçoivent l’avantage de déplacer la gestion de ces fichiers hors de Git et d’autres options de stockage vers une solution de gestion binaire complète, grâce à laquelle les fichiers Terraform peuvent être sécurisés et facilement disponibles, aux côtés des autres composants requis pour déployer et exécuter leur logiciel.

Informations complémentaires sur les tendances d’utilisation des packages dans les organisations de développement

En plus de la popularité des packages parmi les développeurs, JFrog voulait examiner à quoi ressemblait généralement l’utilisation des packages dans les organisations de développement, c’est-à-dire combien de types de packages sont exploités, la variété et la taille des artefacts, ainsi que le nombre moyen de développeurs au sein d’une organisation. Voici quelques informations supplémentaires basées sur ces données.

Le développement est polyglotte et multi-technologique

La chaîne d’approvisionnement logicielle étendue d’aujourd’hui implique plusieurs technologies et langages pour fournir des applications dans des environnements sur site, Cloud et hybrides. D'après un large échantillon d’entreprises, de tailles variées et intersectorielles, sept types de packages uniques ou plus sont généralement utilisés en moyenne. Cette médiane augmente au sein des grandes organisations, en exploitant 29 types de packages différents au sein d’une seule entreprise.
Nombre de types de packages utilisés dans la livraison de logiciels

Volume supérieur d’artefacts plus volumineux

Face à l’augmentation exponentielle des organisations utilisant des technologies de conteneurisation telles que Docker et Kubernetes, il n’est pas surprenant de voir que la taille des artefacts augmente également. De plus, un pourcentage supérieur de grandes organisations maintiennent également un plus large éventail d’artefacts.
Total d'artefacts gérés
Total des artefacts gérés en Go

Plus d’utilisateurs, plus de dépôts

Au fur et à mesure que les organisations grandissent, elles ont tendance à tirer parti de plus de dépôts pour garder leurs artefacts organisés et sécurisés. Une stratégie de dépôt appropriée avec des contrôles d’accès régis basés sur les rôles permet de maintenir l’alignement des équipes de développement et garantit un accès à la demande à des composants logiciels communs largement utilisés.
Taille des organisations de développement
Nombre de types de packages gérés

Prévisions pour les tendances des packages logiciels en 2023

Il est indéniable que la pandémie a accéléré la migration de toutes les industries vers le Cloud, ce qui a augmenté l’utilisation de technologies Cloud Natives telles que Kubernetes (K8s) et de méthodes de conteneurisation telles que Docker. De plus, maintenant que les employés retournent au bureau et que de plus en plus de personnes reprennent la route, nous continuerons de constater une utilisation accrue du Cloud et des outils de collaboration, avec un nombre croissant d’appareils utilisés à distance et lors de nos déplacements.

Cette tendance continuera d’alimenter le soutien de l’utilisation des technologies Cloud Natives, et exerce une pression accrue sur les développeurs pour qu’ils fournissent rapidement de nouvelles fonctionnalités et fonctions axées sur le mobile, tout en veillant à ce qu’elles soient toujours sécurisées et à jour. Une étude de Gartner indique que plus de 85 % des organisations adopteront le principe axé sur le Cloud d’ici 2025 et ne seront pas en mesure d’exécuter pleinement leurs stratégies numériques sans l’utilisation d’architectures et de technologies Cloud Natives.1 Ne vous laissez vos concurrents vous devancer.

Du point de vue des talents, vous pouvez avoir besoin de quelques développeurs supplémentaires dans vos équipes de conception UX, Cloud Native ou axée sur le mobile. Bien qu’il existe encore quelques secteurs où la migration vers le Cloud est plus lente, en raison de l’emplacement de l’entreprise et/ou des données, de la confidentialité/souveraineté des données, des exigences réglementaires, etc., le passage global au Cloud et l’adoption de K8s continueront de s’accélérer à mesure que la variété, le volume et la taille des packages logiciels continuent de croître. Nous verrons également sans doute de plus en plus d’entreprises tirer parti de la nature dynamique de l’infrastructure Cloud avec des frameworks tels que Terraform.

En examinant nos propres données ainsi que les tendances industrielles et économiques, nous nous attendons à ce que la croissance de l’utilisation de Docker des conteneurs reste forte, compte tenu de l’augmentation de la variété et de la taille des artefacts utilisés pour prendre en charge des technologies telles que la crypto-monnaie, le métavers, les jeux dans le Cloud et la blockchain, entre autres.

On s'interroge toujours sur le « métavers », et nous voyons de nombreuses organisations expérimenter dans ce domaine avec l’augmentation de la taille des artefacts, la prolifération des langages C++, Python et Rust (Cargo), ainsi que les technologies de conteneurisation. Dans le même temps, l’utilisation croissante des langages C++, Python et Java pourrait également signaler un développement et une utilisation plus généralisés de la technologie Blockchain, ce qui coïnciderait avec la grande importance que le secteur accorde à la sécurité en général et, plus spécifiquement, à la sécurisation de la chaîne d’approvisionnement logicielle. La popularité des langages traditionnels tels que Rust, Java et JavaScript signale également l'attrait de nombreuses organisations pour des services Internet de nouvelle génération, utilisant des infrastructures Web décentralisées pour créer de nouveaux workflows d’applications.

Pour résumer, compte tenu des nombreux cas d’utilisation variés rendus possibles par une variété de langages logiciels, les entreprises devraient rechercher une plateforme complète et universelle leur permettant de gérer l’ensemble de leur chaîne d’approvisionnement logicielle intégrale, tout en alimentant la collaboration, l’évolutivité, la cohérence et la sécurité.

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

Trusted Releases Built For Speed

Vous voulez approfondir les données ? Poser des questions à nos experts ?
Participez à l’un de nos prochains webinaires