GitLab n’est pas seulement un gestionnaire de versions, c’est aussi une solution compétitive pour l’ingénierie DevOps. Ce cours pratique vous apprendra à utiliser cet outil dans le but d’améliorer la collaboration dans un projet et d’automatiser un cycle de développement complet (constructions, tests, déploiements…).

Description

Durée : 28 heures
Modalités techniques d’évaluation : Évaluation des connaissances par QCM, évaluation des compétences au travers de travaux pratiques et de cas d’études. Contrôle de l’acquisition des connaissances et des compétences pendant la formation par le formateur.
Moyens pédagogiques : Apports théoriques réalisés en classe et complétés par de nombreux travaux pratiques permettent aux participants de disposer d’une expérience concrète. A l’issue des sessions magistrales, réalisation de cas d’études tutorés.

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Connaître l’offre GitLab
  • Pratiquer la gestion de versions avec Git et collaborer avec GitLab
  • Mettre en place l’intégration continue (CI) et le déploiement continu (CD) avec GitLab
  • Appréhender les éléments constitutifs d’une usine logicielle DevOps

Travaux pratiques

50% à 70% de travaux pratiques. Alternance de présentations théoriques et de mises en application.
PROGRAMME DE FORMATION

L’offre GitLab

  • GitLab CE (Community edition). GitLab EE (Enterprise edition).
  • Les différents types d’utilisation de GitLab : gitlab.com, on premise, on cloud (AWS, GCP).
  • Procédure d’inscription sur gitlab.com.

Travaux pratiques
Création d’un compte GitLab sur gitlab.com. Parcours de l’interface.

Rappels sur Git et son utilisation avec GitLab

  • Les concepts Git : blob, tree, commit, revision, branche, tag…
  • Gestion locale des fichiers. Consultation et modification de l’historique de travail.
  • Gestion des branches. Fusions des branches et gestion des conflits.

Travaux pratiques
Mise en place d’un dépôt distant et simulation d’un travail collaboratif.

La gestion du dépôt avec GitLab

  • La gestion des collaborateurs d’un projet et leurs droits.
  • Le système d’issues et le lien avec les commits.
  • Présentation du wiki et des snippets.

Travaux pratiques
Paramétrage des droits et création de merge requests.

GitLab CI/CD

  • Présentation de GitLab CI/CD et des GitLab runners.
  • Présentation de Docker.
  • Le fichier manifeste gitlab-ci.yml, présentation du langage YAML.
  • Les balises essentielles pour décrire des étapes, des jobs, des traitements (stages, images, script…).
  • Le suivi d’exécution du pipeline. Jobs automatiques, manuels et planifiés.
  • Les artifacts et l’amélioration des performances avec le cache.
  • La documentation officielle relative à la syntaxe du fichier manifeste.
  • La gestion des environnements.

Travaux pratiques
Exemples simples de création et d’enchaînement de jobs.

Plus loin dans l’utilisation des runners

  • Les types de runners (shared runner, specific runner et group runner).
  • Les shared runners disponibles sur gitlab.com gérés par l’équipe GitLab.
  • Scalabilité des runners avec Docker Machine.
  • Le Docker executor et les images disponibles : MySQL, PostgreSQL, Redis, MongoDB, Ruby…
  • Les tests d’intégration, les tests fonctionnels, les tests de montée en charge.
  • Le déploiement vers le cloud AWS.
  • Le Kubernetes executor et la répartition des jobs dans un cluster Kubernetes.
  • Intégration de l’outil de monitoring Prometheus.

Travaux pratiques
Mise en place d’un specific runner. Exécution d’enchaînements de jobs sur différents runners.

Fonctionnalités complémentaires de GitLab

  • Shared runners sous Windows.
  • Infrastructure as code avec Terraform.
  • Auto DevOps.
  • Tests de sécurité dynamiques (DAST).