Advisor: Prof. Sara Bouchenak
A l'ère de l'informatique omniprésente et à la demande, ou les applications et les services sont déployés sur des infrastructures bien gérées et approvisionnées par des grands groupes de fournisseurs d'informatique en nuage (Cloud Computing), tels Amazon, Google, Microsoft, Oracle, etc., la performance et la fiabilité de ces systèmes sont devenues des objectifs primordiaux. Cette informatique a rendu particulièrement nécessaire la prise en compte des facteurs de la Qualité de Service (QoS pour Quality of Service), telles que la disponibilité, la fiabilité, la vivacité, la sureté et la sécurité, dans la definition complète d'un système. En effet, les systèmes informatiques doivent etre résistants aussi bien aux défaillances qu'aux attaques et ce, afin d'éviter qu'ils ne deviennent inaccessibles, entrainent des couts de maintenance importants et la perte de parts de marché. L'augmentation de la taille et la complexité des systèmes en nuage rend de plus en plus commun les défauts, augmentant la fréquence des pannes, et n'orant donc plus la Garantie de Service visée. Les fournisseurs d'informatique en nuage font ainsi face épisodiquement à des fautes arbitraires, dites Byzantines, durant lesquelles les systèmes ont des comportements imprévisibles comme, par exemple, des réponses incorrectes aux requetes d'un client, l'envoi de messages corrompus, la temporisation intentionnelle dans l'échange de messages, le refus d'honorer des requetes, etc. Ce constat a amené les chercheurs à s'intéresser de plus en plus à la tolerance aux fautes byzantines (BFT pour Byzantine Fault Tolerance) et à proposer de nombreux prototypes de protocoles et logiciels. Ces solutions de BFT visent non seulement à fournir des services cohérents et continus malgré des défaillances arbitraires, mais cherchent aussi à réduire le cout et l'impact sur les performances des systemes sous-jacents. Néanmoins les prototypes BFT ont été évalués le plus souvent dans des contextes ad-hoc, soit dans des conditions idéales, soit en limitant les scenarios de fautes. C'est pourquoi ces protocoles de BFT n'ont pas réussi à convaincre les professionnels des systemes distribués de les adopter. Tandis que certains considèrent les protocoles de BFT trop couteux et complexes à mettre en place pour contrer des défaillances arbitraires, d'autres sont tout simplement sceptiques quant à l'utilité de ces techniques. Cette thèse entend répondre à ce problème en proposant un environnement complet de banc d'essai dont le but est de faciliter la création de scenarios d'exécution utilisables pour aussi bien analyser que comparer l'efficacité et la robustesse des propositions BFT existantes.
Je vais présenter BFT-Bench, le premier système de banc d'essai de la BFT, pour l'analyse et la comparaison d'un panel de protocoles BFT utilisés dans des situations identiques. BFT-Bench permet aux utilisateurs d'évaluer des implémentations différentes pour lesquels ils définissent des comportements défaillants avec différentes charges de travail. Il permet de déployer automatiquement les protocoles BFT étudiés dans un environnement distribué et offre la possibilité de suivre et de rendre compte des aspects performance et fiabilité. Les résultats démontrent empiriquement comparaison de certains protocoles BFT actuels, réalisée avec BFT-Bench, en définissant differentes charges de travail et differents scénarii de fautes. Cette réelle application de BFT-Bench en démontre l'efficacité.Globalement, cette thèse vise à faciliter l'analyse de performance et de fiabilite de la BFT afin d'en encourager l'utilisation aussi bien par les développeurs des protocoles BFT que ses utilisateurs finaux. Le logiciel BFT-Bench a été conçu en ce sens pour aider les utilisateurs à comparer efficacement différentes implémentations de BFT et apporter des solutions effectives aux lacunes identifées des prototypes BFT. De plus, cette these défend l'idée que les techniques BFT sont nécessaires pour assurer un fonctionnement continu et correct des systèmes distribués confrontés à des situations critiques.