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
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.Â
Créer et publier sa propre image
- 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
Avis
"La clarté de la présentation, les sujets traités sont un vrai plus dans cette formation" Jimmy Delas (Lead Developper @Ector)