Exploiter l'informatique sans serveur avec des machines imaginaires
Un nouveau modèle qui aide les applications cloud à utiliser les ressources sans serveur de manière efficace.
― 7 min lire
Table des matières
L'informatique Sans serveur, c'est une nouvelle façon de faire tourner des applis qui permet aux devs de se concentrer sur l'écriture de code au lieu de gérer des serveurs. Cette approche fournit des ressources qui peuvent être ajustées rapidement et facilement, permettant aux applis de s'adapter sans trop d'effort. Toutefois, beaucoup d'applis cloud existantes n'exploitent pas vraiment ces avantages car elles sont conçues pour des machines virtuelles traditionnelles plutôt que pour des plateformes sans serveur. Cet article présente un nouveau modèle appelé Machines Imaginaires, qui vise à aider les applis cloud existantes à utiliser les ressources sans serveur de manière plus efficace.
Options actuelles pour les utilisateurs de cloud
Aujourd'hui, les devs ont deux choix principaux pour créer des applis dans le cloud : louer des machines virtuelles (VM) au besoin ou utiliser des services de calcul et de stockage sans serveur proposés par les fournisseurs. Les VM offrent un environnement familier où les devs peuvent tout contrôler et gérer, mais les utilisateurs doivent gérer l'infrastructure eux-mêmes, ce qui peut être complexe et prendre du temps.
D'un autre côté, les plateformes sans serveur s'occupent de la gestion de l'infrastructure pour les devs. Elles fournissent un environnement très élastique où les ressources peuvent être mises à l'échelle automatiquement, mais elles nécessitent un style de programmation spécifique appelé Function-as-a-Service (FaaS). Ce modèle FaaS peut limiter les types d'applis qui peuvent être créées, ce qui le rend moins flexible pour certains devs.
Défis des approches actuelles
Le principal souci, c'est que beaucoup d'applis cloud traditionnelles reposent sur un modèle où les serveurs sont vus comme un réseau d'hôtes, et elles s'attendent à interagir avec les ressources de cette manière. Les options sans serveur disponibles aujourd'hui ne s'adaptent pas facilement à ce modèle, ce qui entraîne une moindre utilisation des ressources, une complexité de gestion accrue, et des coûts plus élevés pour les applis cloud.
Les chercheurs et les devs essaient de combler ce fossé. Ils explorent de nouveaux designs pour les plateformes sans serveur et créent des applis spéciales qui s'inscrivent dans le cadre FaaS. Cependant, ça peut être une manière inefficace d'atteindre les bénéfices des ressources sans serveur, laissant beaucoup de place à l'amélioration.
Présentation des Machines Imaginaires
Le modèle des Machines Imaginaires propose une solution à ces défis. Ce modèle permet aux applis cloud traditionnelles d'utiliser les ressources élastiques disponibles dans des environnements sans serveur sans avoir besoin de changer la façon dont les applis sont construites. Ça fonctionne en faisant apparaître les ressources sans serveur comme si elles faisaient partie du réseau traditionnel d'hôtes auquel les devs sont habitués. De plus, ça gère automatiquement les ressources des applis sans nécessiter que les devs orchestrent tout manuellement.
Avec les Machines Imaginaires, les devs peuvent faire tourner leurs applis cloud existantes dans un environnement sans serveur, profitant des avantages de l'élasticité tout en conservant le modèle de programmation qu'ils connaissent bien. Ça signifie qu'ils peuvent profiter d'une meilleure utilisation des ressources et de coûts de gestion réduits, tout comme les applis conçues spécifiquement pour les plateformes sans serveur.
Comment fonctionnent les Machines Imaginaires
Les Machines Imaginaires simplifient l'expérience sans serveur en gardant le modèle de programmation original que les devs connaissent. Au lieu d'exiger des changements dans le code de l'appli, ça adapte les ressources sans serveur pour travailler avec les applis telles qu'elles sont.
Une partie centrale de ce modèle opère via l'orchestration automatique des ressources. Dans les configurations cloud traditionnelles, les applis communiquent avec différentes parties du système via un réseau, et les tâches sont réalisées en fonction de ces communications. Le modèle des Machines Imaginaires détecte quand des ressources sont nécessaires et les alloue sur le tas.
Par exemple, si une appli essaie d'accéder à un service qui n'est pas en marche, le système répond en démarrant automatiquement le service nécessaire. À l'inverse, si un service est inactif, le système peut libérer les ressources qu'il utilisait, évitant ainsi le gaspillage. Ça veut dire que les devs n'ont pas à se soucier de la montée en charge manuelle de leurs applis ; le système s'en occupe pour eux.
Avantages du modèle des Machines Imaginaires
Ce nouveau modèle apporte plusieurs avantages qui peuvent considérablement améliorer le fonctionnement des applis cloud :
Efficacité des ressources : Avec redimensionnement automatique et Gestion des ressources, les applis peuvent mieux gérer des charges de travail variées sans gaspiller de ressources. Ça entraîne des coûts réduits et une performance améliorée.
Moins de complexité : Les devs n'ont pas à se concentrer sur la gestion de l'infrastructure. Ça leur permet de passer plus de temps à écrire du code et à développer des fonctionnalités, augmentant leur productivité.
Compatibilité : Les applis existantes peuvent fonctionner sur une plateforme sans serveur sans avoir besoin de modifier leur structure principale. Ça facilite la transition des équipes vers un mode de travail sans serveur.
Flexibilité : Les applis peuvent s'adapter sans problème à la hausse ou à la baisse en fonction de la demande, permettant aux devs de concevoir des applis plus résilientes qui peuvent s'ajuster aux conditions changeantes.
Performance améliorée : Grâce à la possibilité d'allouer des ressources à la demande, les applis peuvent réagir plus rapidement aux requêtes des utilisateurs, améliorant l'expérience utilisateur.
Mise en œuvre pratique
Pour donner vie au modèle des Machines Imaginaires, il s'appuie sur des technologies existantes, comme Boxer, qui est un système permettant aux applis traditionnelles de fonctionner sur des plateformes sans serveur comme AWS Lambda. L'objectif est de s'assurer que le système reconnaît quand les applis ont besoin de plus de ressources ou quand elles peuvent les libérer.
Le développement de ce modèle implique la mise en place d'un cadre où les fonctions nécessaires peuvent être automatiquement allouées en fonction des besoins des applis, tout en s'assurant que le processus n'ajoute pas une latence significative. Par exemple, le démarrage de nouvelles fonctions devrait se faire assez rapidement pour que les utilisateurs ne perçoivent pas de retard dans leurs applis.
Le but est de créer une situation où les devs peuvent faire tourner leurs applis avec l'esprit que toutes les ressources nécessaires sont continuellement disponibles. De cette façon, ils peuvent se concentrer sur leur code plutôt que sur l'infrastructure sous-jacente.
Conclusion
Les Machines Imaginaires représentent une direction prometteuse pour les applis cloud modernes. En permettant aux applis traditionnelles de fonctionner dans un environnement sans serveur sans nécessiter de changements majeurs, ça offre une manière aux devs d'optimiser leur utilisation des ressources et leurs processus de gestion.
Avec ce modèle, les devs peuvent profiter des avantages de l'informatique sans serveur tout en maintenant la familiarité du style de programmation en réseau d'hôtes auquel ils sont habitués. À mesure que la technologie sans serveur continue d'évoluer, des modèles comme les Machines Imaginaires pourraient jouer un rôle clé dans l'avenir du développement d'applis cloud, facilitant la tâche des devs pour construire, déployer et gérer efficacement leurs applis.
Titre: Imaginary Machines: A Serverless Model for Cloud Applications
Résumé: Serverless Function-as-a-Service (FaaS) platforms provide applications with resources that are highly elastic, quick to instantiate, accounted at fine granularity, and without the need for explicit runtime resource orchestration. This combination of the core properties underpins the success and popularity of the serverless FaaS paradigm. However, these benefits are not available to most cloud applications because they are designed for networked virtual machines/containers environments. Since such cloud applications cannot take advantage of the highly elastic resources of serverless and require run-time orchestration systems to operate, they suffer from lower resource utilization, additional management complexity, and costs relative to their FaaS serverless counterparts. We propose Imaginary Machines, a new serverless model for cloud applications. This model (1.) exposes the highly elastic resources of serverless platforms as the traditional network-of-hosts model that cloud applications expect, and (2.) it eliminates the need for explicit run-time orchestration by transparently managing application resources based on signals generated during cloud application executions. With the Imaginary Machines model, unmodified cloud applications become serverless applications. While still based on the network-of-host model, they benefit from the highly elastic resources and do not require runtime orchestration, just like their specialized serverless FaaS counterparts, promising increased resource utilization while reducing management costs.
Auteurs: Michael Wawrzoniak, Rodrigo Bruno, Ana Klimovic, Gustavo Alonso
Dernière mise à jour: 2024-06-30 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2407.00839
Source PDF: https://arxiv.org/pdf/2407.00839
Licence: https://creativecommons.org/licenses/by-sa/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.