Fermyon a créé un cloud WebAssembly pour pousser les microservices sans serveur au-delà des conteneurs

Lors de KubeCon/CloudNativeCon 2022, Fermyon a lancé sa plateforme orientée microservices pour les applications WebAssembly, appelée Fermyon Cloud, qui est désormais disponible en version bêta ouverte.

Au cœur de Fermyon Cloud se trouve la vision selon laquelle WebAssembly a le potentiel de faire de la promesse sans serveur une réalité, surmontant ainsi les limitations posées par les conteneurs et les machines virtuelles. Le PDG de Fermyon, Matt Butcher, affirme que WebAssembly est supérieur aux machines virtuelles et aux conteneurs sur deux points : les temps de démarrage et la portabilité entre les plates-formes.

Tous les microservices devraient idéalement être sans état et utiliser un service avec état pour stocker leurs informations. Et grâce à ces fonctionnalités, vous devriez pouvoir les démarrer et les arrêter aussi rapidement que possible. Imaginez maintenant, au lieu de prendre plusieurs minutes pour démarrer une machine virtuelle ou plusieurs secondes ou quelques dizaines de secondes pour démarrer un conteneur, vous pourriez démarrer instantanément votre application et l’arrêter instantanément lorsqu’elle ne gère plus le trafic. C’est le modèle que nous avons poursuivi avec WebAssembly.

Selon Butcher, vous pouvez exécuter la première instruction de votre application en moins d’une milliseconde, parfois au niveau de la microseconde. Cela faciliterait la création d’applications qui évoluent rapidement lorsqu’il y a un pic de demande et jusqu’à zéro et qu’aucun trafic n’arrive, sans gaspiller de CPU ou de mémoire. Lors de l’utilisation de conteneurs ou de machines virtuelles, au contraire, l’approche habituelle du démarrage à froid consiste à exécuter une instance inactive pendant un certain temps après qu’une requête a été servie, au cas où une nouvelle arriverait rapidement.

L’autre grand avantage de WebAssembly est la portabilité entre les architectures, jusqu’au niveau exécutable :

Mon intérêt était de pouvoir prendre le même artefact compilé, les mêmes octets compilés, et de les exécuter sur les systèmes d’exploitation et les architectures de processeur. C’était la première chose qui venait du monde des conteneurs où nous avions une image de conteneur et qui était liée à une architecture, à une architecture CPU et à un système d’exploitation, et vous aviez besoin d’avoir quelque chose comme des images multi-arch pour obtenir le Les mêmes applications s’exécutent dans plusieurs environnements. Le fait que vous puissiez prendre le même module WebAssembly et l’exécuter sous Linux sur ARM, puis Windows sur AMD, puis quelque part dans le cloud dont vous ne vous souciez pas vraiment de l’architecture, était fascinant.

La portabilité s’étend également aux langues, dans la mesure où WebAssembly est une cible prise en charge pour de nombreuses langues actuellement disponibles. La principale exigence ici pour qu’un langage soit utilisé sur la plate-forme Fermyon est le support WASI. Cela signifie que vous pouvez utiliser Python, C# et d’autres langages .NET, C/C++, Go, Rust et autres. Les exceptions notables sont Java, JavaScript/TypeScript, Scala et autres.

Basé sur Spin, le framework open source de Fermyon pour créer des microservices cloud à l’aide de WebAssembly, Fermyon Cloud s’appuie sur un certain nombre d’autres projets open source, notamment Bindle pour gérer les versions, Nomad pour l’orchestration, etc. Au lieu d’utiliser Spin proprement dit pour exécuter des applications, Fermyon Cloud utilise un environnement d’exécution hautement évolutif, qui, selon eux, est capable d’exécuter des milliers d’applications sur un cluster Nomad à cinq travailleurs.

Tout en empilant WebAssembly et les microservices basés sur des conteneurs, Butcher veille à ne pas postuler le premier comme un remplacement du second. Il la considère plutôt comme une technologie complémentaire qui, dans certains cas, fonctionnera côte à côte avec des conteneurs et des machines virtuelles.

Ce n’est pas que les machines virtuelles ont été remplacées par des conteneurs et WebAssembly remplacera les conteneurs. Chaque fois qu’on fait une sorte de pas incrémental, c’est additif. Nous ajoutons une chose de plus, mais nous ne soustrayons rien d’autre. Les machines virtuelles constituent donc un marché plus fort que jamais et les outils de gestion des machines virtuelles continuent de s’améliorer. De même avec les conteneurs et je pense que WebAssembly sera cette prochaine technologie complémentaire.

Comme mentionné, Fermyon Cloud est désormais disponible en version bêta ouverte, avec la seule limitation d’un nombre maximum de cinq tours autorisés par développeur. Si vous préférez exécuter votre propre plate-forme pour héberger des applications Spin, vous pouvez utiliser le programme d’installation de Fermyon sur l’un des principaux fournisseurs de cloud, notamment Azure, AWS, DigitalOcean et Google.

REMARQUE : Cet article a été modifié par souci d’exhaustivité le 23 novembre pour inclure une mention des langues prises en charge.

.

Leave a Comment

Your email address will not be published. Required fields are marked *