Plan du cours
Module 1 : Conception des Microservices
• Une bonne frontière pour un microservice
• Utilisation de la Conception Dirigée par le Domaine (DDD)
• Alternatives aux frontières du domaine métier (volatilité, données, technologie, organisation)
• Découpage du monolithe
• Décomposition prématurée
• Décomposition par couche
• Utilisation de modèles de décomposition (Strangler, Parallel Run, Feature Toggle)
• Préoccupations liées à la décomposition des données (performance, intégrité, transactions)
Module 2 : Optimisation de Docker et du runtime
• Choix de la bonne image de base
• Minimisation du nombre de couches
• Utilisation des builds multi-étapes
• Optimisation des images (tri des arguments multi-lignes, etc.)
• Exploitation du cache de build
• Épinglage des versions d'images
• Affinage de l'allocation des ressources
• Pratiques sécurisées pour les conteneurs
• Configuration du runtime pour la performance
Module 3 : Kubernetes & Stratégies de Release
Aperçu des déploiements Kubernetes
• Création et exécution d'un déploiement initial
• Options de déploiement Kubernetes
Réalisation de déploiements par mises à jour progressives (Rolling Update)
• Compréhension du Rolling Update
• Création et exécution d'un Rolling Update
• Annulation d'un déploiement
Réalisation de déploiements canaris (Canary)
• Compréhension des déploiements canaris
• Création et exécution d'un déploiement canari
Réalisation de déploiements bleu-vert (Blue-Green)
• Compréhension des déploiements bleu-vert
• Création et exécution d'un déploiement bleu-vert
Exécution de Jobs et CronJobs
• Création d'un Job et d'un CronJob
Réalisation de tâches de surveillance et de dépannage
• Techniques de dépannage avec kubectl
Module 4 : Automatisation & Efficacité Opérationnelle
Utilisation de Python pour automatiser les tâches courantes dans Kubernetes
• Utilisation de Python pour effectuer des opérations administratives dans Kubernetes
• Utilisation de Python pour définir des objets de configuration
• Utilisation de Python pour créer des objets Deployment
• Surveillance des événements Kubernetes en utilisant Python
• Mise à l'échelle d'un déploiement en utilisant Python
Compréhension des défis de l'automatisation des déploiements
• Configuration déclarative avec Kubernetes
• Gestion de l'intégrité de la configuration
Utilisation de l'approche GitOps pour automatiser les déploiements
• Principes GitOps
• Introduction à Flux
• Installation de Flux sur un cluster Kubernetes
Configuration de Flux pour les déploiements automatisés
• Utilisation des notifications
• Structure du référentiel source
Gestion des mises à jour d'applications avec l'automatisation des images
• Mise à jour d'un déploiement d'application avec Flux
• Analyse des dépôts d'images de conteneurs pour les balises (tags)
• Définition d'une politique pour la sélection de la dernière image
• Configuration de Flux pour effectuer des mises à jour automatiques d'images
Module 5 : Observabilité & Compréhension des Causes Racines
Capacités de journalisation et de traçage dans Kubernetes
• Pourquoi la journalisation et le traçage sont importants
• Accès aux journaux Kubernetes
• Journaux des Pods et des conteneurs
• Journaux du plan de contrôle (Control Plane)
• Utilisation des ressources des nœuds et des pods
Collecte et analyse des journaux
• Agrégation des journaux
• Visualisation des journaux
Traçage distribué dans Kubernetes
• Qu'est-ce que le traçage distribué ?
• Utilisation d'OpenTelemetry
• Outils de traçage distribué
• Instrumentation d'une application
• Utilisation du traçage pour trouver les problèmes de performance
Surveillance avec Prometheus et Grafana
• Concepts d'observabilité
• Outils de surveillance
• Utilisation de l'instrumentation Prometheus
Cas d'utilisation avancés pour la journalisation
• Traitement des journaux
• Filtrage et enrichissement des journaux
• Event Sourcing (Journalisation par événements)
Module 6 : Simulation de crise de cluster & Réponse aux incidents
• Compréhension des différents types de pannes dans un environnement de cluster
• Simulation de pannes de nœud
• Scénario d'éviction de pod et d'épuisement des ressources
• Problèmes réseau
• Pannes DNS pour la gestion des délais d'attente de l'application
• Simulation d'une panne du serveur API
• Simulation d'un fort trafic pour la stabilité du système
• Pannes de stockage
• Erreurs de configuration
• Compréhension des procédures de rapport d'incidents
Module 7 : L'IA pour soutenir le dépannage
• Avantages de l'IA générative pour Kubernetes
• Architecture de la CLI K8sGPT
• Installation de la CLI K8sGPT
• Commandes et utilisation de K8sGPT
• Utilisation des analyseurs K8sGPT (podAnalyzer, pvcAnalyzer, rsAnalyzer, etc.)
• Analyse du cluster en utilisant K8sGPT
• Analyse des problèmes en temps réel en utilisant K8sGPT
• Opérateur intra-cluster pour K8sGPT
Pré requis
- Connaissances de base en ligne de commande Linux
- Expérience en développement d'applications ou en administration système
- Familiarité avec les conteneurs (concepts Docker)
- Compréhension de base des concepts Kubernetes (pods, deployments, services)
- Compréhension générale de l'architecture logicielle (ex. APIs, services)
Audience cible :
- Ingénieurs DevOps
- Ingénieurs de fiabilité du site (SRE)
- Développeurs Backend / Logiciel travaillant avec des microservices
- Ingénieurs Cloud et Ingénieurs Plateforme
-
Administrateurs système qui souhaitent passer aux environnements Kubernetes
Nos clients témoignent (2)
Craig était très impliqué dans la formation, toujours en s'assurant que nous prêtions attention, en adaptant les exemples à nos activités quotidiennes et en fournissant une réponse chaque fois qu'on lui posait une question, même si l'information n'était pas incluse dans la présentation.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Formation - DevOps Foundation®
Traduction automatique
Niveau élevé d’engagement et de connaissances du formateur
Jacek - Softsystem
Formation - DevOps Engineering Foundation (DOEF)®
Traduction automatique