Workshop CI/CD – Docker, Gitlab et Kubernetes
Docker a rencontré un succès fulgurant car il apporte une solution aux développeurs pour automatiser simplement le déploiement de l’environnement nécessaire à leurs besoins.
Kubernetes vient de l’écosystème Google, il apporte une solution parfaitement adaptée à l’orchestration des conteneurs, permettant aux équipes de l’IT d’industrialiser le déploiement et la supervision des applications conteneurisées.
Ces deux outils sont aujourd’hui des maillons indispensables de l’approche CI/CD qui tend à s’imposer dans l’entreprise.
À l’issue de cette formation, vous maîtriserez le cycle de vie d’un conteneur et saurez le paramétrer. Vous comprendrez l’architecture Kubernetes et serez capable d’y déployer une application !
- %de travaux pratiques
- %de nos formateurs travaillent sur le terrain
- jours
À qui s’adresse cette formation CI/CD ?
Description de la formation CI/CD
Présentation
Docker a rencontré un succès fulgurant. Il est passé de l’ombre à lumière en quelques mois, en apportant aux développeurs la réponse qu’ils attendaient : Automatiser simplement le déploiement de l’environnement nécessaire à son besoin. Kubernetes vient de l’écosystème Google, il apporte une solution parfaitement adaptée à l’orchestration des conteneurs, permettant aux équipes de l’IT d’industrialiser le déploiement et la supervision des applications conteneurisées.
Ces deux outils sont aujourd’hui des maillons indispensables de l’approche CI/CD qui tend à s’imposer dans l’entreprise. Mais un lien manque, entre ces deux outils, pour obtenir une suite logicielle robuste, qui répond aux attentes des DevOps : l’usine de construction de nos applications. Plusieurs outils existent sur le marché : Jenkins, Gitlab, Bitbucket Travis, CircleCI, … Nous avons fait le choix de faire cette formation avec Gitlab, mais l’usage des outils précédemment évoqués reste envisageable durant la formation.
Méthode pédagogique
La formation se passe en mode présentiel (face à face), et se compose de 80% de travaux pratiques (Mises en situation, débats, exercices). Une évaluation quotidienne de l’acquisition des connaissances de la veille est effectuée.
Une synthèse est proposée en fin de formation. Un support de cours sera remis à chaque participant comprenant les slides sur la théorie, les exercices et travaux pratiques et les corrigés de ces derniers. Une évaluation à chaud sera proposée au stagiaire à la fin du cours.
Un support de cours sera remis à chaque participant comprenant les slides sur la théorie, les exercices et les corrigés de ces derniers. Une feuille d’émargement par demi-journée de présence est fournie, en fin de formation, ainsi qu’une attestation de formation si le stagiaire a bien assisté à la totalité de la session.
Objectifs
- Comprendre le cycle de vie d’un conteneur
- Paramétrer le fonctionnement d’un conteneur
- Créer et publier ses propres images
- Automatiser la création et le déploiement au sein d’une usine logicielle (ici avec Gitlab)
- Architecture Kubernetes
- Déployer une application dans Kubernetes
- Utiliser un cluster Kubernetes
- Packagez et déployez vos applications avec Helm
Audience
- Développeurs
- Administrateurs systèmes
- Chefs de projet
- Architectes techniques
Pré-requis
Connaître les bases de la ligne de commande Linux.
Le formateur
Le formateur est un expert du domaine qui intervient sur le sujet depuis plusieurs années en formation mais aussi en conseil. Doté d’une grande qualité d’écoute, sa pédagogie et sa compétence technique vous permettront d’acquérir les compétences Docker et Kubernetes.
Le programme
Présentation
- LXC sur Linux : l’ancêtre de docker
- La notion de conteneur
- Installer Docker
- Définir “docker host” et “docker daemon”
Utiliser Docker
- Utiliser une image docker
- Démarrer et paramétrer un conteneur
- Volume et réseau : connecter votre conteneur au monde extérieur
- Exploitation d’un conteneur : logs, connexion au conteneur …
- Exercice : Création d’une application de collecte de données avec des conteneurs. Utilisation de deux conteneurs : NIFI pour collecter, MongoDB pour stocker.
Présentation : créer l’image adaptée à ses besoins
- Dockerfile : le fichier qui décrit votre nouvelle image
- Choisir une image de base pour sa propre image
- Les différentes directives de création de l’image : RUN, COPY, WORKDIR, ENTRY POINT, EXPOSE, …
- Publication dans un référentiel d’images docker (docker hub)
- Exercice : Création d’une image NIFI pré-paramétrée pour nos besoins
Gitlab : un outil de CI
- Git un outil de gestion de configuration du code source de vos applications
- Différence entre Git et Github, Gitlab ou Bitbucket
- Travail collaboratif : les branches dans git
- Pull request : merger le travail des différents collaborateurs
- Définir un Gitflow d’entreprise
- Les acteurs du build : makefile, maven, dockerfile, …
- Automatiser le build dans une chaine d’intégration continue
- Automatisation de la construction et publication d’une image sous gitlab (ou autre outil de CI)
Kubernetes
- Présentation de Kubernetes : un orchestrateur de conteneur
- Kubernetes : déploiement sur un cloud public (AKS, EKS, GCP) ou cloud privé
- Architecture de Kubernetes kubectl : la ligne de commande de Kubernetes
- Un pod : l’unité de base manipulable dans Kubernetes
- Déploiement de conteneurs dans un cluster Kubernetes
- Définition d’un service
- La notion de volume pour gérer les données persistantes
- Ingress : Exposer vos services à l’extérieur du cluster
Exercice
- Mise en place d’une application complète utilisant les composants logiciels suivants : NIFI, Kafka, Kafka connect, Elastic search, Kibana, Kafka Streaming.
- Cette application collectera des données en temps réel sur internet, et mettra en place un mécanisme de dataviz pour les analyser en temps réels. L’ensemble de l’infrastructure sera déployé dans Kubernetes. Une explication suffisante de chacun de ces outils sera faîte pour mettre en place l’exercice
Tarif
2300 € HT
Formation à distance
Retengr vous permet aussi de suivre cette formation à distance, sous forme de classe virtuelle (6 participants maximum), avec un formateur expert sur le sujet. La formation se déroule via une connexion en visio conférence (ZOOM, GoogleMeet, Teams ou autres) et vous permet d’alterner théorie et pratique de façon accompagnée ou autonome, le tout dans le respect des objectifs pédagogiques et des évaluations des acquis.
Les émargements, évaluations, attestation de formation, remises des supports de cours et autres documents se feront en ligne.
En ce qui concerne le matériel informatique du participant, il est seulement préconisé un ordinateur et une connexion internet. Nous nous chargeons du reste.
Chaque participant se verra attribuer une Machine Virtuelle qui sera exécutée dans le Cloud d’Amazon. Il disposera alors de la puissance et des outils nécessaires pour le bon déroulement de la formation. Aucune installation de la part du participant n’est requise avant la formation.
Une journée type de formation à distance se décompose de la façon suivante :
Matin :
- 2h de théorie en visioconférence
- 10 à 15 minutes de présentation d’exercices en visio
- 1h de TP en autonomie avec possibilité de solliciter le formateur (partage d’écran à distance pour une assistance efficace).
Après-midi :
- 2h de théorie en visioconférence
- 10 à 15 minutes de présentation d’exercices en visio
- 1h de TP en autonomie avec possibilité de solliciter le formateur (partage d’écran à distance pour une assistance efficace).