Algorithmes, protocoles et services passant à l’échelle

Le but de ces travaux est de concevoir les algorithmes d’allocation de ressource et d’ordonnancement, mais aussi de découverte et de composition de services, qui passent à l’échelle des réseaux de demain.


Ordonnancement de coflows

De nombreuses applications de calcul parallèle (par exemple MapReduce) consistent en de multiples étapes de calcul. Des résultats intermédiaires doivent en général être transférés entre les serveurs de calcul à chaque étape. Souvent, une étape de calcul ne peut pas commencer ou être achevée tant que tous les résultats intermédiaires de l'étape précédente n'ont pas été reçus. Cela implique que pour optimiser les performances des transferts de données d’une application parallèle, il est plus pertinent de s’intéresser au temps de terminaison de tous les flux plutôt qu’à celui de chacun des flux point-à-point. Le concept de coflow a été introduit à cette fin. Un coflow est défini comme une collection de flux de données parallèles dont le temps d'achèvement est déterminé par le temps d'achèvement du dernier flux de la collection.

Dans la littérature, la mesure de performance habituelle pour l'ordonnancement des coflows est le makespan ou le temps d'achèvement pondéré des coflows (CCT). Une décennie de recherche sur ce problème a permis de mettre en lumière sa complexité et plusieurs solutions algorithmiques ont été élaborées. Cependant, le contexte change radicalement dans le cas d’applications parallèles critiques, pour lesquelles la phase de transfert de données peut être soumise à des contraintes strictes de délais. Dans ce contexte, nos travaux visent le développement de solutions en ligne pour le contrôle d'admission et l'ordonnancement conjoints des coflows avec deadline. L’objectif est de minimiser le nombre de coflows en retard.

Monitoring / Distributed tracing dans le cloud

L'orchestration des services est un processus automatisé, qui gère le cycle de vie de chaque composant, et notamment leur allocation sur les différentes ressources de l'infrastructure cloud. Alors que les technologies cloud facilitent le développement et le déploiement d’applications, elles masquent néanmoins le débogage et l'analyse des performances. La détection de pannes partielles, de goulots d'étranglement ou de cyber attaques sont de nouveaux obstacles apparus avec l'adoption de ces applications cloud et qui, du fait des abstractions réalisées par le processus d’orchestration, sont extrêmement complexes à corriger. Généralement une très coûteuse introspection du code de l’application par les équipes de développeurs est nécessaire pour déterminer la faille.

Le nouveau paradigme de traçage distribué (distributed tracing) est un levier permettant aux développeurs de partiellement lever le voile de la composition des services au sein d'une application distribuée. On observe aujourd'hui une adoption accrue de cette technologie sur de nombreuses architectures cloud-native.