Aperçu du cours
Introduction aux Microservices
Ce module introductif explique les concepts fondamentaux des microservices et leur architecture basée sur des services distribués. Découvrez comment les microservices permettent la construction d’applications modulaires, évolutives et résilientes, adaptées aux environnements modernes.
Gestion des Conteneurs avec Podman
Apprenez à utiliser Podman, un outil de gestion de conteneurs compatible avec Docker, mais sans nécessiter de daemon. Ce cours couvre l’installation, la configuration et l’utilisation de Podman pour créer, exécuter et gérer des conteneurs de manière sécurisée.
Orchestration avec Kubernetes
Explorez Kubernetes, la plateforme d’orchestration de conteneurs leader du marché. Apprenez à déployer des applications dans des clusters Kubernetes, à gérer les ressources, à surveiller la santé des applications et à scaler de manière dynamique en fonction de la demande.
Gestion des Packages avec Helm
Découvrez Helm, un gestionnaire de packages pour Kubernetes, qui simplifie le déploiement et la gestion d’applications Kubernetes complexes. Ce module couvre l’utilisation de Helm pour créer, partager et déployer des charts Kubernetes réutilisables.
Configuration Déclarative avec YAML
Maîtrisez l’art de la configuration déclarative des applications et des infrastructures en utilisant YAML. Apprenez à écrire des fichiers YAML pour définir les ressources Kubernetes, les spécifications de déploiement et les configurations de Helm, favorisant ainsi la portabilité et la reproductibilité des environnements.
Ateliers Pratiques et Scénarios Réels
Engagez-vous dans des ateliers pratiques qui vous permettront de mettre en œuvre les concepts appris dans des scénarios réels. Ces sessions vous aideront à développer les compétences nécessaires pour concevoir, déployer et gérer efficacement des microservices dans des environnements Kubernetes.
Prérequis
- Maîtrise d'un langage de programmation tel que Java, Python ou C#.
- Compréhension des concepts de base des conteneurs et de la virtualisation.
- Expérience avec les systèmes Linux et la ligne de commande.
Objectifs pédagogiques
- Comprendre les principes fondamentaux des architectures microservices et leurs avantages par rapport aux architectures monolithiques.
- Apprendre à utiliser YAML pour la configuration et la gestion des applications conteneurisées.
- Maîtriser l'utilisation de Podman pour créer, gérer et déployer des conteneurs sans dépendre de Docker.
- Déployer et orchestrer des applications conteneurisées à grande échelle en utilisant Kubernetes et Helm.
Public ciblé
- Développeurs et ingénieurs logiciels souhaitant adopter une architecture microservices.
- Administrateurs système et DevOps responsables du déploiement et de la gestion d'applications conteneurisées.
- Architectes techniques désireux de concevoir des systèmes évolutifs et résilients.
Programme de formation
-
Conteneurisation (2H)
-
Historique et contextualisation : Du modèle des VM aux conteneurs
-
Conception des images avec un Dockerfile
-
Atelier découverte de kubectl (1H) : Création d’une image de conteneur simple
-
-
Introduction à K8s (2H)
-
Rappels concernant la conteneurisation
-
Principes de l’orchestration de conteneurs
-
Qu’est-ce que Kubernetes?
-
Fonctionnalités de base de Kubernetes
-
Composants de Kubernetes
-
Présentation de kubectl
-
Atelier découverte de kubectl (1H) : Exécution des premières commandes kubectl
-
-
Interaction avec l’API K8s (2H)
-
Approche impérative vs. Approche déclarative (YAML)
-
Les objets de base K8s (Pods, Deployment, CronJob, StatefulSet, Services…) et leur déclaration YAML
-
La gestion des volumes avec les PVC
-
Atelier déploiement (1H) : Déploiement d’un pod simple et exposition via un service
-
-
Déployer ses applications dans K8s (1H)
-
Les namespaces et la gestion des accès
-
Gestion des ressources systèmes (cpu request, limit, memory…)
-
Sondes et monitoring (Liveness probes, Readiness probes…)
-
Gestion de la configuration avec les ConfigMap et Secret
-
Comment Troubleshooter ses applications K8s ?
-
Atelier déploiement (1H) : Déploiement d’une application complète (frontent, middle Java, backend MySQL, PVC) et mise en place du monitoring et des ressources système
-
-
Démo automatisation des déploiements avec Gitlab (1H)
-
Automatisation des déploiements via la CI/CD
-
Atelier automatisation (1H): déploiement de l’application précédente via Gitlab CI
-
-
Personnaliser ses applications Cloud Native avec HELM (2H)
-
Comprendre et utiliser les helm Charts
-
Personnalisation des fichiers de values
-
Bonnes pratiques (IaC)
-