GitLab-CI

Formation DevOps : automatiser un processus de développement avec GitLab-CI Automatiser un pipeline de développement avec GitLab-CI

Les participants seront capables de comprendre comment utiliser GitLab-CI pour automatiser leur pipeline de développement et réaliser une intégration et un déploiement continus. Avec l’option infrastructure, il sera également possible de confectionner un pipeline orienté Infrastructure as Code.

Résumé

Logiciels et principaux outils concernés : vscodium, git, gitlab, gitlab-ci
Durée : 7 heures, réalisables par lot de demi-journées, en présentiel ou en visioconférence
Objectifs :
- comprendre les principes de base de l’intégration et du déploiement continus, ainsi que la manière dont GitLab-CI peut être utilisé pour automatiser ce processus
- configurer un pipeline GitLab-CI pour votre propre projet
- évaluer votre pipeline de développement actuel
- identifier les domaines qui peuvent être automatisés en utilisant GitLab-CI
- concevoir un pipeline GitLab-CI pour un projet complexe en utilisant les fonctionnalités avancées de GitLab-CI
- automatiser et standardiser votre code d’infrastructure avec la suite d’outil Hashicorp
Pré-requis : nous demandons une connaissance de base de GitLab et de la gestion de code source avec Git, si ce n’est pas le cas n’hésitez pas à regarder nos autres formations sur le sujet. Avoir des notions sur l’architecture d’une application web et une expérience avec les langages de programmation couramment utilisés pour le développement web (par exemple, nodejs, python, java, etc.). Connaissance de base de la ligne de commande Linux/Unix facilite la mise en place des actions désirée. (Des formations GNU+linux sont disponibles si vous désirez une mise à niveau avant). Une familiarité avec l’utilisation de Docker et des conteneurs pour la personnalisation des actions peut être un plus. Enfin, si vous souhaitez l’option infrastructure, il vous faudra maitriser les outils de la suite hashicorp (voir les formations disponibles).
Public : administrateur de système GNU+Linux, administrateur système cloud, administrateur système devops , développeur, site reliability engineer, Gestionnaire de Déploiements, Ingénieur Assurance Qualité, Responsable Sécurité Informatique , Responsable technique , Expert en cybersécurité
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 : toutes nos formations sont accessibles aux personnes en situation de handicap, qu’il soit moteur, visuel, auditif ou cognitif ; quelles qu’en soient les particularités. Nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement. Nos locaux sont en rez-de-chaussée avec des places de parkings extérieures juste devant l’entrée du bâtiment. Aussi, merci de nous informer de vos besoins d’adaptation ; les échanges peuvent se faire et rester en toute confidentialité.
Taux de satisfaction 2i2l : 95 % des stagiaires sont « très satisfaits » ou « satisfaits » à l’issue de leur formation.
Tarif : pour une demande de formation interne, nous consulter.

Présentation

L’intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l’application développée. Le concept a pour la première fois été mentionné par Grady Booch et se réfère généralement à la pratique de l’extreme programming. Le principal but de cette pratique est de détecter les problèmes d’intégration au plus tôt lors du développement. De plus, elle permet d’automatiser l’exécution des suites de tests et de voir l’évolution du développement du logiciel.

L’intégration continue est de plus en plus utilisée en entreprise afin d’améliorer la qualité du code et du produit final [1].

- le site officiel
- la documentation
- la forge logicielle
- Les licences de distribution
- l’article Intégration Continue sur Wikipédia

Programme

Introduction :
- être averti à GitLab-CI et l’intégration continue
- découvrir les fonctionnalités de GitLab-CI

Compréhension :
- comprendre le principe de l’intégration et du déploiement continus
- savoir comment GitLab-CI peut aider à automatiser un processus
- comprendre les concepts clés de GitLab-CI

Application basique :
- maîtriser la configuration de GitLab-CI pour un projet simple tel que la parallélisation, les dépendances, les artifacts, les variables...
- comprendre les étapes du pipeline GitLab-CI
- maîtriser la syntaxe "yaml"
- déployer sur un environnement cible

Analyse :
- évaluer les performances et de la qualité de son pipeline de développement actuel
- identifier des domaines pouvant être automatisés avec GitLab-CI

Application avancée :
- concevoir un pipeline GitLab-CI pour un projet complexe
- utiliser des fonctionnalités avancées telles que les jobs parallèles, les workflows, les matrices
- conserver son résultat d’application dans le "package registry"
- maîtriser le build d’un conteneur docker
- conserver son conteneur dans le registry docker

Option Infrastructure :
- générer des images packer
- comprendre la mise en place d’un "remote backend" terraform avec gitlab et automatiser son usage
- utiliser la gestion des modules terraform
- maîtriser la configuration d’un pipeline terraform