GitLab

Formation Gitlab : maîtriser la plateforme de développement collaboratif (l’alternative à GitHub)

Les stagiaires seront capables de travailler sur un outil leur permettant de centraliser, formaliser et organiser le travail d’équipe sur des petits comme des gros projets. GitLab est une plateforme extrêmement complète, permettant de gérer ses projets avec des boards kanban. Il est très simple par la suite de lier les branches et merges requests à ces tâches. L’implémentation d’un outil d’intégration continue et de déploiement continu apporte une facilité aux développeurs pour permettre d’automatiser certaines actions. Ainsi, apporte une standardisation dans leurs méthodes de développements. Pour les équipes souhaitant faire de la conteneurisation, nous aborderons le registry. Après la maîtrise de l’intégration continue, les stagiaires seront capables de relier toutes ces parties distinctes dans un process simple et bien établi. Si la sécurité est un point important de votre organisation, pas d’inquiétude nous n’hésitons pas à faire un focus sur les différents points permettant de sécuriser nos actions. Nous aurons l’occasion d’utiliser des services tiers pour évaluer notre projet.

Résumé

- Logiciels et principaux outils concernés : Git, Gitlab, un IDE, un terminal
- Durée : deux (2) journées, ou 4 demi-journées en visioconférence, sur 14h00
- Objectifs : Être en mesure d’utiliser GitLab pour la gestion d’un projet avec plusieurs collaborateurs. Être en capacité d’automatiser ses processus de développement avec de l’intégration Continue et savoir fiabiliser ses déploiements avec le déploiement continu. Être averti aux bonnes pratiques de collaboration en équipe sur un projet Git
- Pré-requis : Maîtriser Git (lien vers la formation GIT) et avoir des connaissances dans des langages de développement et/ou dans la mise en place d’une application sur serveur GNU/Linux.
- Public : Développeur, Administrateur système, Gestionnaire de Déploiements, Ingénieur Assurance Qualité, Responsable Sécurité Informatique
- Pédagogie : la formation alternera présentation théorique et mise en application.

Présentation

Liens majeurs :

- Card du landscape cncf.io : https://landscape.cncf.io/selected=git-lab
- site officiel : https://about.gitlab.com/
- wikipedia : https://fr.wikipedia.org/wiki/GitLab
- depot git : https://gitlab.com/gitlab-org

Programme

Les prérequis
- Être averti au Travail Collaboratif
- Maîtriser Git et ses Workflows

Introduction à la philosophie GitOps
- Savoir gérer un projet : échange entre équipes, répartition des tâches
- Savoir réduire le "Time To Market", gagner du temps
- Savoir partager son savoir et ses responsabilités
- Comprendre les enjeux de l’Infrastructure As Code

Exploration de Gitlab
- Être averti à l’écosysteme GitLab
- Apprendre son fonctionnement
- Découvrir l’interface de Gitlab
- Connaître les plateformes alternatives
- Comprendre le "GitLab Flow"
- Être sensibilisé aux diverses fonctionnalités

Gestion de Projet
- Savoir créer un "repository"
- Être en mesure de gérer les utilisateurs
- Savoir créer des tâches (issues / bug tracking)
- Connaître la fonction "Board"
- Comprendre la notion des "milestones"
- Savoir gérer les "labels"
- Être averti à la fonction "wiki"
- Maîtriser le paramétrage de ses projets
- Être en mesure de personaliser le projet avec des badges

Travail d’équipe
- Maîtriser son installation et sa configuration Git
- Maîtriser la création de clé ssh
- Savoir créer des "branches"
- Connaître la fonction de "merge request"
- Savoir faire une "review"
- Être en capacité de résoudre des conflits
- Maîtriser la gestion du temps des tâches

Intégration et Déploiement Continu
- Découvrir les concepts d’intégration et de Déploiement Continu (CI/CD)
- Découvrir le "yaml"
- Saisir le fonctionnement des "GitLab Runner"
- Découvrir la syntaxe "gitlab-ci"
- Maîtriser la construction du fichier "gitlab-ci.yml"
- Être averti aux méthodes de déploiement
- Savoir intégrer des services tiers (sonarqube, notification rocketchat)

Conteneurisation
- Maîtriser la technologie des conteneurs
- Comprendre la notion de "registry"
- Maîtriser les interactions avec le "registry"
- Savoir intégrer les interactions dans "Gitlab-ci"

Sécurité
- Savoir utiliser les outils de sécurité fournis
- Comprendre l’intérêt des variables d’environements
- Assimiler ce que sont les "Secured by design" et "Privacy by design"