Une informatique géo-distribuée pour un "monde déconnecté"

Publié par Adrien Lebre, le 30 juin 2025

La thèse de Geo Johns Antony, intitulée "Cheops reloaded, further steps in decoupling geo-distribution from application business logic", défendue en décembre 2024 à l’IMT Atlantique, propose une approche innovante visant à séparer le code informatique lié la logique métier de celui nécessaire pour appréhender les contraintes liées à la géo-distribution. L'objectif principal est de permettre aux applications de fonctionner de manière transparente et efficace dans des environnements géo-distribués sans nécessiter de modifications intrusives de leur code source.

Contexte

Le cloud computing a profondément transformé la manière dont les ressources informatiques sont fournies et utilisées. Il permet aux utilisateurs d'accéder à des ressources telles que le calcul, le stockage et les réseaux à la demande, sans avoir à gérer directement le matériel sous-jacent. Son adoption a été si rapide que les géants du numérique ont construit, dans un souci de rationalisation, des méga-centres de données, composés de centaines de milliers de serveurs,

Cependant, pour répondre aux besoins des nouvelles applications telles que la réalité augmentée, l'industrie du futur ou les villes intelligentes, qui nécessitent de manipuler de grands volumes de données avec une réactivité accrue et une disponibilité des services même en cas de défaillance du réseau, un nouveau paradigme a émergé : l'Edge Computing.

Les méga centres de données qui alimentent le cloud sont généralement situés dans des zones géographiques stratégiques, choisies pour leur énergie électrique peu coûteuse ou leur climat favorable à la réduction des coûts de refroidissement. Cependant, ces emplacements ne tiennent pas compte des besoins spécifiques des utilisateurs en termes de réactivité, de volume de données ou de disponibilité. Pour y répondre, il est essentiel de disposer de capacités de calcul et de stockage à proximité des usages.C'est là que l'Edge Computing entre en jeu : au lieu de centraliser les ressources dans quelques grands data centers éloignés, l'idée est de déployer un plus grand nombre de centres de données de taille réduite, en périphérie de l'Internet (par exemple au pied des antennes téléphoniques, dans les entreprises/usines ou encore dans les transports en commun). Ainsi, les ressources de calcul sont rapprochées des sources de données et des utilisateurs finaux, permettant un traitement plus rapide et plus efficace.

Figure 1 – Le paradigme de l'Edge Computing peut être vu comme une extension du cloud computing, reposant sur des centres de données de plus petite taille mais plus nombreux, déployés au plus près des utilisateurs.
Figure 1 – Le paradigme de l'Edge Computing peut être vu comme une extension du cloud computing, reposant sur des centres de données de plus petite taille mais plus nombreux, déployés au plus près des utilisateurs.

Les applications distribuées traditionnelles fonctionnent principalement selon un modèle client/serveur, où le code s'exécute entre l'appareil de l'utilisateur et un ou plusieurs serveurs situés dans un centre de données, en fonction des besoins de performance et de disponibilité.

Avec l'Edge Computing, les applications doivent désormais pouvoir opérer de manière cohérente et efficace sur plusieurs sites géographiques, même en cas de déconnexion réseau. Cela exige des solutions innovantes pour gérer la complexité accrue de la collaboration, de la cohérence et des dépendances entre les différentes parties du code d'une même application.

Solution Cheops

La littérature actuelle propose plusieurs abstractions logicielles, comme les structures de données répliquées sans conflits, pour gérer la géo-distribution[1]. Cependant, ces solutions nécessitent des modifications importantes du code, car le code lié à la géo-distribution est souvent mélangé avec la logique métier de l'application, ce qui va à l'encontre du principe d'ingénierie logicielle d'externalisation des préoccupations.

L'équipe de recherche STACK, dans laquelle cette thèse a été réalisée, explore une approche différente. Celle-ci tire parti de la modularité des applications micro-services pour géo-distribuer les applications cloud de manière transparente et agnostique. L'idée est simple : déployer une instance applicative complète sur chacun des sites géo-distribués et initier des collaborations entre ces instances uniquement si nécessaire. Le principe, aujourd'hui connu sous le terme anglais "local first", est de plus en plus promu pour ses nombreuses qualités : réactivité accrue, disponibilité hors ligne et meilleure maîtrise des données par l'utilisateur. Il offre également des opportunités intéressantes pour rendre les applications plus frugales en limitant les communications souvent couteuses du point de vue énergétique.

La contribution principale de la thèse de M. Antony est un langage dédié permettant d'exprimer la manière dont les collaborations doivent être réalisées. Grâce à des abstractions logicielles, les DevOps[2] peuvent décider, pour chaque requête à l'application, si celle-ci doit être exécutée localement ou de manière distribuée. Dans ce dernier cas, les procédures pour assurer la cohérence des données, potentiellement réparties entre plusieurs instances applicatives, sont également définies.


Initialement validé dans un écosystème OpenStack, le logiciel open source standard de facto pour opérer les centres de données (utilisés notamment par OVHCloud), la nouvelle version du prototype développée dans cette thèse a été validée avec l'aide de deux ingénieurs pour géo-distribuer l'application Kubernetes, largement utilisée par les DevOps dans le monde entier.

Figure 2 - Le système Cheops. Une instance applicative est déployée sur chacun des sites avec un agent Cheops. Ce dernier intercepte les requêtes et les orchestrent en fonction des besoins, soit localement, soit en collaborant avec d'autres agents si nécessaire.
Figure 2 - Le système Cheops. Une instance applicative est déployée sur chacun des sites avec un agent Cheops. Ce dernier intercepte les requêtes et les orchestrent en fonction des besoins, soit localement, soit en collaborant avec d'autres agents si nécessaire.

Contributions

La thèse de M. Geo Johns Antony représente une avancée significative dans le domaine de la géo-distribution des applications cloud, visant à rendre ce processus transparent, c'est-à-dire en minimisant les modifications nécessaires au niveau des codes existants. Les travaux menés ont également permis d'identifier de nouveaux défis, notamment la gestion des dépendances entre les différents microservices d'une même application. En effet, certaines opérations n'ont tout simplement pas de sens dans un contexte géo-distribué et ne devraient pas être autorisées. Lors de sa soutenance, M. Antony a illustré ce propos en expliquant le faible intérêt de stocker la bande-son indienne d'un film disponible sur Netflix en France, soulignant que certaines données n'ont de sens que dans une localisation particulière, tandis que d'autres doivent être répliquées à travers plusieurs sites afin d'assurer une disponibilité optimale.

Le défi consiste donc à identifier ces contraintes et à les exprimer de manière efficace. Un autre aspect concerne le maintien de ces contraintes en fonction des changements pouvant intervenir selon les besoins ou les défaillances du réseau. Ces nouveaux défis sont partiellement abordés à travers deux nouvelles thèses : l'une en collaboration avec les équipes de recherche d'Orange, et l'autre avec les chercheurs du laboratoire LIST du CEA.

Pour plus d'informations, vous pouvez consulter la thèse en ligne https://theses.fr/2024IMTA0441, le site http://stack.inria.fr ou contacter Adrien Lebre, directeur de recherche Inria à l'adresse adrien.lebre@inria.fr.



[1] https://fr.wikipedia.org/wiki/Type_de_données_répliqué_sans_conflit.

[2] Un DevOps est un professionnel qui combine les pratiques de développement logiciel (Dev) et d'administration des infrastructures informatiques (Ops) pour améliorer la collaboration et l'efficacité tout au long du cycle de vie des applications