Architectures logicielles basées microservices efficientes en énergie
Auteur / Autrice : | Cesar Perdigao batista |
Direction : | Sophie Chabridon, Denis Conan |
Type : | Projet de thèse |
Discipline(s) : | Informatique, données, IA |
Date : | Inscription en doctorat le 08/01/2024 |
Etablissement(s) : | Institut polytechnique de Paris |
Ecole(s) doctorale(s) : | École doctorale de l'Institut polytechnique de Paris |
Partenaire(s) de recherche : | Laboratoire : Télécom SudParis (Evry ; 2012-....) |
Equipe de recherche : ACMES |
Mots clés
Mots clés libres
Résumé
Contexte et besoins : Le cloud computing et ses nombreuses déclinaisons offrent aux utilisateurs des capacités de calcul et de stockage considérables. La maturité des techniques de virtualisation a permis l'émergence d'infrastructures virtualisées complexes, capables de déployer et de reconfigurer rapidement des ressources virtuelles et élastiques dans des infrastructures de plus en plus distribuées. Cette gestion des ressources, transparente pour les utilisateurs, donne l'illusion d'un accès à des ressources flexibles, illimitées et quasi immatérielles. Pourtant, la consommation électrique de ces nuages est bien réelle et préoccupante, tout comme leurs émissions globales de gaz à effet de serre (GES) et la consommation de matières premières critiques entrant dans leur fabrication. Dans un contexte où le changement climatique devient plus visible, avec des conséquences graves pour les hommes et la planète, tous les secteurs (transport, bâtiment, agriculture, industrie, etc.) doivent contribuer à l'effort de réduction des émissions de GES. Malgré leur capacité à optimiser les processus dans d'autres secteurs (transport, énergie, agriculture), les clouds n'échappent pas à ce constat : il faut inverser la pente croissante de leurs émissions de gaz à effet de serre, faute de quoi leurs bénéfices potentiels dans d'autres secteurs seront effacés. Les architectures logicielles basées sur les microservices sont devenues un standard de développement pour les applications déployées dans le Cloud. Ce paradigme architectural vise à modulariser et à réutiliser les services logiciels pour faciliter leur maintenance et leur gestion du cycle de vie. Le succès des microservices a également été porté par l'émergence de conteneurs logiciels qui facilitent leur déploiement parallèle en production via des plateformes d'orchestration comme Kubernetes ou Docker Swarm. Cependant, le déploiement de microservices dans le Cloud repose souvent sur une combinaison de couches IaaS, PaaS et SaaS qui peuvent pénaliser l'efficacité énergétique du système final. A l'échelle d'un datacenter ou d'un ordinateur, il est désormais courant pour les fournisseurs de Cloud de présenter la consommation électrique à leurs clients. Cependant, à l'échelle d'un microservice, cela reste un problème ouvert. En effet, la complexité croissante de la pile logicielle entre le matériel et l'application de l'utilisateur (système d'exploitation, machines virtuelles, middleware, conteneurs, orchestrateurs, microservices, etc.) ainsi que l'imbrication des appels de service rendent difficile l'affectation des consommations énergétiques aux un service. Défis et objectifs : Dans le but général d'améliorer l'efficacité énergétique des infrastructures Cloud, cette thèse vise à étudier une nouvelle approche fondée sur des principes pour comprendre et utiliser la consommation d'énergie dans l'évolution dynamique des architectures logicielles basées sur les microservices. L'idée clé est d'affiner la consommation d'énergie à la granularité d'un microservice, voire d'un appel de service. Un premier objectif est alors d'aborder le problème de la mesure de la consommation énergétique d'un microservice hébergé dans un conteneur et utilisant d'autres microservices hébergés dans d'autres conteneurs. Ainsi, le premier enjeu est que cette consommation soit évaluée par un fournisseur Cloud pour chaque microservice hébergé, voire pour chaque appel au service client. Un point de départ sera d'étudier l'état de l'art [Power API, 2021, Bourdon et al., 2013, Khomh et Abtahizadeh, 2018, Fontana de Nardin et al., 2021] et de mener des expériences de mesure. De plus, la mise à jour facile des microservices d'un service plus vaste est l'un des principaux avantages des microservices. Les services d'orchestration cloud permettent de remplacer les microservices par d'autres versions, avec de légères modifications aux microservices existants. Un deuxième objectif est alors d'exprimer les préoccupations d'efficacité énergétique dans l'évolution dynamique des architectures logicielles d'une manière compréhensible et utilisable par les développeurs et les architectes logiciels. Un second enjeu est alors d'intégrer la consommation énergétique au niveau d'une version d'un microservice dans le processus décisionnel d'évolution des applications. Les décisions pourraient être motivées par la consommation d'énergie de la nouvelle version d'un microservice ou d'un ensemble de microservices dans le but de remplacer un microservice par un autre qui consomme moins d'énergie. Le candidat prendra en compte des travaux récents sur la mise à jour dynamique de logiciels [Sokolowski et al., 2022, Wang et al., 2021, Wang, 2022]. Un troisième objectif est de démontrer l'applicabilité de l'approche en construisant un prototype. Le candidat organisera des validations expérimentales, pouvant être à la fois dans des environnements de simulation (e.g. SimGrid [Casanova et al., 2014] : https://simgrid.org/) et sur des plateformes expérimentales (e.g. SLICES-FR : https:// slices-ri.eu/). L'évaluation s'appuiera sur des suites de benchmark open source construites avec des microservices représentatifs de grands services de bout en bout (par exemple DeathStarBench [Gan et al., 2019] : https://github.com/delimitrou/DeathStarBench).