Objectifs pédagogiques :
- 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
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.
Objectif opérationnel : Découvrir l’offre GitLab
Moyen d’évaluation : QCM
Rappels sur Git et son utilisation avec GitLab
- Les concepts Git : blob, tree, commit, révision, 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.
Objectif opérationnel : Maîtriser les connaissances de base de Git
Moyen d’évaluation : QCM
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.
Objectif opérationnel : Connaître le paramétrage des accès
Moyen d’évaluation : QCM
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.
Objectif opérationnel : Maîtriser les concepts de GitLab CI/CD
Moyen d’évaluation : QCM
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.
Objectif opérationnel : Assimiler l’utilisation des runners
Moyen d’évaluation : QCM
Consultant et formateur. Ingénieur développeur intervient durant tout le processus du développement d’applications.