Edge Computing et Conteneurisation avec Docker et Kubernetes Open Source
Plan de Formation :
Durée Totale : 8 semaines (40 heures)
Sessions hebdomadaires : 2 sessions de 2 heures chacune
Labs & Hands-on : 4 heures par semaine
Semaine 1 : Introduction à l'Edge Computing et à la Conteneurisation
Session 1 : Concepts de Base de l'Edge Computing
Objectifs pédagogiques :
Comprendre les principes de base de l'Edge Computing et ses avantages par rapport au Cloud Computing.
Identifier les scénarios d'utilisation typiques de l'Edge Computing.
Contenu :
Définition de l'Edge Computing : Caractéristiques, Avantages, Défis.
Différences entre Edge, Fog, et Cloud Computing.
Cas d'utilisation de l'Edge Computing dans différents secteurs (industrie, smart cities, IoT).
Hands-on :
Installation d'un environnement Linux (ex: Ubuntu) pour le développement Edge.
Présentation et installation des outils de base pour le développement (Docker, Git, VSCode).
Session 2 : Introduction à la Conteneurisation avec Docker
Objectifs pédagogiques :
Apprendre les concepts fondamentaux de Docker et de la conteneurisation.
Comprendre l'importance de la conteneurisation dans l'Edge Computing.
Contenu :
Présentation de Docker : Images, Conteneurs, Dockerfile.
Avantages de la conteneurisation pour l'Edge Computing : Portabilité, Isolation, Scalabilité.
Concepts de base : Création d'images Docker, Gestion des conteneurs.
Hands-on :
Installation de Docker sur un environnement local.
Création et exécution d'un conteneur Docker simple (par exemple, un serveur web Nginx).
Semaine 2 : Maîtrise des Concepts Avancés de Docker
Session 1 : Gestion des Conteneurs et des Réseaux Docker
Objectifs pédagogiques :
Apprendre à gérer les conteneurs Docker et les réseaux entre eux.
Comprendre comment Docker gère le réseau et le stockage.
Contenu :
Gestion des conteneurs : Lancement, arrêt, suppression, mise à jour.
Concepts de réseau Docker : Bridge, Overlay, Host.
Gestion des volumes Docker pour le stockage persistant.
Hands-on :
Création et gestion de conteneurs avec Docker CLI.
Configuration d'un réseau Docker personnalisé et communication entre conteneurs.
Utilisation des volumes Docker pour stocker des données de manière persistante.
Session 2 : Création d'Images Docker et Optimisation
Objectifs pédagogiques :
Apprendre à créer et à optimiser des images Docker pour des environnements à ressources limitées.
Maîtriser l'écriture de Dockerfile pour construire des images efficaces.
Contenu :
Introduction aux Dockerfile : Syntaxe et meilleures pratiques.
Optimisation des images Docker : Réduction de la taille, minimisation des couches, utilisation d'images de base légères.
Gestion des registres Docker : Docker Hub, registres privés.
Hands-on :
Écriture d'un Dockerfile pour créer une image Docker personnalisée.
Optimisation d'une image Docker pour un déploiement Edge.
Pousser une image Docker vers un registre privé.
Semaine 3 : Introduction à Kubernetes et K3s
Session 1 : Concepts de Base de Kubernetes
Objectifs pédagogiques :
Comprendre l'architecture et les concepts fondamentaux de Kubernetes.
Apprendre à déployer et gérer des applications conteneurisées avec Kubernetes.
Contenu :
Présentation de Kubernetes : Architecture (Master, Nodes), Pods, Services, Deployments.
Fonctionnalités de base : Scaling, Rolling updates, Self-healing.
Introduction aux fichiers YAML pour Kubernetes : Déploiement, Services.
Hands-on :
Installation de Kubernetes sur une machine locale ou dans le cloud (ex: Minikube).
Déploiement d'une application conteneurisée simple sur Kubernetes.
Exposition de l'application avec un service Kubernetes.
Session 2 : Introduction à K3s pour l'Edge Computing
Objectifs pédagogiques :
Apprendre à utiliser K3s, une distribution légère de Kubernetes, pour les environnements Edge.
Comprendre comment K3s simplifie le déploiement de Kubernetes dans des environnements contraints.
Contenu :
Présentation de K3s : Avantages, cas d'utilisation, différences avec Kubernetes standard.
Installation de K3s sur un appareil Edge (Raspberry Pi, par exemple).
Gestion des applications conteneurisées avec K3s.
Hands-on :
Installation de K3s sur un Raspberry Pi.
Déploiement d'une application conteneurisée sur un cluster K3s.
Gestion des ressources avec K3s dans un environnement Edge.
Semaine 4 : Orchestration Avancée avec Kubernetes et K3s
Session 1 : Gestion des Workloads et Orchestration
Objectifs pédagogiques :
Apprendre à gérer des workloads complexes avec Kubernetes/K3s.
Comprendre l'orchestration de microservices dans un cluster Kubernetes.
Contenu :
Gestion des Deployments et StatefulSets dans Kubernetes.
Introduction aux Jobs et CronJobs pour l'exécution de tâches ponctuelles ou récurrentes.
Gestion des secrets et des ConfigMaps dans Kubernetes.
Hands-on :
Déploiement d'une application multi-conteneurs avec des Deployments et des Services.
Configuration et gestion de secrets et ConfigMaps pour une application Kubernetes.
Utilisation des Jobs et CronJobs pour automatiser des tâches dans Kubernetes.
Session 2 : Réseautage et Stockage dans Kubernetes
Objectifs pédagogiques :
Apprendre à configurer le réseautage et le stockage dans Kubernetes/K3s.
Comprendre les concepts avancés de mise en réseau et de gestion des volumes dans Kubernetes.
Contenu :
Présentation des modèles de réseautage dans Kubernetes : ClusterIP, NodePort, LoadBalancer.
Configuration de l'accès réseau avec Ingress pour exposer des services.
Gestion des volumes persistants et des PersistentVolumeClaims.
Hands-on :
Mise en place d'un service LoadBalancer et configuration d'Ingress pour une application web.
Gestion des volumes persistants pour une base de données dans Kubernetes.
Déploiement d'une application avec des exigences de stockage avancées.
Semaine 5 : Sécurisation des Applications et de l'Infrastructure Kubernetes
Session 1 : Sécurisation des Conteneurs et des Clusters Kubernetes
Objectifs pédagogiques :
Comprendre les enjeux de sécurité dans Kubernetes et comment sécuriser les conteneurs et les clusters.
Apprendre à configurer les contrôles d'accès et les politiques de sécurité dans Kubernetes.
Contenu :
Sécurisation des conteneurs : Bonnes pratiques, outils d'audit (ex: Docker Bench).
Contrôle d'accès dans Kubernetes : RBAC (Role-Based Access Control), gestion des utilisateurs.
Politiques de sécurité des pods (PSP) et admission controllers.
Hands-on :
Mise en place de RBAC dans Kubernetes pour gérer les autorisations.
Configuration des politiques de sécurité des pods (PSP) dans un cluster Kubernetes.
Audit de sécurité d'un cluster Kubernetes avec des outils open source.
Session 2 : Surveillance et Logging dans Kubernetes
Objectifs pédagogiques :
Apprendre à surveiller et à gérer les logs des applications dans Kubernetes.
Utiliser des outils open source pour la surveillance et le logging dans un environnement Kubernetes.
Contenu :
Introduction à la surveillance dans Kubernetes : Prometheus, Grafana.
Gestion des logs dans Kubernetes avec Fluentd, Elasticsearch, Kibana (ELK Stack).
Alerting et gestion des incidents dans Kubernetes.
Hands-on :
Installation et configuration de Prometheus et Grafana pour surveiller un cluster Kubernetes.
Mise en place d'une pile ELK pour la gestion des logs dans Kubernetes.
Configuration des alertes basées sur des métriques dans Grafana.
Semaine 6 : Développement et Déploiement d'Applications Edge avec Docker et Kubernetes
Session 1 : Développement d'Applications Conteneurisées pour l'Edge
Objectifs pédagogiques :
Apprendre à développer des applications adaptées à l'Edge Computing et à les conteneuriser avec Docker.
Comprendre les contraintes et les optimisations nécessaires pour les applications Edge.
Contenu :
Conception d'applications pour l'Edge : Exigences en termes de latence, bande passante, puissance.
Conteneurisation d'applications Edge avec Docker : Stratégies de build, gestion des ressources.
Développement de microservices pour l'Edge Computing.
Hands-on :
Développement d'une application
Edge simple et création d'une image Docker optimisée.
Déploiement de l'application sur un appareil Edge avec Docker.
Configuration d'une application multi-conteneurs pour l'Edge avec Docker Compose.
Session 2 : Déploiement et Gestion d'Applications Edge avec Kubernetes/K3s
Objectifs pédagogiques :
Apprendre à déployer des applications Edge sur des clusters Kubernetes/K3s.
Maîtriser les techniques de gestion des applications conteneurisées dans des environnements contraints.
Contenu :
Déploiement d'applications conteneurisées Edge sur Kubernetes/K3s.
Gestion des mises à jour et du scaling des applications Edge.
Surveillance des performances des applications Edge dans un cluster Kubernetes.
Hands-on :
Déploiement d'une application Edge conteneurisée sur un cluster K3s.
Gestion du scaling automatique des pods en fonction de la charge.
Surveillance des performances de l'application déployée et optimisation.
Semaine 7 : Optimisation et Gestion des Performances dans les Environnements Edge
Session 1 : Optimisation des Performances des Applications Edge
Objectifs pédagogiques :
Apprendre à optimiser les performances des applications Edge conteneurisées.
Comprendre les techniques de réduction de la consommation des ressources pour les applications Edge.
Contenu :
Optimisation des performances des conteneurs : Limites CPU/Mémoire, affinage des conteneurs.
Gestion des ressources dans Kubernetes : Requests, Limits, Quality of Service (QoS).
Utilisation des outils de profiling et monitoring pour optimiser les applications.
Hands-on :
Configuration des limites de ressources pour des conteneurs Docker.
Optimisation des performances des applications Edge déployées sur Kubernetes.
Profiling et optimisation des microservices déployés dans un cluster K3s.
Session 2 : Gestion des Ressources et Économie d'Énergie dans les Solutions Edge
Objectifs pédagogiques :
Apprendre à gérer les ressources de manière efficace dans les environnements Edge.
Maîtriser les techniques pour réduire la consommation d'énergie des dispositifs Edge.
Contenu :
Stratégies de gestion de l'énergie pour les dispositifs Edge : Mise en veille, gestion dynamique des ressources.
Utilisation des orchestrateurs pour la gestion optimale des ressources.
Optimisation des workflows Edge pour une consommation d'énergie réduite.
Hands-on :
Mise en place de stratégies de gestion de l'énergie pour des applications Edge sur Kubernetes.
Configuration de K3s pour une gestion efficace des ressources dans un environnement contraint.
Analyse et réduction de la consommation d'énergie d'une application Edge.
Semaine 8 : Projet Final et Clôture de la Formation
Session 1 : Développement du Projet Final
Objectifs pédagogiques :
Appliquer toutes les connaissances acquises pour développer une solution Edge complète et optimisée.
Concevoir, développer, et déployer une solution Edge sécurisée et performante.
Contenu :
Conception du projet final : Définition des objectifs, choix des technologies, architecture.
Planification et développement du projet : Développement, conteneurisation, orchestration.
Test, déploiement et documentation du projet.
Hands-on :
Développement du projet final en équipe ou individuellement.
Déploiement et test du projet sur une infrastructure Edge réelle ou simulée.
Session 2 : Présentation du Projet et Clôture de la Formation
Objectifs pédagogiques :
Présenter le projet final et démontrer les solutions mises en œuvre.
Réviser les concepts clés de la formation et discuter des futures opportunités.
Contenu :
Présentation des projets finaux devant les formateurs et les pairs.
Discussion sur les points forts et les axes d’amélioration.
Bilan de la formation et perspectives de carrière.
Hands-on :
Présentation finale du projet : Démonstration et résultats.
Discussion libre et échanges de feedback.
Méthodologie Pédagogique
Approche Pratique : Apprentissage par la pratique avec des labs et des projets réels.
Progression Pédagogique : De la théorie à la pratique avec une complexité croissante.
Support Continu : Assistance et retours réguliers, discussions de groupe pour maximiser l'apprentissage.
Travail Collaboratif : Encouragement du travail en équipe pour les labs et projets finaux.
Ce programme de formation est conçu pour fournir une maîtrise complète du développement de solutions Edge Computing, en mettant l'accent sur la conteneurisation avec Docker et Kubernetes. Les participants acquerront les compétences nécessaires pour concevoir, développer, déployer et gérer des applications Edge performantes et sécurisées en utilisant des outils open source modernes.
Last updated