Pourquoi devriez-vous vous intéresser à WebAssembly ?

Écosystème F5 | 02 octobre 2024

La technologie évolue rapidement autour de nous. Vous avez peut-être entendu dire que WebAssembly (ou Wasm en abrégé) fait beaucoup parler de lui parmi les développeurs et les passionnés de technologie. Mais qu’est-ce que WebAssembly exactement, et pourquoi est-il suffisamment important pour mériter votre attention ? Entrons dans le vif du sujet.

Qu’est-ce que WebAssembly ?

WebAssembly est fondamentalement un jeu d’instructions binaires. Il s’apparente aux langages assembleur dont vous avez peut-être entendu parler, comme x86 ou ARM, mais présente de nouvelles caractéristiques et garanties de sécurité. Vous écrivez du code dans un langage de programmation tel que C ou Rust, puis ce code peut être compilé en un artefact WebAssembly. Wasm ayant été initialement créé pour le Web, son principal attrait résidait dans la possibilité d’exécuter sur le Web des applications hautes performances à des vitesses proches de celles du code natif. Aujourd’hui, WebAssembly est toutefois également largement adopté en dehors des navigateurs.

L’un des éléments qui distingue Wasm des autres cibles de compilation est sa portabilité. Le code WebAssembly peut s’exécuter sur n’importe quelle plateforme, dès lors qu’un environnement d’exécution est disponible, quelle que soit l’architecture sous-jacente. Les développeurs peuvent ainsi écrire leur code une seule fois et s’attendre à ce qu’il fonctionne partout, que ce soit sous Windows, macOS, Linux, sur des systèmes d’exploitation mobiles, dans un navigateur ou même sur une ampoule connectée.

WebAssembly est-il sécurisé ?

La sécurité est absolument primordiale, en particulier dans le monde numérique dans lequel nous vivons aujourd’hui. C’est pourquoi WebAssembly a été conçu avec la sécurité comme objectif fondamental. Prenons un instant pour réfléchir à ce que font les navigateurs web. Lorsque vous consultez une page web, votre navigateur télécharge du code inconnu et non fiable, puis l’exécute — ce qui est vraiment terrifiant quand on y pense. Il incombe à votre navigateur de vous protéger, ainsi que votre appareil, contre le code malveillant. C’est précisément cette approche qui a été intégrée à WebAssembly grâce aux éléments suivants :

  1. Bac à sable : Cette technique isole le code WebAssembly de l’environnement hôte, l’empêchant d’accéder à des données non autorisées ou d’obtenir des informations sur l’environnement dans lequel il s’exécute.
  2. Accès refusé par défaut : WebAssembly applique une politique de sécurité très stricte fondée sur le refus par défaut, ce qui signifie qu’il ne peut pas accéder aux ressources système sans autorisation explicite. Cela concerne même des ressources aussi simples que l’heure système, qui reste totalement inaccessible à moins d’être expressément partagée avec le code Wasm.
  3. Limites de mémoire : Chaque instance WebAssembly en cours d’exécution dispose de sa propre zone de mémoire, au-delà de laquelle elle ne peut rien voir, et qui est totalement isolée des autres instances WebAssembly et de la mémoire de l’hôte.

WebAssembly est-il rapide ?

WebAssembly a été conçu pour être rapide. Par rapport à JavaScript, le code Wasm peut être décodé et commencer à s’exécuter avant même que le code JavaScript puisse être analysé. Il permet de créer de nouvelles expériences dans les navigateurs, tout en offrant des performances proches de celles du code natif en dehors du navigateur, avec des garanties de portabilité et de sécurité.

Pourquoi devriez-vous vous y intéresser ?

Il ne s’agit absolument pas de remplacer JavaScript. Ces deux technologies sont complémentaires et ont été conçues pour fonctionner ensemble plutôt que pour se concurrencer. JavaScript reste indispensable aux parties dynamiques et interactives des applications web, tandis que Wasm est davantage utilisé pour les tâches nécessitant une grande puissance de calcul.

Comme le code WebAssembly s’exécute dans un environnement d’exécution, il est facile de l’intégrer à une application existante, qu’il s’agisse d’une application web ou d’une application exécutée en périphérie ou sur un serveur. Vous pouvez ainsi étendre votre application avec du code écrit dans presque n’importe quel langage, voire avec du code non fiable provenant de tiers. WebAssembly est donc particulièrement adapté aux systèmes de plugins, car vous pouvez exécuter en toute sécurité, au sein de votre application, du code fourni par des membres de la communauté ou des clients. Tout cela est rendu possible par l’excellent modèle de sécurité de WebAssembly.

WebAssembly est efficace

WebAssembly a fait une entrée remarquée dans l’informatique sans serveur. Comparés aux conteneurs, les modules Wasm sont minuscules : la plupart ne pèsent que quelques kilo-octets ou quelques mégaoctets, tandis que les conteneurs peuvent facilement atteindre plusieurs centaines de mégaoctets, voire plusieurs gigaoctets. Au-delà de la seule question de l’espace de stockage, Wasm résout également le fameux problème du « démarrage à froid » : le code Wasm peut commencer à s’exécuter en quelques microsecondes et n’a donc pas besoin de rester actif pour pouvoir répondre rapidement aux requêtes. Il est possible de lancer une instance Wasm à la réception d’une requête avec un impact minime sur la latence. Les systèmes basés sur WebAssembly peuvent ainsi réduire leurs ressources jusqu’à zéro en l’absence de trafic, une bénédiction à la fois pour la planète et pour votre portefeuille.

WebAssembly est composable

À mon avis, le véritable changement de paradigme réside dans le modèle de composants WebAssembly. Il transformera radicalement la manière dont les développeurs conçoivent et assemblent les logiciels grâce à ses caractéristiques suivantes :

  1. Accès inter-écosystèmes : Vous souhaitez utiliser des bibliothèques de cryptographie en Go, un sérialiseur JSON en Rust et des utilitaires de calcul intensif en Python ? Aucun problème. Grâce au modèle de composants, vous pouvez sélectionner des logiciels issus de presque n’importe quel écosystème de langage et les assembler comme s’il s’agissait de bibliothèques natives toutes écrites dans le même langage.
  2. Flexibilité du développement : Les différentes équipes d’une organisation peuvent choisir l’outil le mieux adapté à leurs besoins. Elles peuvent sélectionner les langages de programmation et les piles logicielles qui correspondent à leur expertise et aux exigences de leur projet, avec l’assurance que leurs livrables s’intégreront parfaitement à l’application complète.

En termes simples, les développeurs peuvent créer des composants logiciels dans n’importe quel langage capable de produire du code WebAssembly, puis les assembler facilement au sein d’une seule application.

WebAssembly est une technologie qui mérite votre attention. Que vous soyez un développeur souhaitant ajouter de nouvelles fonctionnalités à votre application ou une entreprise cherchant à concevoir des solutions évolutives et rentables, Wasm pourrait vous convenir. À mesure que cette technologie gagne en maturité et bénéficie d’un soutien croissant, WebAssembly est en passe de redéfinir notre façon de penser le développement logiciel et d’interagir avec lui. Gardez un œil sur WebAssembly, car ce n’est pas seulement l’avenir : cette technologie est déjà là et transforme les logiciels tels que nous les connaissons.

Vous souhaitez en savoir plus sur WebAssembly ? Découvrez le podcast WebAssembly Unleashed de F5 sur YouTube, Spotify ou Apple Podcast.

Partager

Articles de blog associés

Pourquoi devriez-vous vous intéresser à WebAssembly ?
Écosystème F5 | 02/10/2024

Pourquoi devriez-vous vous intéresser à WebAssembly ?

WebAssembly (Wasm) est un jeu d’instructions binaires portable, rapide et sécurisé, qui permet d’exécuter des applications hautes performances sur n’importe quelle plateforme.

Trois choses à savoir sur les applications d’IA
Écosystème F5 | 20/06/2024

Trois choses à savoir sur les applications d’IA

Les applications d’IA sont des applications modernes, mais elles présentent certaines particularités. Découvrez les points essentiels à connaître sur les applications basées sur l’IA.

État des lieux de la stratégie applicative 2022 : il est temps de moderniser les opérations
Écosystème F5 | 12/04/2022

État des lieux de la stratégie applicative 2022 : il est temps de moderniser les opérations

Il est devenu évident que, pour maintenir la dynamique de leur transformation numérique, les organisations doivent recentrer leurs efforts sur les fonctions métier. Si les expériences destinées aux clients restent prioritaires, il est également indispensable de permettre la numérisation de fonctions telles que les services juridiques, les ressources humaines et la finance. Les DSI prennent donc les commandes, tandis que la transformation numérique passe de la modernisation des applications à celle des opérations.

Clouds multiples ou multicloud : faciliter la transition
Écosystème F5 | 07/10/2021

Clouds multiples ou multicloud : faciliter la transition

La gestion et la sécurisation des charges de travail deviennent complexes à mesure que les entreprises adoptent une stratégie de cloud connecté. Découvrez comment F5 répond au besoin d’une nouvelle approche de la mise en réseau multicloud.

L’expérience client dépend de la visibilité
Écosystème F5 | 25/11/2019

L’expérience client dépend de la visibilité

Une enquête menée par Dimensional Research auprès de plus de 3 000 utilisateurs d’applications mobiles a confirmé ce que beaucoup d’entre nous pensent des attentes actuelles des clients.

Transformation numérique et explosion du portefeuille d’applications
Écosystème F5 | 15/04/2019

Transformation numérique et explosion du portefeuille d’applications

La transformation numérique stimule la croissance des portefeuilles d’applications et modifie la manière dont celles-ci sont développées, déployées, intégrées et, en définitive, utilisées.