Pleiades : Distributed Structural Invariants at Scale

David Bromberg, professeur à l'ESIR, a récemment donné une conférence sur ses recherches récentes en informatique répartie chez Netflix, à Los Gatos, en Californie.

David Bromberg IRISA - ESIR - Université Rennes 1invited talk dans l'équipe en charge de tolérance aux fautes chez  Netflix

Les applications distribuées modernes deviennent de plus en plus grandes et complexes. Elles rassemblent souvent des sous-systèmes développés indépendamment (par exemple pour le stockage, le traitement par lots, la diffusion en continu, la logique applicative, la journalisation, la mise en cache) dans de grandes architectures géographiquement réparties et hétérogènes.
La combinaison, la configuration et le déploiement de ces architectures sont une tâche difficile et à multiples facettes : chaque service a ses propres exigences, ses espaces de configuration, ses modèles de programmation, sa logique de distribution, qui doivent être soigneusement réglés pour assurer la performance globale, la résilience et l'évolutivité du système qui en résulte.
Cet effort d'intégration reste aujourd'hui en grande partie une activité ad hoc, c'est-à-dire manuelle ou utilisant des capacités de scripting spécifiques à l'outil. Cette approche de bas niveau est malheureusement peu adaptée aux exigences de déploiement et aux topologies de plus en plus complexes des services concernés.
Par exemple, Netflix s'appuie sur les nuages IaaS (Infrastructures as a Service), tels que l'Amazon Elastic Compute Cloud (EC2), pour mettre en place une architecture logicielle complexe permettant de fournir et d'instancier à la volée le nombre adéquat de machines virtuelles (VM), dédiées au transcodage des flux vidéo en fonction de la charge entrante.

L'objectif de ce travail est de fournir un langage spécifique de programmation de haut niveau (DSL) qui exploite des mécanismes provenant du domaine des systèmes distribués pour faciliter la conception de tels systèmes distribués tout en étant robuste aux défaillances.
En particulier, avec notre approche nous sommes en mesure de déployer un système distribué résiliant capable de s'auto-adapter dynamiquement face aux défaillances tout en garantissant les propriétés du système indépendamment de sa complexité sans requérir l'intervention des développeurs.
David Bromberg