1. Espace Partenaires
  2. Le DevOps en pratique avec GitLab - Gestion de projets et pipelines CI/CD

Le DevOps en pratique avec GitLab Gestion de projets et pipelines CI/CD

Bientôt disponible !
Suivez-nous pour être informé dès la sortie

GitLab s’impose aujourd’hui comme l’un des outils phares pour gérer le cycle de développement logiciel dans une démarche DevOps ou DevSecOps. Ce livre offre une vue d’ensemble claire et détaillée des fonctionnalités de GitLab, tout en guidant le lecteur dans sa mise en œuvre. Pensé pour les débutants autant que pour les utilisateurs confirmés, ce livre explore toutes les facettes de GitLab. Il s’appuie sur de nombreux exemples concrets, des schémas explicatifs et des exercices pratiques pour...
Aperçu de la version papier
  • Niveau Confirmé à Expert
  • Nombre de pages 564 pages
  • Parution septembre 2025
  • Niveau Confirmé à Expert
  • Parution mai 2025

GitLab s’impose aujourd’hui comme l’un des outils phares pour gérer le cycle de développement logiciel dans une démarche DevOps ou DevSecOps. Ce livre offre une vue d’ensemble claire et détaillée des fonctionnalités de GitLab, tout en guidant le lecteur dans sa mise en œuvre.

Pensé pour les débutants autant que pour les utilisateurs confirmés, ce livre explore toutes les facettes de GitLab. Il s’appuie sur de nombreux exemples concrets, des schémas explicatifs et des exercices pratiques pour accompagner le lecteur dans l’apprentissage de la plateforme.

Les premiers chapitres de l'ouvrage décrivent le fonctionnement de GitLab ainsi que les approches modernes telles que le DevOps et le DevSecOps qui sont au cœur de sa conception. Le livre se poursuit avec une présentation du système de gestion Git dans le contexte de GitLab pour ensuite examiner les fonctionnalités de gestion et de suivi de projets.

Les chapitres suivants sont consacrés à la configuration et la mise en œuvre des pipelines CI/CD. Les différentes étapes qu'ils peuvent automatiser sont examinées à partir d'exemples concrets  : analyse, sécurisation, build, packaging et déploiement du code source. Toutes ces opérations sont mises en pratique dans les derniers chapitres du livre avec un exemple de bout en bout qui permettra aussi d'introduire des notions plus avancées.

Enfin, le livre s’achève par un regard vers l’avenir, avec une exploration des outils de sécurisation du code source et une présentation des fonctionnalités d’intelligence artificielle comme l’assistant GitLab Duo.

Au terme de cet ouvrage, le lecteur aura une bonne compréhension du fonctionnement de GitLab et il sera en mesure de gérer des projets et créer ses propres pipelines dans une perspective DevOps ou DevSecOps.

 

 

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-04967-5
  • EAN : 9782409049675
  • Ref. ENI : EIMGITLAB
Avant-propos
  1. 1. Présentation du livre
  2. 2. Contenu et approche privilégiée
  3. 3. À qui s’adresse ce livre ?
  4. 4. Organisation du livre
  5. 5. Note sur la version de GitLab
  6. 6. Plateforme et outils de travail
  7. 7. Dépôt contenant les exemples du livre
Introduction à GitLab
  1. 1. Introduction
  2. 2. Qu’est-ce que GitLab ?
    1. 2.1 Définition de GitLab
      1. 2.1.1 Une forge logicielle conçue autour de Git
      2. 2.1.2 Une plateforme orientée DevOps et DevSecOps
    2. 2.2 Les utilisateurs visés par la plateforme
  3. 3. Bref historique de GitLab
    1. 3.1 Le contexte d’émergence de GitLab
    2. 3.2 Une nouvelle forge logicielle open source
      1. 3.2.1 Conception logicielle et technologies
      2. 3.2.2 L’ajout d’une solution d’intégration continue
    3. 3.3 Naissance de GitLab Inc.
    4. 3.4 Migration de Microsoft Azure vers Google Cloud Platform
    5. 3.5 Croissance et orientation DevSecOps
  4. 4. Comparaison avec les solutions concurrentes
    1. 4.1 Les forges logicielles basées sur Git
      1. 4.1.1 Les solutions propriétaires : GitHub et Bitbucket
      2. 4.1.2 Les solutions open source
      3. 4.1.3 Les solutions intégrées à des services cloud
    2. 4.2 Les outils d’intégration et de déploiement continus
      1. 4.2.1 Les outils open source et propriétaires
      2. 4.2.2 Les outils spécialisés
  5. 5. Avantages et inconvénients du modèle de GitLab
    1. 5.1 Une plateforme unifiée de type tout-en-un
    2. 5.2 Une plateforme permettant de nombreuses intégrations
    3. 5.3 Services CI/CD et version autogérée gratuits
    4. 5.4 Dépôts moins nombreux et communauté restreinte
  6. 6. Les modes d’utilisation de GitLab
    1. 6.1 Les types de déploiements de GitLab
    2. 6.2 Les éditions de GitLab
      1. 6.2.1 GitLab Community Edition
      2. 6.2.2 GitLab Enterprise Edition
    3. 6.3 L’édition retenue pour le présent ouvrage
  7. 7. Prise en main de GitLab
    1. 7.1 Créer un compte GitLab en mode SaaS
    2. 7.2 Configurations initiales
      1. 7.2.1 Modifier la langue d’affichage et le format de l’heure
      2. 7.2.2 Personnaliser le profil utilisateur
      3. 7.2.3 Modifier le nom d’utilisateur
    3. 7.3 Apprendre à naviguer dans GitLab
      1. 7.3.1 Le panneau Votre travail
      2. 7.3.2 Le panneau « Projets »
  8. 8. Conclusion
Comprendre le cycle de développement logiciel
  1. 1. Introduction
  2. 2. Qu’est-ce que le cycle de développement logiciel ?
  3. 3. Le modèle en cascade
    1. 3.1 Les étapes du modèle en cascade
    2. 3.2 Le processus de livraison de logiciels traditionnel
    3. 3.3 Les inconvénients liés aux tâches manuelles
  4. 4. Le cycle de développement logiciel agile
    1. 4.1 Le manifeste pour le développement agile de logiciels
    2. 4.2 L’importance d’adopter une approche itérative
    3. 4.3 Le diagramme de Venn des méthodes agiles
    4. 4.4 L’importance des tests QA
      1. 4.4.1 La matrice agile de tests
      2. 4.4.2 La pyramide de tests de Mike Cohn
    5. 4.5 L’intégration continue
    6. 4.6 La livraison et le déploiement continus
  5. 5. Le DevOps
    1. 5.1 Les origines du mouvement DevOps
      1. 5.1.1 Le Site Reliability Engineering
      2. 5.1.2 Le Lean Management et l’automatisation
    2. 5.2 La boucle infinie du DevOps
    3. 5.3 Le diagramme de Venn du DevOps
    4. 5.4 Les cinq idéaux du CALMS
  6. 6. Le DevSecOps
    1. 6.1 Les neuf principes du DevSecOps
    2. 6.2 Intégrer la sécurité plus tôt dans le SDLC
      1. 6.2.1 La sécurité comme responsabilité partagée
      2. 6.2.2 Intégrer la sécurité dans les pipelines
      3. 6.2.3 La boucle infinie du DevSecOps
    3. 6.3 Le diagramme de Venn du DevSecOps
    4. 6.4 Le concept de « Shift Left »
      1. 6.4.1 Le « Shift Left » appliqué aux tests QA
      2. 6.4.2 Le « Shift Left » appliqué au DevSecOps
  7. 7. Conclusion
Fondamentaux de Git pour GitLab
  1. 1. Introduction
  2. 2. Qu’est-ce que Git ?
    1. 2.1 Contexte d’émergence de Git
    2. 2.2 Définition générale de Git
  3. 3. Les systèmes de gestion de version
    1. 3.1 Les systèmes de gestion de version centralisés
      1. 3.1.1 Une approche basée sur le delta
      2. 3.1.2 Les contraintes du modèle centralisé
      3. 3.1.3 La notion de dépôt
    2. 3.2 Les systèmes de gestion de version distribués
      1. 3.2.1 Une approche basée sur des instantanés ou snapshots
      2. 3.2.2 Les avantages du modèle distribué
  4. 4. Installer et configurer Git
    1. 4.1 Installer Git sur macOS ou Linux
    2. 4.2 Installer Git sur Windows
    3. 4.3 Récapitulatif des commandes vues dans cette section
  5. 5. Créer et configurer un dépôt local Git
    1. 5.1 Configuration initiale de Git
    2. 5.2 Initialiser un nouveau dépôt local
    3. 5.3 Récapitulatif des commandes vues dans cette section
  6. 6. Comprendre le workflow de Git
    1. 6.1 Les trois états des fichiers dans Git
    2. 6.2 Un exemple du workflow de Git
      1. 6.2.1 Créer des fichiers dans le répertoire de travail
      2. 6.2.2 Ajouter les fichiers à l’espace de staging
      3. 6.2.3 Enregistrer ou faire un commit des fichiers
    3. 6.3 Les trois phases ou sections du workflow de Git
    4. 6.4 Quelques commandes utiles dans le workflow de Git
      1. 6.4.1 Aller plus loin avec git add
      2. 6.4.2 Comparer des fichiers avec git diff
      3. 6.4.3 Annuler l’ajout de contenu dans l’espace de staging
    5. 6.5 Récapitulatif des commandes vues dans cette section
  7. 7. La notion de commit et le pointeur HEAD
    1. 7.1 Comprendre la notion de commit
      1. 7.1.1 La représentation des commits
      2. 7.1.2 Faire afficher la chaîne hexadécimale d’un commit
      3. 7.1.3 Modifier ou supprimer un commit
      4. 7.1.4 Revenir à un commit antérieur
    2. 7.2 Comprendre le pointeur HEAD
      1. 7.2.1 Faire afficher le pointeur HEAD
      2. 7.2.2 L’emplacement du fichier du pointeur HEAD
    3. 7.3 Récapitulatif des commandes vues dans cette section
  8. 8. La fonctionnalité de branching dans Git
    1. 8.1 Comprendre la notion de branche
      1. 8.1.1 Créer une nouvelle branche
      2. 8.1.2 Se déplacer sur une autre branche
      3. 8.1.3 Les branches et le pointeur HEAD
      4. 8.1.4 Supprimer une branche
    2. 8.2 Récapitulatif des commandes vues dans cette section
  9. 9. La fusion ou merge de branches dans Git
    1. 9.1 Les principaux types de fusion
      1. 9.1.1 Le fast-forward merge
      2. 9.1.2 Le three-way merge
      3. 9.1.3 Le squash and merge
    2. 9.2 Le rebase and merge
      1. 9.2.1 Faire un rebase and merge
      2. 9.2.2 Justification du rebase and merge
    3. 9.3 Les conflits lors d’un merge
      1. 9.3.1 Résoudre un conflit de merge dans Visual Studio Code
      2. 9.3.2 Gérer les conflits dans un dépôt distant
    4. 9.4 Récapitulatif des commandes vues dans cette section
  10. 10. Conclusion
Travailler avec un dépôt distant sur GitLab
  1. 1. Introduction
  2. 2. Interagir avec le dépôt distant d’un projet GitLab
    1. 2.1 Créer un nouveau projet
    2. 2.2 Configurer l’accès SSH à GitLab
  3. 3. Comprendre l’opération de clonage
    1. 3.1 Cloner un dépôt distant via SSH
    2. 3.2 Cloner un dépôt distant via HTTPS
    3. 3.3 Autres options pour récupérer un dépôt distant
    4. 3.4 Créer un dépôt distant à partir d’un dépôt local
      1. 3.4.1 Comprendre l’alias « origin »
      2. 3.4.2 Les fonctionnalités d’un dépôt distant
    5. 3.5 Récapitulatif des commandes vues dans cette section
  4. 4. Comprendre les notions de « push » et « pull »
    1. 4.1 Faire un « push » des données vers un dépôt distant
    2. 4.2 Mettre à jour un dépôt local
      1. 4.2.1 Utiliser la commande git fetch
      2. 4.2.2 Utiliser la commande git pull
    3. 4.3 Récapitulatif des commandes vues dans cette section
  5. 5. Utiliser les fonctionnalités Git de GitLab
    1. 5.1 Les options du menu Code
      1. 5.1.1 Les branches
      2. 5.1.2 Les branches protégées
      3. 5.1.3 Les outils de visualisation des commits
      4. 5.1.4 Les étiquettes
      5. 5.1.5 Les extraits de code
    2. 5.2 Récapitulatif des commandes vues dans cette section
  6. 6. Découvrir les options d’édition
    1. 6.1 Édition à partir de la page d’accueil d’un dépôt
    2. 6.2 Édition à partir d’un fichier spécifique
  7. 7. Conclusion
Organiser et suivre son travail dans GitLab
  1. 1. Introduction
  2. 2. Organiser son travail autour de projets et de groupes
    1. 2.1 Comprendre la notion de projet
    2. 2.2 Explorer les projets publics
    3. 2.3 Autres manières de créer un projet
      1. 2.3.1 Créer un projet à partir d’un modèle
      2. 2.3.2 Ajouter un projet par bifurcation (fork)
    4. 2.4 Paramètres d’un projet
      1. 2.4.1 Nommage, description, sujets
      2. 2.4.2 Visibilité, fonctionnalités du projet, autorisations
      3. 2.4.3 Badges numériques
      4. 2.4.4 Services d’assistance
      5. 2.4.5 Paramètres avancés
    5. 2.5 Comprendre la notion de groupe
      1. 2.5.1 Créer un groupe et y ajouter un projet
      2. 2.5.2 Inviter des utilisateurs à partir d’un groupe
    6. 2.6 Paramètres d’un groupe
      1. 2.6.1 Paramètres généraux
      2. 2.6.2 Paramètres avancés
  3. 3. Planifier et suivre son travail dans GitLab
    1. 3.1 Comprendre la notion de ticket
      1. 3.1.1 Créer un nouveau ticket
      2. 3.1.2 Composants d’un ticket ouvert
      3. 3.1.3 Consulter les tickets
    2. 3.2 Travailler avec des labels
    3. 3.3 Travailler avec les tableaux des tickets
    4. 3.4 Travailler avec les jalons
  4. 4. Faire une requête de fusion
    1. 4.1 Créer une nouvelle branche à fusionner
    2. 4.2 Fusionner une branche dans une autre
  5. 5. Autres fonctionnalités d’organisation du travail
    1. 5.1 Les GitLab Pages
    2. 5.2 Le Wiki
  6. 6. Conclusion
Les pipelines CI/CD dans GitLab
  1. 1. Introduction
  2. 2. Définition de la notion de pipeline
    1. 2.1 La notion d’étape d’un pipeline
      1. 2.1.1 Les trois étapes principales
      2. 2.1.2 La définition explicite des étapes
    2. 2.2 La notion de job d’un pipeline
      1. 2.2.1 Les jobs et l’exécution de commandes
      2. 2.2.2 Les jobs et les GitLab Runners
    3. 2.3 Les modes de déclenchement d’un pipeline
    4. 2.4 Travailler avec les pipelines dans GitLab
      1. 2.4.1 Les outils pour visualiser l’état des pipelines
      2. 2.4.2 Le contrôle d’exécution des pipelines
    5. 2.5 Un seul pipeline par projet
  3. 3. Les deux parties d’un pipeline
    1. 3.1 La partie intégration continue (CI)
      1. 3.1.1 Le shift left et la collaboration
      2. 3.1.2 Exemples de tests effectués dans la partie CI
    2. 3.2 La partie livraison ou le déploiement continus (CD)
      1. 3.2.1 Les environnements de déploiement
      2. 3.2.2 Le déploiement manuel ou automatisé
      3. 3.2.3 Exemples de règles de déploiement dans la partie CD
      4. 3.2.4 Les environnements de révision GitLab
  4. 4. Comprendre le fichier .gitlab-ci.yml
    1. 4.1 Qu’est-ce que le YAML ?
    2. 4.2 La syntaxe du YAML
      1. 4.2.1 L’indentation
      2. 4.2.2 Les paires clés-valeur
      3. 4.2.3 Les listes
      4. 4.2.4 Les commentaires
      5. 4.2.5 Les dictionnaires
  5. 5. Exemple de pipeline Hello world
    1. 5.1 Présentation du fichier .gitlab-ci.yml
    2. 5.2 Voir un pipeline en cours d’exécution
    3. 5.3 Analyse de la sortie d’un job
    4. 5.4 Consulter la liste et l’état des pipelines
      1. 5.4.1 L’onglet Pipelines
      2. 5.4.2 Consulter la liste des pipelines
      3. 5.4.3 Les principaux états des pipelines
  6. 6. Créer un premier fichier de configuration de pipeline
    1. 6.1 Indications sur l’utilisation des composants
    2. 6.2 Le mot-clé default
    3. 6.3 Le mot-clé stage
      1. 6.3.1 Les étapes définies par défaut
      2. 6.3.2 Les étapes spéciales .pre et .post
      3. 6.3.3 Quelques points à retenir sur les étapes
    4. 6.4 Le mot-clé script
      1. 6.4.1 Structure de données du mot-clé script
      2. 6.4.2 Les mots-clés before_script et after_script
    5. 6.5 Comprendre l’interdépendance des jobs
      1. 6.5.1 Exemple de jobs sans déclaration de dépendance
      2. 6.5.2 Le mot-clé dependencies
      3. 6.5.3 Le mot-clé artifacts
      4. 6.5.4 Consulter la liste des artéfacts
    6. 6.6 Le mot-clé image
      1. 6.6.1 Utilisation au niveau global
      2. 6.6.2 Utilisation au niveau local
      3. 6.6.3 Spécifier la version d’une image
      4. 6.6.4 Le mot-clé entrypoint
      5. 6.6.5 Le mot-clé pull_policy
  7. 7. Contrôler l’exécution des pipelines
    1. 7.1 Empêcher l’exécution d’un pipeline
    2. 7.2 Les mots-clés de contrôle d’exécution
  8. 8. Autres modes de déclenchement des pipelines
    1. 8.1 L’exécution manuelle
    2. 8.2 L’exécution planifiée
    3. 8.3 L’exécution avec une étiquette Git
    4. 8.4 Autres types d’exécution
  9. 9. Conclusion
Travailler avec les GitLab Runners
  1. 1. Introduction
  2. 2. Comprendre la notion de GitLab Runner
    1. 2.1 Définition d'un GitLab Runner
    2. 2.2 L'application GitLab Runner
    3. 2.3 Les plateformes supportées
    4. 2.4 Les pipelines et le fonctionnement d’un runner
    5. 2.5 De l'enregistrement à l'exécution des jobs
    6. 2.6 Les processus d’un runner
  3. 3. Les trois types de GitLab Runners
    1. 3.1 Les runners de projet
    2. 3.2 Les runners de groupe
    3. 3.3 Les runners d’instance
  4. 4. Comprendre la notion d’exécuteur
    1. 4.1 Les types d’exécuteurs
    2. 4.2 Les exécuteurs Docker
      1. 4.2.1 Docker Engine
      2. 4.2.2 Docker Machine
    3. 4.3 L’exécuteur Kubernetes
      1. 4.3.1 Méthodes de connexion à un cluster
      2. 4.3.2 Complexité de l’exécuteur Kubernetes
    4. 4.4 Les exécuteurs de type hyperviseur
    5. 4.5 Les exécuteurs basés sur un hôte
      1. 4.5.1 L'exécuteur Shell
      2. 4.5.2 L'exécuteur SSH
    6. 4.6 Les exécuteurs personnalisés
  5. 5. Comprendre la notion d’étiquette
    1. 5.1 Attribuer une étiquette à un runner
    2. 5.2 Les étiquettes des runners partagés
  6. 6. Installer et enregistrer un GitLab Runner
    1. 6.1 Installation sur un poste de travail Windows
      1. 6.1.1 Créer un nouveau runner de projet
      2. 6.1.2 Télécharger et installer le runner
      3. 6.1.3 Enregistrer le runner
    2. 6.2 Exécuter le pipeline pour tester le runner
  7. 7. Sécurité et surveillance des GitLab Runners
    1. 7.1 La sécurité et les exécuteurs
    2. 7.2 La protection des données sensibles
    3. 7.3 La surveillance des runners
    4. 7.4 Consulter les logs des runners
  8. 8. Optimiser la performance des GitLab Runners
    1. 8.1 La taille et les modes de clonage d’un dépôt
      1. 8.1.1 Récupération incrémentale (incremental fetching)
      2. 8.1.2 Clone Git superficiel (Git shallow clone)
    2. 8.2 La performance selon le type de runner
      1. 8.2.1 Utilisation des runners de projet
      2. 8.2.2 Utilisation des runners de groupe
    3. 8.3 La mise en cache et la conservation des artéfacts
      1. 8.3.1 Optimiser la performance avec la mise en cache
      2. 8.3.2 Optimiser la performance avec les artéfacts
  9. 9. Conclusion
Analyser et tester son code source
  1. 1. Introduction
  2. 2. Compilation et interprétation du code source
    1. 2.1 Les types de langages
      1. 2.1.1 Les langages compilés
      2. 2.1.2 Les langages interprétés
      3. 2.1.3 Les langages hybrides
    2. 2.2 La différence entre la compilation et le build
    3. 2.3 États du code source analysé
    4. 2.4 Exemple de compilation d’une fonction en Go
      1. 2.4.1 Écrire une fonction "Hello, World!"
      2. 2.4.2 Créer le fichier .gitlab-ci.yml
      3. 2.4.3 Exécuter le pipeline
      4. 2.4.4 L’artéfact généré par le job
  3. 3. Analyser la qualité du code source
    1. 3.1 Abandon de l’outil natif d’analyse de la qualité du code
    2. 3.2 Utilisation d’outils spécifiques d’analyse du code
    3. 3.3 Comprendre la couverture de code
    4. 3.4 Analyse de la syntaxe et linting du fichier .gitlab-ci.yml
      1. 3.4.1 Valider le pipeline
      2. 3.4.2 Échantillon de CI/CD Lint
  4. 4. Exemple d’analyse d’un script Python
    1. 4.1 Écrire une fonction pour générer un mot de passe
    2. 4.2 Préparer l’environnement
    3. 4.3 Écrire le fichier .gitlab-ci.yml
      1. 4.3.1 Analyser la qualité du code avec pylint
      2. 4.3.2 Analyser le typage avec mypy
      3. 4.3.3 Trois tests unitaires avec pytest
    4. 4.4 Exemple de test de fuzzing
  5. 5. Autres types de tests
    1. 5.1 Les tests de charge
    2. 5.2 Les tests de performance de navigateurs
    3. 5.3 Les tests d’accessibilité web
  6. 6. Conclusion
Travailler avec les registres et les environnements
  1. 1. Introduction
  2. 2. Les registres intégrés de GitLab
    1. 2.1 Les registres du menu Deploiement
    2. 2.2 Les registres du menu Opération
  3. 3. Travailler avec le registre de paquets
    1. 3.1 Définition du registre de paquets
    2. 3.2 Les formats de paquets supportés
    3. 3.3 S’authentifier auprès du registre
      1. 3.3.1 Créer un jeton de déploiement
      2. 3.3.2 Stocker le mot de passe dans une variable
      3. 3.3.3 Commande curl pour s’authentifier au registre
    4. 3.4 Construire et publier un paquet dans le registre
    5. 3.5 Utiliser un paquet stocké dans le registre
  4. 4. Travailler avec le registre de conteneurs
    1. 4.1 Définition du registre de conteneurs
    2. 4.2 Les formats d’image de conteneur supportés
    3. 4.3 S’authentifier auprès du registre
    4. 4.4 Construire et publier une image dans le registre
    5. 4.5 Utiliser une image stockée dans le registre
  5. 5. Travailler avec les registres d’infrastructure
  6. 6. Travailler avec les environnements
    1. 6.1 Définition d’un environnement
    2. 6.2 Créer un nouvel environnement
    3. 6.3 Créer un environnement de révision
    4. 6.4 Sécurisation des secrets de déploiement
    5. 6.5 Déploiements dans un cluster Kubernetes
      1. 6.5.1 Le déploiement CI/CD traditionnel
      2. 6.5.2 Le déploiement avec l’approche GitOps
  7. 7. Conclusion
Sécuriser son code source : le volet DevSecOps
  1. 1. Introduction
  2. 2. Le fonctionnement des analyseurs de sécurité
    1. 2.1 Le mode d’exécution des analyseurs
    2. 2.2 Les analyseurs et les langages de programmation
    3. 2.3 Les analyseurs et l’exécution des pipelines
    4. 2.4 L’intégration d’analyseurs tiers
    5. 2.5 Les politiques de sécurité
  3. 3. L'analyse de type SAST
    1. 3.1 Fonctionnement de l’analyseur
    2. 3.2 Activer l’analyseur en mode graphique
    3. 3.3 Activer l'analyseur en mode manuel
    4. 3.4 Configurer l’analyseur
  4. 4. La détection de secrets
    1. 4.1 Fonctionnement de l’analyseur
    2. 4.2 Activer l’analyseur
    3. 4.3 Configuration de l’analyseur
  5. 5. L’analyse de type DAST
    1. 5.1 Fonctionnement de l’analyseur
    2. 5.2 Activer et configurer l’analyseur
  6. 6. L’analyse des dépendances
    1. 6.1 Fonctionnement de l’analyseur
    2. 6.2 Activer et configurer l’analyseur
  7. 7. L’analyse des conteneurs
    1. 7.1 Fonctionnement de l’analyseur
    2. 7.2 Activer et configurer l’analyseur
  8. 8. L’analyse de l’Infrastructure as Code
    1. 8.1 Fonctionnement de l’analyseur
    2. 8.2 Exemple de fichier Terraform à tester
    3. 8.3 Activer et configurer l’analyseur
  9. 9. L’analyse de conformité des licences
    1. 9.1 Fonctionnement de l’analyseur
      1. 9.1.1 Consulter la liste des licences d’un projet
      2. 9.1.2 Définir une politique de conformité
    2. 9.2 Consulter les résultats de l’analyse
  10. 10. Les autres types d’analyseurs de sécurité
    1. 10.1 Test à données aléatoires guidées par couverture de code
    2. 10.2 Test de l’API par injection de données aléatoires
    3. 10.3 Protection contre les poussées secrètes
  11. 11. L’intégration d’analyseurs de sécurité tiers
  12. 12. Les outils de surveillance des vulnérabilités
    1. 12.1 Tableau de bord de sécurité
    2. 12.2 Rapport de vulnérabilités
    3. 12.3 Centre de conformité et événements d’audit
    4. 12.4 Les onglets des pipelines
  13. 13. Conclusion
Aller plus loin avec les pipelines CI/CD
  1. 1. Introduction
  2. 2. Optimiser l’exécution des pipelines avec les variables
    1. 2.1 Le rôle des variables
    2. 2.2 Le mode d’utilisation des variables
    3. 2.3 Les types de variables
      1. 2.3.1 Les variables prédéfinies
      2. 2.3.2 Les variables définies par l’utilisateur
      3. 2.3.3 Les variables définies au niveau du groupe
      4. 2.3.4 Les variables définies au niveau du pipeline
      5. 2.3.5 Les variables définies au niveau d’un runner
      6. 2.3.6 Les variables propres à un langage spécifique
    4. 2.4 La portée des variables
      1. 2.4.1 Les variables globales
      2. 2.4.2 Les variables de prépipeline
      3. 2.4.3 Les variables spécifiques à un job
      4. 2.4.4 Les variables spécifiques à un script
  3. 3. Contrôler l’exécution avec les règles
    1. 3.1 Le rôle des règles dans les pipelines
    2. 3.2 La structure conditionnelle des règles
    3. 3.3 Tableau des opérateurs disponibles pour les règles
      1. 3.3.1 L’exécution d’un job sur une branche spécifique
      2. 3.3.2 L’exécution d’un job en fonction d’une variable
      3. 3.3.3 L’exécution d’un job si un fichier existe
      4. 3.3.4 L’exécution d’un job si un fichier a changé
      5. 3.3.5 Utiliser des expressions régulières dans les règles
  4. 4. Optimiser la performance des pipelines
    1. 4.1 Les pipelines basés sur le modèle DAG
      1. 4.1.1 Fonctionnement des pipelines DAG
      2. 4.1.2 Créer un pipeline DAG
    2. 4.2 L’exécution en parallèle de plusieurs jobs
      1. 4.2.1 Fonctionnement du parallélisme
      2. 4.2.2 Le parallélisme multienvironnement
      3. 4.2.3 Le parallélisme pour dupliquer un job spécifique
    3. 4.3 Les pipelines parent-enfant
      1. 4.3.1 Fonctionnement des pipelines parent-enfant
      2. 4.3.2 Créer un pipeline parent-enfant
    4. 4.4 Les pipelines multiprojets
      1. 4.4.1 Fonctionnement des pipelines multiprojets
      2. 4.4.2 Créer un pipeline multiprojet
    5. 4.5 Les pipelines structurés en plusieurs fichiers YAML
      1. 4.5.1 Fonctionnement des pipelines à plusieurs fichiers YAML
      2. 4.5.2 Créer un pipeline à plusieurs fichiers YAML
    6. 4.6 Le contrôle de l’héritage dans les pipelines
      1. 4.6.1 Fonctionnement du contrôle de l’héritage
      2. 4.6.2 Empêcher l’héritage de variables
      3. 4.6.3 Désactiver l’héritage par défaut d’un pipeline enfant
      4. 4.6.4 Empêcher l’héritage par défaut des étapes
      5. 4.6.5 Héritage des paramètres par défaut
  5. 5. L’utilisation du cache dans un pipeline
    1. 5.1 La différence entre le cache et les artéfacts
    2. 5.2 Utiliser un cache dans un pipeline
      1. 5.2.1 Mise en cache de fichiers pour un job
      2. 5.2.2 Partage d’un cache entre plusieurs jobs
      3. 5.2.3 Gestion des stratégies de téléchargement et téléversement
    3. 5.3 Configurer un backend de cache dans le cloud
  6. 6. Travailler avec les ancres YAML
    1. 6.1 Le fonctionnement des ancres YAML dans GitLab
    2. 6.2 Définir et réutiliser une ancre YAML
    3. 6.3 Combiner les ancres YAML avec extends
  7. 7. Conclusion
Construire un pipeline CI/CD de bout en bout
  1. 1. Introduction
  2. 2. Prérequis techniques
  3. 3. Présentation de Terraform
    1. 3.1 Les notions de state et de provider
    2. 3.2 Le workflow Terraform
    3. 3.3 Un outil d’Infrastructure as Code
    4. 3.4 Changement de licence et naissance d’OpenTofu
    5. 3.5 Installer Terraform
      1. 3.5.1 Windows
      2. 3.5.2 macOS
      3. 3.5.3 Linux
  4. 4. Préparation de l'environnement
    1. 4.1 Structurer le dépôt de notre projet
    2. 4.2 Utiliser l’extension HashiCorp Terraform
    3. 4.3 Utiliser l’extension GitLab ou GitLab CLI
  5. 5. Créer les fichiers de configuration Terraform
    1. 5.1 Organisation et fonctionnement des fichiers .tf
    2. 5.2 Le langage de configuration HCL
    3. 5.3 Brève présentation de la syntaxe du HCL
      1. 5.3.1 Blocs
      2. 5.3.2 Paires clé-valeur
      3. 5.3.3 Accolades
      4. 5.3.4 Listes et objets
      5. 5.3.5 Interpolation
    4. 5.4 Définir le provider dans le fichier providers.tf
      1. 5.4.1 Fonctionnement général d’un provider
      2. 5.4.2 Fonctionnement du provider « azurerm »
    5. 5.5 Configurer le backend dans le fichier providers.tf
      1. 5.5.1 Fonctionnement général du backend
      2. 5.5.2 Fonctionnement du backend GitLab
      3. 5.5.3 Interactions avec le backend GitLab
    6. 5.6 Configurer l’accès au backend GitLab en local
      1. 5.6.1 Créer un jeton d’accès personnel dans GitLab
      2. 5.6.2 Fonctionnement du jeton d’accès personnel
    7. 5.7 Configurer l’accès au backend avec terraform init
    8. 5.8 Déclarer les variables dans le fichier variables.tf
    9. 5.9 Assigner les valeurs dans le fichier terraform.tvars
    10. 5.10 Définir les ressources dans le fichier main.tf
      1. 5.10.1 Création du groupe de ressources
      2. 5.10.2 Configuration du réseau
      3. 5.10.3 Création de la machine virtuelle
      4. 5.10.4 Installation et enregistrement du GitLab Runner
      5. 5.10.5 Fonctionnement du fichier main.tf
    11. 5.11 Définir des sorties dans le fichier outputs.tf
  6. 6. Autres fichiers nécessaires au projet
    1. 6.1 Créer un fichier .gitignore
    2. 6.2 Créer un fichier .env pour travailler en local
  7. 7. Création d’un Service Principal et d’un Secret
    1. 7.1 Créer un Service Principal et un Secret
    2. 7.2 Configurer les permissions ARM API
  8. 8. Ajout de variables d’environnement dans GitLab
    1. 8.1 Créer les variables d’environnement ARM
    2. 8.2 Créer les variables d’environnement SSH et GitLab
      1. 8.2.1 Créer un jeton d’enregistrement de GitLab Runner
      2. 8.2.2 Fonctionnement des variables d’environnement GitLab
  9. 9. Création du fichier de configuration du pipeline
    1. 9.1 Créer le fichier .gitlab-ci.yml
    2. 9.2 Construire pas à pas le fichier .gitlab-ci.yml
      1. 9.2.1 Déclaration de l’image Docker à utiliser
      2. 9.2.2 Définition des variables d’environnement
      3. 9.2.3 Gestion du cache
      4. 9.2.4 Commande exécutée avant chaque job
      5. 9.2.5 Définition des étapes du pipeline
      6. 9.2.6 Initialisation de Terraform
      7. 9.2.7 Validation des fichiers Terraform
      8. 9.2.8 Génération d'un plan d'exécution Terraform
      9. 9.2.9 Application du plan Terraform (déploiement)
      10. 9.2.10 Suppression des ressources Terraform (manuel)
    3. 9.3 Vérifier le déploiement sur Microsoft Azure
    4. 9.4 Vérifier l’enregistrement du GitLab Runner
    5. 9.5 Ajouter des jobs d’analyse du code source
      1. 9.5.1 Créer un pipeline enfant pour les analyses du code source
      2. 9.5.2 Modifier le fichier .gitlab-ci.yml
    6. 9.6 Ajouter des étapes de sécurisation du code source
      1. 9.6.1 Créer un pipeline enfant pour les scanners de sécurité GitLab
      2. 9.6.2 Modifier le fichier .gitlab-ci.yml
  10. 10. Conclusion
GitLab à l'ère de l'intelligence artificielle
  1. 1. Introduction
  2. 2. GitLab et l’intelligence artificielle
    1. 2.1 L’assistant GitLab Duo
    2. 2.2 La fonctionnalité GitLab Duo Chat
    3. 2.3 Autres fonctionnalités propulsées par l’IA
    4. 2.4 Le partenariat de GitLab Duo avec Amazon Q
  3. 3. Le lancement du AI for Economic Opportunity Fund
  4. 4. Le support pour les approches AIOps et MLOps
  5. 5. Conclusion : l’avenir de GitLab avec l’IA
  6.  
  7.  
  8.  
  9.  
  10. Index

Luc BRETON

Luc BRETON travaille depuis plusieurs années dans les domaines de l'administration système et du cloud computing avec une orientation DevOps. Après avoir été consultant en informatique, il a été également conseiller en infrastructure technologiques pour deux ministères du gouvernement du Québec. Il occupe aujourd'hui un poste d'administrateur système et cloud computing pour une grande chaîne de pharmacies québécoise. Passionné par la transmission de connaissance, il est également l'auteur d'un ouvrage sur la virtualisation aux Éditions ENI.

Découvrir tous ses livres

  • La virtualisation avec VMware vSphere 8 Notions fondamentales

Nos nouveautés

voir plus