Qué es Web Assembly (WASM) y para qué sirve?

¿Has oído hablar de WebAssembly (Wasm)? En simple: Es una nueva forma de dónde y cómo se procesa el código fuente, moviendo la carga desde cloud instances (o servidores, etc) hacia el navegador del usuario final a través de "micro sandboxes" que compilarán la app.

Imagina que Wasm es un actor que puede comunicarse con los navegadores actuales nativamente. Una suerte de traductor que permite que ciertos lenguajes de programación -como C/C++, C# y Rust-, hablen el "idioma de la web". La parte interesante es que lo hace de manera muy eficiente, corriendo tan rápido como lo permita el navegador.

Además, Wasm es un agente muy cuidadoso. Cuando está en acción, se asegura de que no mete la pata ni causa conflictos con el navegador. Se mantiene en su propio espacio, como si estuviera en su propia burbuja, teóricamente aislado del resto del sistema (sandbox).

¿Y qué tiene que ver esto con el mundo "Cloud Native"? Permite que aplicaciones en la nube deleguen costos (tiempo, recursos, tráfico... si, también billing) contribuyendo a aplicaciones más eficientes, seguras y fáciles de manejar tanto a usuarios como a todos nosotros que sufrimos con los pipelines, deployments y blablabla.

Hablemos de eficiencia. ¿Wasm un Formula 1? Bueno, eso es lo que Wasm hace. Convierte los programas en un formato especial que puede ser ejecutado directamente por la máquina, sin dar rodeos innecesarios.

En cuanto a seguridad, Wasm es como alguien que se siente más cómodo en su propia casa. No sale de su zona y no anda husmeando donde no debe. Eso significa que no se mete con el sistema operativo ni causa problemas en el navegador. Tranquilidad total.

Y en términos de escalabilidad, Wasm es como esa prenda versátil que puedes usar en cualquier ocasión. Funciona en cualquier lugar que acepte WebAssembly. ¿Necesitas que tu aplicación crezca? Wasm puede adaptarse al cambio.

Por último, aquí tienes ejemplos concretos de cómo Wasm se usa en aplicaciones Cloud Native:

  • Microservicios: Imagina microservicios como pequeños ayudantes que hacen tareas específicas. Wasm les da un entrenamiento especial para que sean eficientes y seguros en el mundo en la nube.
  • Micro front-ends: Son como capítulos de un libro, pero para aplicaciones. Wasm los hace portátiles para que funcionen en cualquier navegador. Así de sencillo.
  • Inteligencia Artificial y Machine Learning: ¿Recuerdas las películas donde las máquinas parecen pensar? Wasm permite que los modelos de aprendizaje automático hagan su magia en la nube.

En resumen, Wasm es como un vistazo al futuro de las aplicaciones en la nube. Pero atención...

Riesgos y amenazas de Wasm

El último riesgo para WebAssembly que me gustaría señalar, me preocupa y asusta porque lo he visto ocurrir con demasiada frecuencia. Me asusta porque el ego, las malas prácticas, el "no tocar por que no", el secretismo y el desprecio por los demás pueden llevar a esto. Y me asusta porque el pensamiento vieja escuela acerca de "capturar un mercado" (hola Microsoft), a menudo resulta en seguir un curso de acción que resulta en....

Fragmentación.

Esto ocurre cuando una tecnología central es cooptada por muchas partes, cada una de las cuales intenta hacer que su implementación sea incompatible con las demás. A veces, la incompatibilidad se hace "en nombre de la velocidad" o el cumplimiento de criterios cortoplacistas. "Necesitábamos salir del estándar para cumplir con la demanda del cliente". Otras veces, surge como una respuesta a los competidores: "Decidimos no compartir el código fuente para poder obtener una ventaja competitiva". Lamentablemente, a veces se debe simplemente a la ignorancia y la falta de involucramiento con la comunidad.

Read interesting articles in SREDevOps.org: