Ing´ enierie du chaos, Approche par r´ etro-ing´ enierie Patrice Coppens RUE GR

Ing´ enierie du chaos, Approche par r´ etro-ing´ enierie Patrice Coppens RUE GRANDGAGNAGE, 21 ●B-5000 NAMUR(BELGIUM) Remerciements Travail en apparence individuel, ce mémoire est le résultat d’échanges et de recherches. Il n’aurait probablement pas pu être réalisé sans le soutient de plusieurs personnes. Je voudrais tout d’abord adresser ma reconnaissance au promoteur de ce mémoire, Monsieur Anthony Cleve, professeur à l’université de Namur, pour sa disponibilité, sa cordialité et surtout ses remarques et questions ju- dicieuses qui m’ont permis d’approfondir mon raisonnement et d’exprimer au mieux ma réflexion. Je souhaite ensuite remercier le corps professoral et administratif pour la qualité des enseignements dispensés, ainsi que pour leur convivialité. Un grand merci à Cédric, Fatiha, Anne, Lucy, Nicole et Justine pour leur travail de relecture et de correction de ce mémoire. Je remercie également mes filles, Joey, Aaliyah, Naëlle, pour leur pa- tience, leur compréhension et leur sacrifice. Enfin, je ne saurais remercier assez Yasmine, mon épouse, pour son sou- tient et pour tout ce qui ne peut s’écrire dans un mémoire. 1 Résumé L’ingénierie du chaos a comme objectif d’augmenter la robustesse et la confiance envers un produit logiciel, basé sur une architecture distribuée à grande échelle. La discipline s’appuie sur la définition d’un état stable et l’assertion qu’il le restera lors de l’injection d’une faute, dans l’environnement de production. Mais le choix de l’injection dépend de l’intuition de l’ingénieur. Est-il possible de réduire, voire d’éliminer cette approche intuitive par rétro-ingénierie du système ? Abstract Chaos engineering leads to more resilient systems and builds confidence in a soft- ware product based on a large-scale distributed architecture. The discipline is based on the definition of a steady-state and the assertion that it will remain stable when a fault is injected in production. But the choice of the injection depends on the engineer’s intuition. Is it possible to reduce, or eliminate this intuitive approach by reverse engineering the system? Table des matières Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 Introduction 5 1.1 Ingénierie du chaos . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Faiblesse de l’ingénierie du chaos . . . . . . . . . . . . . . . . 6 1.3 Rétro-ingénierie . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Ingénierie du chaos, approche par rétro-ingénierie . . . . . . . 7 2 Structure du document 8 2.1 Ingénierie du chaos, état de l’art . . . . . . . . . . . . . . . . 8 2.2 Ingénierie du chaos, approche par rétro-ingénierie . . . . . . . 8 2.3 Discussion, perspectives . . . . . . . . . . . . . . . . . . . . . 8 I Ingénierie du chaos, état de l’art 9 3 Problèmes adressés 10 3.1 Concepts utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Notion de Chaos . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 Le problème adressé . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 Injection de fautes (Fault injection) . . . . . . . . . . . . . . . 23 3.5 Le concept d’ingénierie du chaos . . . . . . . . . . . . . . . . 24 4 Ingénierie du chaos 26 4.1 Méthodologie de recherche . . . . . . . . . . . . . . . . . . . . 26 4.2 Ingénierie du chaos . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3 Exécuter une expérimentation chaotique . . . . . . . . . . . . 31 4.4 Prérequis et outillage de l’ingénierie du chaos . . . . . . . . . 31 4.5 Ingénierie du chaos, variantes . . . . . . . . . . . . . . . . . . 37 4.6 Limites de l’ingénierie du chaos . . . . . . . . . . . . . . . . . 39 4.7 Lineage-Driven Fault Injection (LDFI) . . . . . . . . . . . . . 41 5 Rétro-ingénierie 46 5.1 Méthode de rétro-ingénierie . . . . . . . . . . . . . . . . . . . 46 5.2 Récolte d’informations . . . . . . . . . . . . . . . . . . . . . . 47 2 5.3 Découverte du système . . . . . . . . . . . . . . . . . . . . . . 49 5.4 Visualisation des résultats . . . . . . . . . . . . . . . . . . . . 51 5.5 Injection de fautes . . . . . . . . . . . . . . . . . . . . . . . . 53 5.6 Évaluation des résultats . . . . . . . . . . . . . . . . . . . . . 55 II Ingénierie du chaos, approche par rétro-ingénierie 56 6 Rétro-ingénierie : introduction 57 7 Approche par rétro-ingénierie 58 7.1 Contexte d’applicabilité . . . . . . . . . . . . . . . . . . . . . 59 7.2 Méthode de rétro-ingénierie . . . . . . . . . . . . . . . . . . . 59 7.3 Récolte d’informations . . . . . . . . . . . . . . . . . . . . . . 59 7.4 Découverte du système . . . . . . . . . . . . . . . . . . . . . . 60 7.5 Visualisation des résultats . . . . . . . . . . . . . . . . . . . . 65 7.6 Injection de fautes . . . . . . . . . . . . . . . . . . . . . . . . 66 7.7 Évaluation des résultats . . . . . . . . . . . . . . . . . . . . . 67 8 Étude de cas 68 8.1 Étude de cas 1 : laboratoire de rétro-ingénierie . . . . . . . . 68 8.2 Étude de cas 2 : cartographie d’une architecture SOA . . . . 76 III Discussion, perspectives 80 9 Critique de l’approche 81 9.1 Limites intrinsèques de la méthode de rétro-ingénierie . . . . 81 9.2 Limites extrinsèques de la méthode de rétro-ingénierie . . . . 82 9.3 Limitations de l’ingénierie du chaos . . . . . . . . . . . . . . . 83 10 Améliorations 84 10.1 Augmenter et diversifier les informations . . . . . . . . . . . . 84 10.2 Outils de visualisation . . . . . . . . . . . . . . . . . . . . . . 85 11 Perspectives 86 11.1 Intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . 86 11.2 Cartographie des systèmes d’information . . . . . . . . . . . . 86 11.3 Utilisation des systèmes . . . . . . . . . . . . . . . . . . . . . 86 11.4 Optimisation de processus . . . . . . . . . . . . . . . . . . . . 87 12 Conclusion 88 A Modèle de maturité de l’ingénierie du chaos 90 B Simian Army 93 3 4 C Code Source : Implémentation pour les cas d’étude 95 C.1 chaos-re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 C.2 Introduction . . . . . . . . . uploads/Geographie/ pcoppens-memoire.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager