RÔLE DES CONTENEURS DANS LES PLATEFORMES CLOUD
• Place du conteneur dans les plateformes cloud (PaaS)
• Exemples : Google App Engine, Heroku et OpenShift
INTRODUCTION AUX CONTENEURS LINUX• Notion de virtualisation logicielle avec des conteneurs Linux
• Mise en parallèle avec les technologies de virtualisation matérielle, et différences entre une machine
virtuelle et un conteneur
• Architecture générale de LXC : cgroups, namespaces et sécurité (SELinux et AppArmor)
INTRODUCTION À DOCKER• Historique et présentation de l'outil
• Explication du problème de dépendances logicielles, et la réponse apportée par Docker et les conteneurs Linux
• Présentation de l'architecture et de l'organisation globale du système avec le démon Docker
• Explication de la place que prend Docker dans le mouvement DevOps
GESTION DES CONTENEURS• Rôle du conteneur comme brique de base du système
• Création et lancement d'un conteneur
• Lancement d'un conteneur en mode démon
• Gestion globale : lancement, suppression, accès aux logs, redémarrage, attachement au conteneur
GESTION DES IMAGES DOCKER• Système de fichiers en couches (AUFS, Union Mount)
• Création d'une image par sauvegarde des changements d'un conteneur lancé
• Création d'images avec un Dockerfile
SYNTAXE ET PRISE EN MAIN DU DOCKERFILE• Zoom sur le Dockerfile et les différentes commandes
• Processus de création des couches de fichiers au sein du Dockerfile
UTILISATION DU REGISTRE DOCKER : LE DOCKER HUB• Le registre Docker et sa place dans la gestion des images
• Présentation du workflow pull / push pour le partage d'images
EXERCICE PRATIQUE : « CRÉATION ET GESTION DE CONTENEURS »• Introduction à la gestion de conteneurs avec la création ou la suppression de conteneurs
EXERCICE PRATIQUE « CRÉATION D'IMAGE, DOCKERFILE ET REGISTRE »• Création d'images et manipulation dans un registre
• Mise en pratique du pull/push d'images et création d'un Dockerfile pour construire sa propre image
LIAISON DE CONTENEURS ET RELATION PARENT / ENFANT• Mapping de ports réseaux entre le conteneur et l'hôte, et liens directs TCP entre conteneurs (relation parent / enfant)
• Utilisation des liens pour créer des applications liées entre elles (exemple du lien entre une base de données et une application web
GESTION ET PARTAGE DES VOLUMES (CONTENEURS DE DONNÉES)• Création de volumes persistants entre le conteneur et l'hôte
• Explication de son utilité pour la sauvegarde des changements persistants typiquement lors de l'utilisation d'une base de données ou la création de logs
• Création de conteneurs de données pouvant être montés par plusieurs conteneurs à la demande
Jour 2
DÉPLOYER SON ENVIRONNEMENT DE DÉVELOPPEMENT AVEC FIG• Introduction à Fig
• Création d'un fichier fig.yaml décrivant l'architecture à base de conteneurs Docker
• Déploiement et utilisation de l'architecture déployée pour développer et tester son application
PATTERN "DÉCOUVERTE DE SERVICE" ET "MICRO-SERVICES" AVEC DES CONTENEURS DOCKER• Présentation du pattern avec l'utilisation de Key/Value stores distribués : etcd et Consul
• Mise en place de l'architecture pour appliquer un pattern de "micro-services"
INTRODUCTION À KUBERNETES• Présentation de Kubernetes et de son utilisation pour déployer une flotte de conteneurs à large échelle
EXERCICE PRATIQUE : « CRÉATION D'UN ENVIRONNEMENT DE DÉVELOPPEMENT À BASE DE CONTENEURS DOCKER AVEC FIG »• Prise en main de Fig, un Domain Specific Language dédié à la création d'environnement de développement à base de conteneurs Docker
EXERCICE PRATIQUE « SYNTAXE ET CRÉATION D'UN FICHIER DE DÉPLOIEMENT AVEC FIG »• Création de conteneurs, ajout d'applications, liens entre conteneurs et montage de volumes au travers d'un exemple complet
EXERCICE PRATIQUE « INTRODUCTION À KUBERNETES ET AU DÉPLOIEMENT DE CONTENEUR À LARGE ÉCHELLE »• Présentation des concepts et manipulation de Kubernetes
SYNTHÈSE ET PERSPECTIVES