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, elle 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, nous faisons un focus sur les différents points permettant de sécuriser nos actions.

Nous aurons aussi 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 : 14 heures
- Objectifs :
- Utiliser GitLab pour la gestion d’un projet avec plusieurs collaborateurs.
- Automatiser ses processus de développement avec de l’intégration Continue
- Fiabiliser ses déploiements avec le déploiement continu.
- Appliquer les 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
- Méthodes mobilisées : Alternance d’apports théoriques et d’exercices de mise en application pratique.
- Modalités et délais d’accès : Sur inscription préalable au minimum 1 semaine avant le début de la formation selon disponibilité du formateur.
- Modalités d’évaluations : Une évaluation du niveau des stagiaires est réalisée avant l’entrée en formation par téléphone ou au moyen d’un questionnaire. Évaluation des acquis et de la satisfaction en fin de formation.
- Accessibilité aux personnes en situation de handicap : Conformité du matériel et des locaux aux personnes à mobilité réduite. Nous informer si un stagiaire en situation de handicap demande une adaptation.
- Taux de satisfaction 2i2l : 100% des stagiaires sont "satisfaits" ou "très satisfaits" à l’issue de leur formation.
- Tarif : Nous consulter.

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

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
- Créer un "repository"
- Gérer les utilisateurs
- Savoir créer des tâches (issues / bug tracking)
- Utiliser 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 personnaliser le projet avec des badges

Travail d’équipe
- Maîtriser son installation et sa configuration Git
- Maîtriser la création de clé ssh
- Créer des "branches"
- Connaître la fonction de "merge request"
- Faire une "review"
- 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
- 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"
- 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
- Différencier les "Secured by design" et "Privacy by design"