GitLab : tout savoir sur la plateforme de DevOps open source
Plateforme de DevOps basée sur le gestionnaire de dépôts de code Git, GitLab se veut être une alternative à GitHub avec une forte dimension CI/CD. Service gratuit, prix, API... Le point sur cette offre open source.
GitLab, qu'est-ce que c'est ?
GitLab est une plateforme de développement collaborative open source éditée par la société américaine du même nom. Elle couvre l’ensemble des étapes du DevOps. Se basant sur les fonctionnalités du logiciel Git, elle permet de piloter des dépôts de code source et de gérer leurs différentes versions. Son usage est particulièrement indiqué pour les développeurs qui souhaitent disposer d’un outil réactif et accessible.
GitLab revendique plus de 100 000 organisations utilisant sa plateforme à travers le monde. Ce qui représente un total de plus de 30 millions d'utilisateurs enregistrés.
Open source, l'application fait l'objet d'un développement communautaire. Selon la société GitLab, 3 000 contributeurs collaborent à son évolution. En France, la société de San Francisco revendique plusieurs références clients. C'est le cas de l'avionneur Airbus, de l'European Space Agency, de l'ESN Sopra Steria, de l'e-marchand VeePee ou encore de l'expert des paiements Worldline.
Comment ça marche GitLab ?
L’interface de GitLab reste très similaire à celle de GitHub. Toutefois, GitLab propose des options pour le moins pratiques :
- Gestion de projet
- Planification / priorisation
- Build
- Test logiciel
- Sécurité applicative
- Gestion des configurations
- Monitoring
- Intégration et déploiement continus, etc.
Pour un emploi ergonomique, GitLab se situe sur une machine virtuelle, elle-même hébergée sur un serveur web. Cet outil de plateforme collaborative s’appuie sur une base de données. L’interface d’administration, notamment pour la création de comptes utilisateurs, passe par une configuration en ligne.
GitLab 15
GitLab a levé le voile sur la version 15 de sa plateforme de DevOps en mai 2022. Les nouveautés de cette nouvelle mouture seront progressivement lancées (voir la feuille de route sur le site de l'éditeur). Une grosse partie d'entre elles sont centrées sur l'intelligence artificielle. Au programme : l'intégration de la notion de MLOps avec à la clé la gestion de l'ensemble de la chaîne du machine learning (ML), de l'entraînement des modèles jusqu'à leur déploiement en passant par leur test. Pour constituer les data sets d'apprentissage, GitLab mettra en œuvre une infrastructure d'extraction, de chargement et de transformation de données. En aval, une console de monitoring sera livrée pour piloter le cycle de vie du ML, ainsi qu'un système de traçabilité intégrant la sécurité du code source, le management des versions de modèles, ainsi que la gestion des contrôle d'accès et la collaboration des data scientists.
GitLab insiste par ailleurs sur les améliorations de sa plateforme en matière d'observabilité. Dans ce domaine, il prévoit notamment "d'unifier le suivi des erreurs, les métriques, les logs et traces au sein d'une solution unique der monitoring du code". Autres évolutions en vue : une série de nouvelles fonctionnalités de sécurité, notamment autour du zero-trust, des scans des sources, de la gestion de la chaîne d'approvisionnement logiciel, des politiques d'accès...
GitLab CI, c'est quoi ?
GitLab CI/CD est un outil de GitLab conçu pour gérer l'intégration et le déploiement en continu de code et révisions applicatives. GitLab CI/CD passe par la configuration d'un fichier baptisé .gitlab-ci.yml placé dans le répertoire root. Un fichier qui génère un pipeline exécutant les changements de code au sein du dépôt de code.
Qu'est-ce qu'un Runner GitLab ?
Gitlab-runner est l'application permettant d'exécuter des tâches dans un pipeline GitLab CI/CD. En cas d'installation de Gitlab-runner en local, il est conseillé de le déployer sur une machine distincte de celle qui héberge l'instance GitLab, à la fois pour des raisons de performance et de sécurité. Chacune devra être équipées de sa propre pile logicielle : OS, Kubernetes, Docker...
A quoi servent les GitLab Pages ?
Les GitLab Pages permettent de publier des sites web statiques directement à partir d'un référentiel GitLab. Utilisable avec n'importe quel générateur de site statique, elles pourront être utilisées pour présenter les projets de développement gérés par le biais de GitLab.
Proposées dès l'offre gratuite, les GitLab Pages peuvent être hébergées sur GitLab.com ou sur une instance GitLab dédiée. Il est possible d'y associer son propre nom de domaine et de leur attribuer un certificat de chiffrement TLS.
GitLab est-il gratuit ?
GitLab est gratuit pour les projets de développement open source (sous licence MIT). Dans cette configuration, le service permet d'exécuter jusqu'à 400 minutes des pipelines d'intégration et de livraison continues (CI/CD) par mois, et pilote l'ensemble des étapes du DevOps.
Quel est le prix de GitLab ?
Aux côtés de son offre gratuite, GitLab propose deux forfais payants : GitLab Premium pour 19 dollars par utilisateur et par mois, et GitLab Ultimate pour 99 dollars par utilisateur et par mois. Le premier inclut des fonctionnalités de CI/CD avancées : tableau de bord de pilotage, agent GitLab pour Kubernetes, gestion multiprojet... Le second comprend des dispositifs supplémentaires de gestion de la conformité et de test de sécurité. Alors que GitLab Premium permet d'exécuter jusqu'à 10 000 minutes de pipelines CI/CD par mois, GitLab Ultimate passe ce niveau à 50 000 minutes.
Il est possibilité de souscrire des capacités supplémentaires si besoin. GitLab tarifie 1000 minutes de CI/CD en plus à 10 dollars, et 60 dollars par an les 10 Go de stockage.
Comment installer GitLab ?
GitLab se présente comme une alternative à GitHub. Son installation peut se faire en local ou via un serveur web. Il est même possible de passer par une machine virtuelle, elle-même basée sur un serveur en ligne.
GitLab vs GitHub
Si GitHub peut se rapprocher d'un réseau social spécialisé, GitLab se présente davantage comme un logiciel libre. Les deux plateformes collaboratives se distinguent par leurs services et leurs fonctionnalités respectives. GitLab permet de conserver une certaine indépendance vis-à-vis de la structure et tend à accroître son offre. GitHub profite d'une communauté plus importante et de formules plus flexibles en ce qui concerne les abonnements pour répertoires privés.
GitLab s'intègre-t-il avec GitHub ?
Non seulement GitLab s'intègre à GitHub, mais il offre la possibilité d'exécuter ses pipelines d'intégration et de livraison continues à partir de n'importe quel référentiel Git externe de n'importe quel fournisseur.
Pour faciliter son intégration avec GitHub, GitLab a mis au point GitLab CI/CD pour GitHub. Cette brique permet de connecter directement un projet de CI/CD créé dans GitLab à un référentiel de code GitHub. Elle configure automatiquement la synchronisation des repositories (via pull mirroring), le push de webhook vers les triggers CI/CD de GitLab dès qu'un code est validé, et la mise à jour de GitHub en retour.
GitLab API
Pour bénéficier de la documentation de l'API de GitLab, l'entreprise propose une documentation en ligne, ainsi qu'un moteur de recherche pour dénicher des réponses à des questions techniques plus particulières.
Redmine vs GitLab
GitLab est une plateforme de built logiciel reposant sur Git. Développé par GitLab Inc, il recouvre suivi des bugs, intégration continue et livraison continue (CI/CD). Des domaines sur lesquels Redmine n'est pas présent. Rien que pour gérer la gestion d'accès aux dépôts de codes sources, ce dernier doit faire appel à des outils tiers.
En revanche, Redmine permet de créer, personnaliser et orchestrer des processus d'allocation et de gestion d'événements (bugs, défauts...) via une console baptisée Trackers. Via son système de gestion des problèmes, GitLab n'offre, pour l'heure, pas le même degré de personnalisation.
GitLab et Docker
Le logiciel libre Docker lance les applications dans des conteneurs logiciels. Pour l’utilisation de GitLab, son intégration permet d’automatiser certaines fonctionnalités lors de l’envoi de votre code source. Par exemple, il peut réaliser des tests unitaires, envoyer des notifications et installer des dépendances de type "npm install".
GitLab dispose par ailleurs d'un agent GitLab pour l'orchestrateur de container Kubernetes, De quoi lui permet d'appliquer ses pipeline de CI/CD à des clusters Kubernetes.
Tutoriels : quelques liens
Afin de profiter des nombreuses fonctionnalités de GitLab, découvrez les tutoriels suivants :