Chaos Engineering et Résilience des Applications
Objectif de la Formation :
Cette formation vise à former les participants aux principes et pratiques du Chaos Engineering pour tester la résilience des applications. Les participants apprendront à identifier les faiblesses des systèmes distribués et à améliorer leur robustesse en utilisant des outils et des techniques de chaos engineering. À la fin de la formation, ils seront capables de concevoir et de mettre en œuvre des expériences de chaos, d'analyser les résultats, et de renforcer la résilience de leurs applications.
Public cible:Ingénieurs systèmes/SRE,architectes
Prérequis: bonnes connaissances systèmes windows/linux
Durée de la Formation :
5 jours (40 heures)
Jour 1 : Introduction à la Résilience des Applications et au Chaos Engineering
1.1 Concepts de Résilience des Applications
Théorie : Comprendre la résilience dans le contexte des systèmes distribués, les défis des architectures modernes (microservices, cloud-native).
Pratique : Étude de cas sur les pannes dans des systèmes distribués et l'impact sur les utilisateurs.
1.2 Introduction au Chaos Engineering
Théorie : Historique et principes fondamentaux du Chaos Engineering, les « quatre étapes » du Chaos Engineering (Hypothèses, Expérimentations, Apprentissage, Automatisation).
Pratique : Présentation d'exemples célèbres de Chaos Engineering (Netflix, Amazon) et discussion sur leur application.
1.3 Mettre en Place un Cadre de Chaos Engineering
Théorie : Établir un cadre pour le Chaos Engineering, sécurité, et prérequis organisationnels.
Pratique : Installation des outils de base, introduction à Chaos Monkey et à d'autres outils de la suite Netflix Simian Army.
Jour 2 : Conception et Exécution d'Expériences de Chaos
2.1 Définition d'Hypothèses et Conception d'Expériences
Théorie : Identification des hypothèses sur la résilience de l'application, conception d'expériences de chaos pour tester ces hypothèses.
Pratique : Atelier de groupe pour concevoir des scénarios de chaos spécifiques à une architecture donnée.
2.2 Introduction aux Outils de Chaos Engineering
Théorie : Vue d'ensemble des outils de chaos engineering populaires (Chaos Toolkit, Gremlin, Litmus).
Pratique : Installation et configuration de Chaos Toolkit, réalisation d'une première expérience simple pour perturber un service (ex : arrêt d'un microservice).
2.3 Exécution d'Expériences de Chaos sur une Application Distribuée
Théorie : Considérations pour l'exécution en production vs en environnement de test, gestion des risques.
Pratique : Déploiement d'une application microservices en sandbox, exécution de plusieurs expériences de chaos pour tester les hypothèses de résilience (ex : latence réseau, défaillance d'une base de données).
Jour 3 : Analyse des Résultats et Apprentissage Continu
3.1 Collecte et Analyse des Données d'Expériences
Théorie : Importance des métriques dans le Chaos Engineering, outils pour la collecte des données (Prometheus, Grafana).
Pratique : Mise en place de dashboards dans Grafana pour visualiser les résultats des expériences, analyse des métriques avant, pendant et après les tests de chaos.
3.2 Apprentissage et Amélioration Continue
Théorie : Interprétation des résultats, identification des faiblesses du système, stratégies pour améliorer la résilience.
Pratique : Analyse approfondie des résultats d'expériences, discussion sur les actions correctives à mettre en œuvre pour renforcer l'architecture.
3.3 Automatisation des Expériences de Chaos
Théorie : Automatisation des tests de chaos dans le pipeline CI/CD, intégration avec des outils comme Jenkins, GitLab CI.
Pratique : Implémentation d'expériences de chaos automatisées, exécution des tests à chaque déploiement pour valider la résilience continue.
Jour 4 : Scénarios Avancés de Chaos Engineering
4.1 Scénarios Avancés : Tests de Résilience Multicloud
Théorie : Défis et solutions pour le chaos engineering dans des environnements multi-cloud et hybrides.
Pratique : Exécution d'expériences de chaos dans un environnement multi-cloud, perturbation de services distribués sur plusieurs fournisseurs cloud.
4.2 Résilience des Applications en Temps Réel
Théorie : Résilience dans les systèmes à forte exigence de disponibilité (temps réel, haute disponibilité).
Pratique : Mise en œuvre d'expériences pour tester la résilience des systèmes temps réel, analyse des mécanismes de basculement et de récupération.
4.3 Résilience des Bases de Données et Stockage
Théorie : Résilience des bases de données distribuées, impact des pannes de stockage.
Pratique : Expériences de chaos sur des systèmes de stockage distribués, analyse de la tolérance aux pannes des bases de données (ex : partitions réseau, défaillance de nœuds).
Jour 5 : Renforcement de la Résilience et Stratégies d'Entreprise
5.1 Développer une Stratégie de Résilience Organisationnelle
Théorie : Création d'une culture de résilience au sein de l'organisation, intégration du Chaos Engineering dans les pratiques DevOps.
Pratique : Atelier de stratégie pour développer un plan de résilience d'entreprise, y compris la formation, les processus et les outils.
5.2 Sécurité dans le Chaos Engineering
Théorie : Considérations de sécurité dans le chaos engineering, protection des données, conformité.
Pratique : Mise en œuvre d'expériences sécurisées, gestion des accès et des autorisations pour les tests de chaos.
5.3 Étude de Cas : Mise en Œuvre Complète
Pratique : Projet final où les participants conçoivent et exécutent un ensemble d'expériences de chaos pour tester la résilience d'une application, en appliquant toutes les connaissances acquises.
Discussion : Présentation des résultats, recommandations et retour d'expérience.
Matériel Pédagogique et Outils Requis :
Environnement de développement : Accès à un cluster Kubernetes, outils de monitoring (Prometheus, Grafana).
Outils de chaos engineering : Chaos Monkey, Gremlin, Chaos Toolkit, Litmus.
Cloud Providers : AWS, Azure, Google Cloud (pour les expérimentations multi-cloud).
Évaluation et Certification :
Évaluations : Tests pratiques à la fin de chaque journée, évaluation finale du projet de chaos engineering.
Certification : Certificat de maîtrise en Chaos Engineering et Résilience des Applications, délivré après la réussite du projet final.
Last updated