Introduction à Nexus — Gestionnaire de Dépôts d'Artifacts
Nexus est l'un des gestionnaires de dépôts d'artifacts les plus populaires dans les équipes DevOps. Il centralise le stockage et la distribution de tous vos artifacts de build.
Qu'est-ce qu'un Artifact Repository ?
Un artifact repository est un stockage centralisé pour les artifacts produits par l'intégration continue (CI).
Code source → Build (Maven/Gradle/npm) → Artifact → Artifact Repository
JAR, WAR,
ZIP, TAR...
Caractéristiques :
- Stocke les artifacts produits par la CI, disponibles pour le déploiement automatisé
- Fournit un emplacement central accessible par tous les environnements (dev, test, prod)
- Chaque type d'artifact nécessite un repository compatible avec son format
Qu'est-ce qu'un Artifact Repository Manager ?
Un Artifact Repository Manager peut stocker plusieurs types d'artifacts différents dans un seul outil.
Sans manager : Avec manager (Nexus) :
────────────── ──────────────────────
Repo Maven (Java)
Repo npm (JS) ────► 1 seul Nexus
Repo NuGet (.NET) pour tous les types
Repo PyPI (Python)
Avantage : au lieu d'avoir un repository différent par type d'artifact, 1 seul outil gère tout.
Public vs Private Artifact Repository Managers
Public Repository Managers
Pour les librairies et frameworks open source que vous utilisez comme dépendances :
| Repository | Pour | Exemples |
|---|---|---|
| Maven Central | Java / JVM | Spring, Hibernate, Log4j |
| npm Registry | JavaScript / Node.js | React, Express, Lodash |
| PyPI | Python | Django, NumPy, Requests |
| Docker Hub | Docker Images | nginx, postgres, redis |
Vous pouvez aussi publier vos propres projets sur ces repos publics.
Nexus — Repository Manager Privé
Nexus est un store privé central pour votre entreprise :
- Upload et stockage de différents artifacts de build
- Téléchargement (retrieve) des artifacts pour le déploiement
- Usage interne à l'entreprise — vos artifacts ne sont pas publics
- Versions open source (OSS) et commerciale disponibles
┌─────────────────────────────────┐
Développeurs ──► │ NEXUS │ ◄── CI/CD Pipeline
│ (repository privé d'entreprise) │
Serveurs ◄── └─────────────────────────────────┘
Nexus — Artifact Repository Manager
Fonctionnalités principales
- Open source et version commerciale — Nexus OSS est gratuit
- Host own repositories — héberge vos artifacts internes
- Proxy repositories — intermédiaire vers un repository externe (Maven Central)
Maven
Nexus (maven-repo) ──► Central ✓ Fetch everything from 1 place (Nexus):
Repository Company internal and public artifacts
- Multiple repositories pour différents formats ou différentes équipes
- Formats supportés : Maven, npm, Docker, Helm, Python (PyPI), NuGet (.NET), Go, R, RubyGems, Yum, APT, Conan, CPAN...
Fonctionnalités avancées
| Fonctionnalité | Description |
|---|---|
| Intégration LDAP | Authentification avec l'annuaire d'entreprise |
| REST API | Intégration avec Jenkins, GitLab CI, scripts |
| Backup and Restore | Sauvegarde de la configuration et des données |
| Multi-Format Support | ZIP, TAR, Docker, JAR... dans le même outil |
| Metadata Tagging | Étiquetage des artifacts |
| Cleanup Policies | Suppression automatique des vieux artifacts |
| Search | Recherche dans tous les projets et repositories |
| User Tokens | Authentification système sans mot de passe |
La REST API est particulièrement importante car elle permet d'intégrer Nexus dans votre pipeline CI/CD (Jenkins pousse les artifacts, les serveurs de déploiement les téléchargent).
Pourquoi utiliser Nexus dans une équipe DevOps ?
Développeur fait un git push
│
▼
┌────────────────────────────────────┐
│ Pipeline CI/CD │
│ │
│ Build → Test → Package │
│ │ │
│ ▼ │
│ Push artifact │
│ vers NEXUS │
└────────────────────────────────────┘
│
▼
Environnements (dev/test/prod)
← Pull artifact depuis NEXUS
Avantages pour le DevOps engineer :
- Un seul endroit pour gérer tous les artifacts de tous les projets
- Traçabilité : on sait exactement quelle version est déployée où
- Sécurité : les artifacts internes ne passent jamais par des repos publics
- Fiabilité : le déploiement ne dépend plus de la disponibilité de Maven Central ou npm
À retenir
- Artifact Repository = stockage central pour les artifacts de build (JAR, ZIP, Docker Image...)
- Artifact Repository Manager = 1 seul outil pour gérer tous les formats d'artifacts
- Public repos : Maven Central (Java), npm (JS), Docker Hub — pour les dépendances open source
- Nexus = repository manager privé pour les artifacts internes de l'entreprise
- Nexus supporte : Maven, npm, Docker, Helm, Python, NuGet, Go et plus encore
- Nexus s'intègre dans le pipeline CI/CD via sa REST API
- Proxy repository : Nexus fait le pont entre vos builds et Maven Central / npm