Optimiser les microservices pour un déploiement cloud durable
Une méthode pour équilibrer performance, coût et énergie dans les applications cloud.
― 10 min lire
Table des matières
- Le défi de la durabilité dans le cloud computing
- Objectifs de déploiement durable
- Méthodologie
- Actions de refactoring
- Étude de cas : Service de réservation de billets de train
- Configuration expérimentale
- Résultats
- Impact de la durabilité sur la performance et le coût
- Variations dans la distribution de l'énergie et des coûts
- Changements dans les solutions architecturales
- Conclusion
- Source originale
- Liens de référence
Alors que les entreprises déplacent leurs applications vers le cloud, il est super important de rendre ces applications plus durables. L'architecture microservices, une méthode courante pour construire des applications cloud, peut aider à atteindre cet objectif. Cependant, rendre ces applications durables peut parfois augmenter les coûts et affecter les performances. Donc, trouver un équilibre entre la Consommation d'énergie, le coût et la performance est un objectif clé, mais c'est pas facile à réaliser.
Cet article parle d'une nouvelle méthode qui aide à déployer des microservices dans le cloud. Il se concentre sur la recherche des meilleures combinaisons entre les performances de l'application, les coûts de déploiement et l'énergie consommée. En utilisant une méthode basée sur des algorithmes génétiques, on peut rapidement créer différentes options de déploiement.
On va montrer l'efficacité de cette méthode à travers une étude de cas spécifique liée à la réservation de billets de train.
Le défi de la durabilité dans le cloud computing
Avec l'utilisation croissante des technologies numériques, les effets environnementaux des centres de données deviennent de plus en plus significatifs. La demande croissante en puissance de calcul et les besoins en énergie des centres de données augmentent leur empreinte carbone. Le cloud computing est clé pour répondre à ces besoins, car il permet aux entreprises d'améliorer leurs capacités technologiques.
L'architecture microservices, qui organise les applications en petits services pouvant être développés et déployés indépendamment, est couramment utilisée dans les environnements cloud. Cette approche est privilégiée parce qu'elle s'adapte bien à la nature évolutive du cloud computing. Cependant, lors du déploiement d'applications microservices, la consommation d'énergie reçoit souvent moins d'attention que les mesures de performance et les coûts de déploiement, qui sont généralement prioritaires.
Le problème avec le fait de se concentrer sur la consommation d'énergie, c'est que ça complique la planification des déploiements. Différentes configurations ont des besoins énergétiques variés, rendant plus difficile l'évaluation de toutes les options. Toutefois, pour le succès à long terme de l'architecture microservices basée sur le cloud, il est crucial de prendre en compte les compromis entre performance, coûts et utilisation d'énergie.
Récemment, plusieurs méthodes ont été développées pour améliorer l'efficacité énergétique et réduire les coûts lors du déploiement dans le cloud. Pourtant, beaucoup de ces méthodes ne prennent pas en compte les aspects architecturaux, limitant la compréhension des concepteurs sur les compromis complexes qui se présentent. Ce manque de clarté est intensifié par la façon dont le comportement des utilisateurs impacte la consommation d'énergie au sein des microservices.
Cet article vise à aborder ce problème en introduisant une nouvelle façon de trouver des solutions durables pour déployer des microservices dans le cloud. Plus précisément, on va utiliser des algorithmes génétiques pour créer diverses configurations de déploiement en apportant des modifications à une architecture existante. Cette approche offre aux concepteurs plusieurs options qui optimisent la performance, les coûts et l'utilisation de l'énergie.
De plus, on va étudier comment ces éléments interagissent en analysant comment la consommation d'énergie, les coûts et le comportement des utilisateurs varient avec différents types de demandes. Enfin, on va examiner comment les changements architecturaux se produisent quand on cible la consommation d'énergie, en identifiant des modifications communes dans des contextes où l'énergie est une priorité.
Pour illustrer l'application pratique de cette approche, on va utiliser l'étude de cas du service de réservation de billets de train, qui est conçue pour représenter un scénario réel couramment utilisé dans la recherche sur les microservices.
Objectifs de déploiement durable
Notre approche se concentre sur plusieurs objectifs clés :
Consommation d'énergie : Pour estimer la puissance totale consommée par un système, on adapte des modèles existants qui examinent l'utilisation des ressources pendant les heures de pointe et les temps d'arrêt. En se concentrant principalement sur l'utilisation du CPU, on peut calculer l'énergie nécessaire en fonction du niveau d'activité des serveurs.
Temps de réponse : C'est une métrique courante utilisée pour mesurer la rapidité avec laquelle le système répond aux requêtes. Notre objectif est de minimiser ce temps en considérant différents types de requêtes et comment elles interagissent avec le système.
Complexité de refactoring : Changer l'architecture logicielle peut impliquer des niveaux de complexité variés. On veut mesurer à quel point il est complexe d'appliquer différents changements pour mieux comprendre les compromis.
Coût de déploiement : Le coût de déployer l'architecture dans un environnement cloud est un autre facteur essentiel à considérer. Cela est étroitement lié au type et au nombre de serveurs utilisés.
Ces objectifs aident à formuler un déploiement de microservices plus durable en équilibrant leur performance, coût et efficacité énergétique.
Méthodologie
Notre approche utilise des algorithmes génétiques, inspirés par la sélection naturelle, pour explorer divers déploiements architecturaux. On s'appuie sur un algorithme spécifique, connu sous le nom de NSGA-II, qui est efficace pour l'optimisation multi-objectifs. L'algorithme fait évoluer des solutions potentielles à travers des processus similaires à la reproduction, combinant des solutions existantes tout en introduisant des variations.
Dans notre contexte, chaque solution potentielle consiste en une série d'actions qui refactorisent l'architecture - des modifications qui peuvent améliorer la performance, réduire les coûts ou diminuer l'utilisation d'énergie. Cette méthode nous permet de trouver des solutions de déploiement diverses, menant à une variété de configurations architecturales.
Actions de refactoring
On définit plusieurs types d'actions de refactoring qui peuvent être appliquées à l'architecture logicielle :
- Redéployer un composant existant : Déplacer un composant d'un serveur à un autre pour optimiser l'architecture globale.
- Relocaliser une opération vers un composant existant : Déplacer une tâche spécifique vers un composant déjà existant, pour assurer un fonctionnement fluide.
- Cloner un nœud : Créer un duplicata d'un serveur pour améliorer la redondance et soutenir la tolérance aux pannes.
- Déplacer une opération vers un nouveau composant sur un nouveau nœud : Transférer une tâche vers un nouveau composant sur un nouveau serveur, ce qui nécessite une planification soignée.
- Supprimer un nœud : Éliminer un serveur et déplacer ses composants vers des serveurs voisins pour maintenir une structure efficace.
Chacune de ces actions affecte différemment l'utilisation de l'énergie, les coûts et la performance du système, et notre algorithme évalue ces effets lors de la génération de nouvelles configurations.
Étude de cas : Service de réservation de billets de train
Pour valider notre approche, on l'a appliquée à l'étude de cas du service de réservation de billets de train. Cette application web est composée de plusieurs microservices et est conçue pour représenter un scénario typique rencontré dans les applications réelles.
L'architecture de ce service comprend 40 microservices, chacun logé dans son conteneur. On s'est concentré sur quelques actions utilisateur courantes, comme se connecter, mettre à jour les détails utilisateur et réserver à nouveau des billets, pour évaluer efficacement la performance de notre méthode.
Configuration expérimentale
On a mené une série d'expériences pour tester notre méthode. Dans ces expériences, on a comparé des scénarios où les aspects de durabilité, notamment la consommation d'énergie, étaient inclus comme cibles d'optimisation par rapport à des scénarios où ce n'était pas le cas.
En réalisant divers essais, on a recueilli des données sur la façon dont différentes configurations impactaient la performance, le coût et l'utilisation d'énergie. Cela nous a aidés à évaluer l'efficacité de notre approche et à identifier les compromis impliqués dans la priorisation de la durabilité.
Résultats
Les résultats de nos expériences fournissent des insights précieux sur la relation entre la durabilité et la performance des applications. Notamment, on a découvert que se concentrer sur la consommation d'énergie avait un impact significatif sur les temps de réponse à travers le système. Cependant, cette focalisation n'a pas affecté de manière notable les coûts de déploiement, ce qui est un résultat prometteur pour les organisations cherchant à être durables sans engendrer de dépenses supplémentaires.
Impact de la durabilité sur la performance et le coût
Nos résultats ont indiqué qu'insister sur la durabilité, en particulier sur la consommation d'énergie, aboutissait généralement à une diminution notable des temps de réponse. Les expériences ont démontré que les solutions découvertes lorsque la consommation d'énergie était une cible offraient plus d'options dans l'ensemble, ce qui implique que les concepteurs peuvent choisir parmi une gamme plus large de déploiements efficaces.
Étonnamment, bien que la performance ait été affectée, les coûts de déploiement sont restés relativement stables. Cela suggère que les organisations peuvent chercher des applications cloud durables sans sacrifier l'efficacité financière.
Variations dans la distribution de l'énergie et des coûts
En analysant comment différentes demandes d'utilisateur affectaient la consommation d'énergie et les coûts, on a observé que les différentes fonctionnalités contribuaient de diverses manières. Différentes actions utilisateur pouvaient radicalement changer la charge énergétique et de coût globale du système.
Par exemple, dans des scénarios où les demandes étaient optimisées, certaines actions utilisateur étaient responsables d'une part plus significative de l'utilisation totale d'énergie. Ces données permettent aux concepteurs architecturaux de prendre des décisions éclairées sur les aspects du service qui peuvent nécessiter des ajustements pour améliorer les résultats de durabilité.
Changements dans les solutions architecturales
On a également examiné comment les types d'actions de refactoring utilisées dans le processus architectural changeaient lorsque l'on considérait la consommation d'énergie comme un objectif. Nos résultats ont montré que certaines actions, comme la suppression de nœuds de l'architecture, étaient plus fréquentes lorsque la consommation d'énergie était ciblée.
En conséquence, différents schémas architecturaux ont émergé. Cela indique qu'en considérant la durabilité dans la phase de conception, on peut révéler des opportunités d'amélioration auparavant invisibles et guider les décisions sur quels composants de l'architecture pourraient être surprovisionnés ou sous-utilisés.
Conclusion
À travers nos efforts, on a introduit une nouvelle façon de déployer des microservices dans le cloud tout en visant la durabilité. En utilisant des algorithmes génétiques et une approche ciblée, on parvient à créer une variété de configurations qui équilibrent performance, coûts et utilisation d'énergie de manière efficace.
Les résultats de notre étude de cas indiquent que les objectifs de durabilité, notamment la concentration sur la consommation d'énergie, impactent significativement la performance tout en ayant un effet négligeable sur les coûts. Ce travail ouvre de nouvelles voies pour des recherches futures, y compris des tests de l'approche dans différents contextes et l'étude de comment les changements dans les décisions de déploiement affectent les interactions utilisateur et la durabilité.
Alors que les organisations se concentrent de plus en plus sur la durabilité dans la technologie, notre approche offre un cadre pratique pour améliorer l'efficacité énergétique des applications cloud, aidant ainsi dans le passage vers des solutions informatiques plus respectueuses de l'environnement.
Titre: Exploring sustainable alternatives for the deployment of microservices architectures in the cloud
Résumé: As organizations increasingly migrate their applications to the cloud, the optimization of microservices architectures becomes imperative for achieving sustainability goals. Nonetheless, sustainable deployments may increase costs and deteriorate performance, thus the identification of optimal tradeoffs among these conflicting requirements is a key objective not easy to achieve. This paper introduces a novel approach to support cloud deployment of microservices architectures by targeting optimal combinations of application performance, deployment costs, and power consumption. By leveraging genetic algorithms, specifically NSGA-II, we automate the generation of alternative architectural deployments. The results demonstrate the potential of our approach through a comprehensive assessment of the Train Ticket case study.
Auteurs: Vittorio Cortellessa, Daniele Di Pompeo, Michele Tucci
Dernière mise à jour: 2024-02-17 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2402.11238
Source PDF: https://arxiv.org/pdf/2402.11238
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.