Compute: por petición popular, la compatibilidad con JavaScript sin inicios en frío ni mayores riesgos de seguridad
Hasta ahora, los desarrolladores no han podido escribir en JavaScript y compilarlo en WebAssembly para Compute. Al haber tantos desarrolladores acostumbrados a usar JavaScript, sabíamos que esto representaba una barrera de entrada a Compute, pero no queríamos ir demasiado rápido ni vernos obligados a elegir entre rendimiento y seguridad.
Si hay que elegir es porque, históricamente, los entornos de JavaScript (como V8) han tenido una latencia de inicio de unos 5 milisegundos como mínimo, sin contar el tiempo que tarda la aplicación en inicializar. Estos inicios «en frío» aumentan el riesgo a la seguridad y añaden latencia.
Sin embargo, hoy me complace anunciar que hemos encontrado una solución a estos problemas y que JavaScript ya está disponible para WebAssembly y Compute. Así, podrás ponerte manos a la obra con Compute más rápidamente que nunca, con un lenguaje que ya conoces y con la velocidad y la seguridad que necesitas en un entorno de compilación sin servidores. A continuación te explicamos cómo hemos llevado el lenguaje informático más popular a Compute.
JavaScript y Compute
Dado que los motores de JavaScript utilizados para crear instancias son grandes bases de código, es fácil que se cuelen errores que permitan a los atacantes burlar la máquina virtual de JavaScript y adentrarse en el sistema. Es por eso que navegadores como Chrome y Firefox hacen todo lo posible por garantizar que los sitios se ejecuten en procesos completamente separados y aconsejan no tratar los espacios aislados en proceso como límites de seguridad.
Para llevar JavaScript a Compute, empezamos centrándonos en la seguridad. Al ejecutar la máquina virtual de JavaScript dentro de un entorno aislado de WebAssembly, podemos ofrecer a los clientes un límite exterior más seguro como línea de defensa adicional. Por cada petición que pasa por nuestra plataforma, la tecnología de aislamiento de Compute crea un entorno aislado y lo destruye en cuestión de microsegundos. Esta tecnología reduce al mínimo toda la superficie de ataque sin perder en capacidad de rendimiento y escalabilidad. Además, mantiene el código totalmente aislado de otras peticiones que pasen por la plataforma. Otras plataformas sin servidores utilizan técnicas para ocultar la latencia y suelen reutilizar instancias entre peticiones, lo que supone un peligro para la seguridad porque aumenta la superficie afectada por los ataques.
También analizamos al detalle el rendimiento, porque la manera en la que lo optimizamos en Compute afecta directamente a la seguridad de la plataforma. Pese a que, históricamente, los entornos de JavaScript han presentado una latencia de inicio apreciable, en Compute JavaScript aprovecha los inicios en frío de cero milisegundos, dándote acceso a más de 65 clústeres de servidores de gran rendimiento y ofreciendo escalabilidad y unos recursos informáticos sin precedentes a tu disposición para ejecutar código. Esto mejora el rendimiento de la aplicación y reduce la superficie de ataque. El modo en que ejecutamos JavaScript (como se describe en el blog de la Bytecode Alliance) nos permite crear una nueva instancia por cada petición tal y como hacemos con otros lenguajes. Esto sería imposible en circunstancias normales por una cuestión de coste y lentitud, ya que habría que crear una instancia e inicializar el JavaScript que la ejecutara cada vez.
Javascript sin servidores en la actualidad
JavaScript está en todas partes. Hoy por hoy, el lenguaje de programación más utilizado por los desarrolladores es JavaScript. Casi todo el mundo que crea una experiencia web tiene de fondo un entorno de desarrollo de JavaScript, y por mucho que esté creciendo la adopción de WebAssembly en navegador, muchas aplicaciones web siguen ejecutándose en JavaScript.
Nos complace poder ofrecer esta compatibilidad de lenguajes en Compute. Para obtener más información y saber cómo empezar, consulta nuestro Developer Hub. Y si aún no usas Compute, regístrate ya y experimenta de primera mano las posibilidades de la informática sin servidores.