AWS CodeArtifact et Artifactory : Lequel Choisir pour la Gestion des Binaires ?

devops solutions

Depuis la création de JFrog – avec Artifactory OSS – nous sommes convaincus qu’il est impossible de fournir des logiciels à quelque échelle, vitesse ou fiabilité que ce soit sans une solide solution de gestion des artefacts. Aujourd’hui, plus d’une décennie plus tard, d’autres fournisseurs du secteur commencent enfin à apparaitre.

AWS a récemment annoncé son service CodeArtifact pour la gestion des binaires. Vous trouverez ci-dessous une comparaison de tout ce que vous devez savoir sur les différences entre JFrog Artifactory et CodeArtifact d’AWS, et sur la solution qui convient le mieux à la plupart des cas d’utilisation.

Artifactory – l’épine dorsale de JFrog Platform – a été le premier produit que nous avons introduit sur le marché. En tant que développeurs que nous sommes, nous avons compris qu’il était difficile de ne pas avoir de gestionnaire de binaires. Nous avons donc lancé la première solution de gestion des artefacts du marché. Cette nouvelle catégorie d’outils, qui n’existait pas auparavant, est devenue un pilier essentiel de tout effort de développement. Aujourd’hui encore, Artifactory est la solution de gestion de binaires la plus populaire et la seule solution universelle prenant en charge plus de 27 types de packages, y compris le registre d’images Docker et le dépôt Helm combinés.

Examinons les principales différences entre JFrog Artifactory et AWS CodeArtifact et ce qu’elles signifient pour vous.

Comparaison entre AWS CodeArtifact et JFrog Artifactory

AWS CodeArtifact est un dépôt d’artefacts/de binaires géré basé sur S3. Son concept est similaire à celui du service de base Artifactory SaaS de JFrog, proposé sur la plateforme AWS (et sur d’autres clouds publics). 

Examinons ces 9 différences clés :

Gestion Universelle des Packages

CodeArtifact n’est pas un gestionnaire de package universel. Il ne prend en charge que 3 technologies. Le support Maven est encore naissant et n’est pas prêt pour une utilisation en production : Les métadonnées Maven doivent être téléchargées manuellement par les clients, ce qui empêche pratiquement les déploiements simultanés de versions pour le même package, en particulier les snapshots uniques. D’une manière générale, CodeArtifact ne prend pas en charge plusieurs téléchargements d’instantanés vers le même dépôt, ce qui constitue un scénario très courant au sein d’équipes de développement très actives, travaillant simultanément.

JFrog Artifactory prend en charge plus de 27 types de binaires. Artifactory fournit également un type de dépôt générique, ce qui permet aux utilisateurs de gérer de manière centralisée des types de fichiers supplémentaires qui font partie de leurs livraisons – tels que des images, des fichiers zip, des documents, et plus encore.

AWS CodeArtifact (complet) JFrog Artifactory (partiel)
  • Maven/Gradle
  • npm/Yarn
  • pip/twine
  • Maven/Gradle
  • npm/Yarn
  • pip/twine
  • Nuget
  • RPM
  • Debian
  • Go
  • Docker
  • Helm
  • Conan (C/C++)
  • GitLFS
  • PHP Composer
  • RubyGems
  • VCS
N/A Générique


Les deux solutions permettent aux utilisateurs de relayer des dépôts externes. Toutefois, CodeArtifact ne prend en charge que le proxy des dépôts officiels en amont : npm – npm.js, Python – PyPI, Maven – Maven Central, le dépôt Android de Google, le dépôt de plugins Gradle et le dépôt Android CommonsWare. En outre, CodeArtifact est fortement limité à un seul dépôt distant externe (appelé « connexion externe »). Il n’est pas clair quel est l’ordre de recherche entre les dépôts hébergés, en amont et externes et comment les autorisations sont propagées.

Artifactory, quant à lui, permet l’utilisation de n’importe quel dépôt – interne ou externe. De plus, les dépôts virtuels d’Artifactory simplifient la gestion des artefacts à l’échelle et le partage entre les équipes. Cette fonctionnalité permet aux utilisateurs d’agréger uniquement des dépôts spécifiques et de choisir comment et à partir de laquelle résoudre un package.

Artefacts Cloud-Native

Dans le cadre de la prise en charge des binaires, Artifactory fournit un registre d’images de conteneurs de niveau entreprise et un dépôt Helm en une seule solution. AWS CodeArtifact ne prend pas en charge le stockage et la gestion des composants natifs du cloud. Vous devrez donc intégrer le service ECR d’AWS, qui n’offre pas la gouvernance et la gestion centrale requises pour les cas d’utilisation en entreprise par rapport à la solution JFrog. Cela crée des problèmes de visibilité et de traçabilité importants dans votre pipeline de publication, car les images de conteneurs sont composées de packages de publication provenant d’autres dépôts, tels que npm, golang, Maven, etc.

AWS CodeArtifact JFrog Artifactory
Registres d’Images de Conteneur Non
a besoin d’AWS ECR ou d’un autre
Oui
Dépôt de Charts Helm Non
a besoin d’AWS ECR ou d’un autre
Oui

Sécurité, Conformité et Chiffrement

Les deux solutions chiffrent les artefacts stockés, à la fois en vol et au repos. Tous deux fournissent également un RBAC précis pour le contrôle d’accès et la conformité. CodeArtifact repose uniquement sur AWS IAM pour la gestion des identités et des accès. Le jeton AWS IAM est codé en dur pour expirer après 12 heures, ce qui signifie que même en cours de développement, les développeurs devront se rappeler de régénérer les jetons et de reconfigurer leurs gestionnaires de packages en conséquence. Contrairement à CodeArtifact, Artifactory permet des intégrations avec n’importe quel fournisseur d’identité de votre choix, comme Okta, OneLogin, PingOne, GitHub, etc.

AWS CodeArtifact JFrog Artifactory
Chiffrement des Artefacts Oui Oui
Contrôle d’Accès AWS IAM Tout fournisseur
Par exemple Okta, OneLogin, PingOne, GitHub
Analyse de sécurité Aucune fournie JFrog Xray


En ce qui concerne la sécurité des applications, seul Artifactory est doté d’une analyse de sécurité intégrée pour détecter les vulnérabilités open source et les violations de conformité des licences. Intégré à JFrog Xray, les utilisateurs d’Artifactory peuvent facilement prendre en charge « décalage à gauche » et DevSecOps.

La plateforme JFrog analyse automatiquement vos packages, ainsi qu’une analyse récursive profonde des images de conteneur, et fournit une analyse d’impact complète de toutes les vulnérabilités découvertes, avec intégration IDE pour une remédiation rapide. Les utilisateurs peuvent configurer des stratégies de sécurité et de conformité à travers les dépôts pour déclencher des actions automatiques basées sur les données de sécurité. Il peut s’agir d’alertes, de web-hooks, du blocage du téléchargement d’artefacts non analysés ou présentant des CVE critiques, d’un échec de build, etc. Les utilisateurs d’AWS intéressés par la sécurité et l’analyse de la composition logicielle devront recourir à des outils tiers, car il n’existe pas de solution toute faite.

Hybride et Multicloud

CodeArtifact n’est disponible que sur le cloud public et uniquement dans certaines régions (par exemple, il n’est pas disponible en Chine). Artifactory peut être utilisé pour gérer vos fichiers binaires et la sécurité sur toute infrastructure. Il peut être hébergé sur site ou dans le Cloud, avec notamment les topologies multi-sites et la réplication. Il est également disponible sous forme d’abonnement SaaS sur tous les clouds publics (AWS, GCP, Azure). Cela permet aux utilisateurs d’éviter d'être coincé avec un fournisseur, et de prendre en charge une évolution vers le multi-cloud/hybride, y compris la synchronisation en temps réel des artefacts entre les environnements sur site et Cloud.

AWS CodeArtifact JFrog Artifactory
SaaS AWS AWS, GCP, Azure
Autonome/Sur site Non Oui

 

CodeArtifact n’offre qu’une seule zone géographique pour les dépôts hébergés par l’utilisateur et avec une réplication à la demande paresseuse. Artifactory offre un mirroring actif des dépôtsvia la réplication pour gérer facilement nativement les charges de travail multi-géographiques. L’ensemble unique de capacités de réplication intelligente d’Artifactory permet un accès local aux artéfacts, dans n’importe quelle topologie de réseau et pour toute méthodologie de développement. En fonction des exigences relatives aux pipelines distribués et à la collaboration propres à l'organisation, les utilisateurs peuvent choisir parmi plusieurs possibilités, notamment la réplication pull, push, basée sur des événements et multi-push.

Enfin, CodeArtifact présente des problèmes majeurs d’utilisabilité pour les développeurs dans leur travail quotidien. Les dépôts de CodeArtifact sont exposés via des noms de domaine peu conviviaux pour les développeurs, tels que : my-example-domain-123456789012.d.codeartifact.us-west-2.amazonaws.c​om. Artifactory, de son côté, est exposé comme mydomain.jfrog.io. Il n’y a pas de moyen clair d’enregistrer un certificat SSL personnalisé et un domaine simple pour éviter de répéter ces longues URL à 6 parties (!) dans chaque appel CLI !

Métadonnées et informations de build

Artifactory stocke des métadonnées exhaustives pour tous les artefacts de build. Cela permet une visibilité granulaire et une traçabilité inégalées dans les attributs de chaque artefact de votre environnement, dans l’ensemble du SDLC. Le fait que les métadonnées et les propriétés soient entièrement consultables vous permet d’établir de nombreux flux d’automatisation basés sur l’affectation et les requêtes de métadonnées. Cela permet des fonctionnalités avancées, telles que le déclenchement de l’automatisation basée sur les attributs de build, la promotion automatique de build et l’établissement de barrières de qualité entre les étapes, l’analyse automatique de la dérive des builds pour le dépannage, la recherche avancée basée sur les indicateurs, etc. Par exemple, s’il y a un problème avec le build, la « nomenclature » d’Artifactory facilite la reproduction d’un build et le suivi de la cause des problèmes pour réduire le temps de résolution (TTR), même si le build est déjà en production.

AWS CodeArtifact ne propose pas de concept de métadonnées ou d’informations de build. Il propose un « état de la version du package » – où les packages peuvent être étiquetés comme supprimés, archivés, etc., mais il ne fournit pas la richesse du suivi des métadonnées comme Artifactory.

Dépôts non typés

Lors de la configuration d’un type de dépôt dans Artifactory, chaque dépôt est instrumenté pour gérer un type de binaire spécifique. CodeArtifact propose des dépôts non typés, qu’ils appellent « polyglottes », ce qui signifie qu’un dépôt peut stocker un mélange de packages d’artefacts des 3 technologies prises en charge. Par exemple, un seul dépôt CodeArtifact peut être configuré pour stocker les packages des dépôts Maven, npm et Python. Cela peut être plus facile pour les petites équipes, mais peut poser des problèmes de gestion efficace à grande échelle, dès lors que vous devez passer à plusieurs types de packages et à plusieurs dépôts couvrant différentes équipes, zones géographiques ou applications.

Le problème le plus courant est que cela crée une confusion concernant le chevauchement des espaces de noms entre les types de package et que les API qui sont spécifiques au package sont nécessaires au lieu de simplement faire référence au point de terminaison du dépôt. En raison de la limitation des dépôts non typés, toutes les API de CodeArtifact exigent que l’utilisateur spécifie explicitement la chaîne de format du package comme faisant partie de l’URL.

Audit des packages

Les deux solutions vous fournissent un audit détaillé de l’état et de l’utilisation de vos fichiers binaires. CodeArtifact s’intègre à AWS CloudTrail pour l’audit de l’utilisation des paquets. De même, Artifactory fournit en mode natif un suivi des actions de l’utilisateur liées à un package (par exemple la suppression du package). En plus du suivi des utilisateurs, le suivi de l’inventaire des ascendants et des descendants d’Artifactory permet de savoir quels sont les packages utilisés et où ils se trouvent.

Intégrations de chaînes d’outils CI/CD et DevOps

Les deux solutions peuvent être intégrées à votre CI/CD et aux outils DevOps que vous utilisez déjà, grâce à des API CLI et REST étendues. CodeArtifact est intégré à d’autres services AWS via l’AWS EventBridge afin que vous puissiez déclencher des fonctions Lambda, un sujet SNS, CodeBuild et CodePipelines. Artifactory s’accompagne d’intégrations plus larges à tous les outils CI/CD (y compris la solution Pipelines propre à JFrog), les intégrations IDE, les outils courants comme Jira, et les environnements/outils de configuration Cloud. La plateforme JFrog offre une vue unique et transparente pour orchestrer tous vos outils ponctuels et automatiser le processus de bout en bout, à travers toutes les versions et équipes.

AWS CodeArtifact JFrog Artifactory
REST APIs et CLI Oui Oui
Intégrations Services AWS via AWS EventBridge CI/CD : Jenkins, Bamboo, CircleCI, TeamCity, Travis CI, Azure DevOps, GitHub Actions, JFrog Pipelines
IDEs : Eclipse, VS Code, Visual Studio, IntelliJ IDEA
Vue Unique et Transparente Non Oui – JFrog Platform

Tarifs

AWS CodeArtifact facture en fonction de l’utilisation, calculée par la taille des artefacts stockés, le nombre de requêtes effectuées et la quantité de données transférées hors d’une région AWS. Les premiers 2 Go de stockage et les 100 000 premières requêtes/mois sont gratuits. La capacité gratuite peut rendre CodeArtifact souhaitable pour les très petites équipes et les ateliers de développement SOHO. Artifactory SaaS sur AWS est disponible en plusieurs plans, avec un coût d’abonnement mensuel qui inclut l’utilisation. À partir de 98 dollars par mois pour une gestion des binaires, le service de base comprend 2 Go de stockage et 10 Go de transfert de données. Le niveau d’abonnement suivant, intégrant l’analyse de sécurité, comprend 20 Go de stockage et 200 Go de transfert de données.

En résumé :

En raison de son intégration native à l’écosystème AWS, permettant des opérations transparentes entre les services AWS sur la même infrastructure, CodeArtifact peut être le point de départ pour les utilisateurs AWS mono-cloud, à condition qu’il s’agisse d’équipes ou d’organisations relativement petites dont les besoins sont limités en termes d’échelle, de types de packages pris en charge et d’artefacts natifs du cloud, de sécurité, d’environnements hybrides ou de visibilité des métadonnées.

CodeArtifactory est encore une solution immature, ses caractéristiques, son étendue, ses fonctionnalités et sa taille ne sont pas comparables à celles de JFrog Artifactory, la solution universelle de gestion des fichiers binaires qui a tout déclenché et qui reste la technologie de pointe après toutes ces années !

Vous pouvez essayer JFrog Cloud Pro X sur AWS. Vous pouvez choisir de l’exécuter avec le stockage ECS ou EC2, ainsi qu’avec Kubernetes géré par EKS.

Démarrez votre transition DevOps avec la gestion universelle des packages et la sécurité intégrée, pour les applications héritées et les applications de conteneur.