Une des principales problématiques actuelles des développeurs est la gestion des binaires. Ceux ci constituent les blocs de construction originaux que les équipes de développeurs partagent dans le processus de construction d’un logiciel, des images Dockers au packages java ou Node.js en passant par RubyGems.joomla-continuous-delivery-with-docker-24-638

L’accélération des cycles de développement est devenue une réelle priorité́ pour beaucoup d »entreprises et  pas uniquement au niveau des  équipes IT . L’intégration des technologies mobiles, cloud et  celles des réseaux sociaux  sont des facteurs de changement dans toutes les industries.

Avec les processus d’intégration continue, le morcellement des binaires n’a cessé d’augmenter. En développement classique, après une phase de Build, qui consiste à transformer le code source (représentation en langage compréhensible par un humain) en un code binaire (représentation machine) on tente de conserver les composants réutilisables dans des registres différents en nombre limité avec des noms parfaitement normalisés, les différents éléments  d’un même projet étant conservés dans une librairie à l’écart d’autres modules réutilisables. .

Les repository  deviennent souvent des capharnaüms

Ces Artefacts, tous ces binaires, sont à la fois des fichiers sources, des scripts, des fichiers exécutables, des tables dans une base de données, et même souvent des courriers électroniques qui nourrissent et documentent les différents programmes.

La gestion de milliers de binaires qui entrent dans la conception d’un logiciel ainsi que les métadonnées associées est devenue extrêmement complexe depuis que le nombre de types d’artefacts a littéralement explosé ces dernières années, avec la mode du développement continu, des plugins et des API ouvertes.  Le nombre d’OS et de combinaisons qu’il s’agisse du cloud, des machines virtuelles ou des codes pour des machines embarquées n’a fait que croître.

L’approche traditionnelle de gestion des binaires en silos – un dépôt dédié pour chaque type d’artefact – rend souvent difficile voire impossible pour les développeurs de retrouver et télécharger les codes dont ils ont besoin. Ceci ralentit les équipes de développement et DevOps alors qu’ils sont sous pression pour délivrer leurs logiciels toujours plus rapidement. Dans un grand nombre de sociétés les mise à jours sont quotidiennes et il faut maintenir une trace des différents logs pour être capable de gérertruck_transports_container

Dans les outils Java on connaît surtout l’outil Maven qui est à la fois un outil de Build et de packaging) mais il faut toujours un repository, les plus connus étaient  à la fin des années 2000 , les Sonate Nexus, JFrog Artifactory et Apache Archiva.

L’exemple de JFrog 

Depuis les années 2010, celui qui a le plus évolué est JFrog Avec un modele de souscription sur site ou en mode Saas, JFrog Artifactory compte aujourd’hui plus de 1400 clients payants, ainsi qu’une importante communauté́ open source.

Il aura  connu une croissance de 690% sur les trois dernières années,selon ses promoteurs . Lors du lancement de JFrog Artifactory en version 4 Shlom Ben Haim, CEO de JFrog. « Le monde informatique n’a pas juste besoin d’un autre registre Docker ou d’un autre référentiel Maven.  Les utilisateurs veulent un outil industriel pour répondre à leurs besoins. »

JFrog cite  comme clients Netflix, Oracle, Riot Games (l’un des  plus important éditeur de jeux en lignes avec un record à 5 millions de joueurs), et Capgemini, Amadeus, Intel France, et  Société Générale sur le marché français Ils doivent évoluer dans un environnement multiforme, avec l’apparition de nouvelles technologies comme DockerLoL_5MM_Header_v02

Des enjeux communs aux développeurs et aux commerçants

« Nous avions besoin d’un serveur d’artefacts pour nos images Docker », affirme Carl Quinn, architecte logiciel chez Riot Games. « Nous voulions un outil qui monte en charge et qui soit gérable par des scripts et des APIs tout en proposant une authentification fiable. Le registre Docker open source est acceptable pour commencer, mais pas pour un déploiement à grande échelle. Nous avons ainsi étudi puis adopté JFrog». Tous les éditeurs importants maintiennent des outils de surveillance très évolués sur leurs binaires afin qu’ils ne soient pas pollués par des codes malveillants ou tout simplement copiés. C’est l’une des forces de Microsoft d’ailleurs d’avoir su maintenir  ses outils en phase face à des millions d’utilisateurs.Oracle, Apple, Google maintiennent souvent via des réseaux privés haut débits comme ceux de Limeligth, Verizon ou Level 3 sur différents sites,  des centaines de serveurs mis à jour en permanence. Dans le monde des jeux et de la vidéo à la demande les enjeux sont assez comparables ( 5 millions de joueurs ce Riot parfois dans différentes langues), il faut à la fois livrer les jeux ou les films , monétiser les opérations et mettre à jour les produits tout en gardant une trace précises des opérations pour éviter le piratage. L’enjeu de la sécurité reste stratégique.