Pourquoi Wasm est l’avenir du cloud computing
Wasm est peut-être la technologie émergente la plus importante dont vous n’avez jamais entendu parler. Ok, peut-être que vous en avez entendu parler. C’est important!
Raccourci pour le langage WebAssembly, Wasm a été développé pour le web. Cependant, la technologie Wasm s’est étendue au-delà du navigateur Web. Désormais, les organisations commencent à exécuter Wasm côté serveur. Par exemple, mon entreprise, SingleStore, l’utilise dans notre base de données.
Certains pensent que Wasm remplacera la technologie des conteneurs et le JavaScript omniprésent.
Que vous le croyiez ou non, Wasm a clairement un impact sur le cloud computing. Pourquoi et comment ? Comptons les chemins.
Wasm est multiplateforme : il est plus sûr et plus simple de rassembler les composants du cloud
Les gens utilisent toutes sortes de langages pour écrire des logiciels. Faire interagir ces langues les unes avec les autres est difficile. Wasm fournit un cadre dans lequel vous pouvez écrire dans la langue de votre choix. Ensuite, il produit un format de machine simulé commun.
Ce format permet aux composants écrits dans divers langages comme Rust, C/C++ et Goto de se parler. Wasm offre également la possibilité aux systèmes côté serveur, tels que les bases de données, d’intégrer des composants de différentes langues sans que vous ayez à connaître ou à vous soucier de la manière dont ce module a été produit.
Considérez Wasm comme un format de plugin universel. Supposons que vous souhaitiez augmenter les capacités de votre système avec un composant développé par un tiers. Wasm vous permet d’intégrer le nouveau composant dans votre système sans les risques généralement associés à l’intégration de modules complémentaires. Par exemple, un composant externe peut planter le système ou fonctionner de manière inattendue. Wasm atténue ces problèmes en créant un cadre extrêmement sûr pour que des systèmes et des composants disparates interagissent ensemble.
Le cloud est un moteur important de l’expansion de Wasms. Wasm convient parfaitement au cloud car il est virtualisé et peut fonctionner dans n’importe quel environnement prenant en charge l’environnement d’exécution Wasm. En outre, les systèmes cloud sont généralement composés de nombreux services regroupés et connectés de différentes manières. Cela peut devenir compliqué. Mais plus vous pouvez simplifier votre environnement cloud, plus il est facile pour les différents aspects des systèmes cloud de fonctionner correctement ensemble.
Wasm est sécurisé : réduction des risques grâce à son approche de l’exécution du code et de la représentation des fonctions
Dans la plupart des runtimes de langage, les fonctions ont des adresses. Ces adresses sont des points exécutables en mémoire. Si vous considérez simplement la mémoire comme un groupe d’octets, une fonction peut être impossible à distinguer du reste de la mémoire. Cela ouvre la porte aux gens pour trouver la fonction et y injecter du code, ou appeler une fonction de manière privilégiée pour que la fonction fasse quelque chose qu’elle n’est pas censée faire. La conception Wasms élimine ces problèmes.
Wasm représente les fonctions d’une manière qui n’est pas exploitable. Il exécute également le code dans un bac à sable, ce qui atténue les problèmes de sécurité courants associés à l’exécution de code non approuvé. Étant donné que Wasm encapsule la mémoire du programme dans une zone sécurisée, rien ne peut en sortir et accéder à d’autres endroits susceptibles d’affecter l’hôte qui exécute le programme ou de compromettre la sécurité.
Et avec le modèle de sécurité basé sur les capacités de Wasm, les hôtes ont un contrôle total sur les types d’opérations privilégiées que le programme Wasm peut exécuter. Par exemple, les hôtes doivent accorder explicitement l’accès aux répertoires si l’accès aux fichiers est une exigence.
Wasm est rapide : élimine ce qui n’est pas nécessaire et permet une plus grande rapidité et efficacité
De toute évidence, Wasm n’est pas la première technologie que les gens ont utilisée pour rassembler les choses de manière plus sûre et plus simplifiée. Cependant, Wasm est beaucoup plus rapide que certaines de ces autres technologies.
Les compilateurs peuvent générer des programmes Wasm en exploitant le back-end LLVM, en compilant jusqu’à la représentation intermédiaire LLVM. LLVM, ou machine virtuelle de bas niveau, est une machine extraite sur laquelle de nombreux langages se compilent déjà. Grâce à cette approche, et grâce à de nombreuses années d’efforts communautaires autour du projet LLVM, les programmes Wasm peuvent être compilés en code machine hautement optimisé.
Chez SingleStore, nous avons créé l’univers virtuel en temps réel Wasm Space Programa dans une base de données pour démontrer à quel point Wasm est rapide et léger. Dans cette simulation, les vaisseaux spatiaux utilisent différentes stratégies pour reconstituer l’énergie et combattre d’autres vaisseaux spatiaux dans un vaste univers en temps réel. Cela implique une grande quantité de données, avec plus d’un million de navires dans le système et près de trois millions de mises à jour de bases de données par seconde.
Traditionnellement, l’intégration de ces données et leur assemblage sur une couche de niveau intermédiaire vous obligeait à extraire beaucoup de données vers le niveau intermédiaire. Cela pourrait introduire une énorme quantité de décalage et nécessiter une mise en cache complexe pour obtenir une réponse en temps réel. Plutôt que d’adopter cette approche, chaque stratégie de vaisseau spatial a été écrite en Wasm et chargée dans la base de données en tant qu’UDF. Chaque seconde, chacune des fonctions de stratégie des vaisseaux spatiaux est invoquée pour décider de son prochain mouvement.
Il n’y a rien sur le programme JavaScript frontal exécuté dans le navigateur qui comprend ces stratégies, ou quoi que ce soit sur l’état de l’univers. Son travail consiste simplement à envoyer des requêtes SQL directement à la base de données et à présenter graphiquement les informations renvoyées. La base de données conserve toutes les informations d’état, et comme Wasm a permis au calcul d’être juste à côté des données, c’est beaucoup plus rapide. Aucun niveau intermédiaire n’était même nécessaire.
Mais Wasm n’est pas que du plaisir et des jeux. Vous pouvez l’utiliser pour traiter d’innombrables autres applications et cas d’utilisation. Par exemple, vous pouvez utiliser Wasm pour l’analyse des sentiments. Le type de logique complexe requis pour l’analyse des sentiments n’est pas quelque chose qui peut être facilement exprimé dans un dialecte SQL de base de données. Donc, pour ce faire, vous devez généralement l’implémenter dans un langage plus sophistiqué, puis y apporter les données en téléchargeant chaque ligne de données. Ensuite, vous devez renvoyer la note d’analyse des sentiments dans la base de données. Cela signifie un aller-retour pour chaque ligne de la base de données que vous utilisez. Si vous avez des millions de lignes, cela crée beaucoup de trafic réseau. Mais avec la façon dont SingleStore a intégré Wasm, vous êtes déjà dans la base de données, vous n’encourez donc pas cette surcharge.
Wasm s’améliore tout le temps : la création de normes le rend encore plus puissant
Wasm est déjà très capable. Et avec les nouvelles technologies et normes qui arrivent, Wasm vous permettra de faire encore plus.
Par exemple, le W3C WebAssembly Community Group, avec l’aide de membres d’organisations telles que la Bytecode Alliance (dont SingleStore est membre), travaille actuellement à la standardisation de l’interface système WebAssembly (WASI). WASI fournira un ensemble standard d’API et de services pouvant être utilisés lorsque les modules Wasm s’exécutent sur le serveur. De nombreuses propositions standard sont toujours en cours, telles que la récupération de place, les E / S réseau et le threading, de sorte que vous ne pouvez pas toujours mapper les choses que vous faites dans d’autres langages de programmation à Wasm. Mais finalement, WASI vise à fournir une norme complète qui aidera à atteindre cet objectif. À bien des égards, les objectifs de WASI sont similaires à ceux de POSIX.
Wasm tel qu’il est actuellement n’aborde pas non plus la possibilité de se lier ou de communiquer avec d’autres modules Wasm. Mais la communauté Wasm, avec le soutien de membres de l’industrie informatique, travaille à la création de ce qu’on appelle le modèle de composants. Cela vise à créer une infrastructure de liaison dynamique autour des modules Wasm, définissant comment les composants démarrent et communiquent entre eux (similaire à un modèle de processus de système d’exploitation traditionnel).
De plus, une syntaxe IDL standard émergente, appelée WIT (pour WebAssembly Interface Types), permettra aux utilisateurs de décrire leurs interfaces Wasm d’une manière indépendante du langage. En conséquence, les générateurs de liaison pourront prendre ce qui se trouve dans l’IDL et compiler le code qui permettra à la fois à l’hôte Wasm et à l’invité de communiquer des données d’une manière commune.
Wasm est l’avenir : fournir un moyen plus rapide, plus sûr et plus efficace de rassembler les choses
Wasm, bien que plus léger, ne remplacera peut-être pas les conteneurs de si tôt. Mais vous pouvez vous attendre à ce que Wasm fasse partie de tout un tas de logiciels à l’avenir.
Que ce soit sur le serveur ou en périphérie, Wasm vous permet de créer une logique personnalisée qui s’exécute beaucoup plus près des données qu’elle ne le pouvait auparavant et vous pouvez le faire en toute sécurité, efficacement et avec une plus grande flexibilité.
Et maintenant, avec SingleStore, vous pouvez compiler vos programmes existants sur Wasm, les pousser dans la base de données et les y exécuter. Cela signifie que vous n’aurez peut-être pas à réécrire ce code et à le placer quelque part où les données ne le sont pas. Avec la technologie Wasm, vous pouvez avoir le meilleur des deux mondes.
Peter Vetere développe des logiciels depuis 25 ans. Il travaille actuellement pour Magasin uniquecréateur de SingleStoreDB, une base de données SQL distribuée en temps réel conçue pour les applications gourmandes en données en tant que membre de l’équipe LaunchPad, où il recherche des moyens d’apporter de nouvelles idées innovantes à la base de données.
Le New Tech Forum offre un lieu pour explorer et discuter des technologies d’entreprise émergentes avec une profondeur et une ampleur sans précédent. La sélection est subjective, basée sur notre sélection des technologies que nous pensons importantes et les plus intéressantes pour les lecteurs d’InfoWorld. InfoWorld n’accepte pas les supports marketing pour publication et se réserve le droit de modifier tout le contenu contribué. Envoyez toutes les demandes à newtechforum@infoworld.com.
Copyright © 2022 IDG Communications, Inc.