Ejecutando TypeScript en WebAssembly en la Nube

Rate this content
Bookmark

Construye funciones sin servidor en TypeScript y luego compílalas a WebAssembly (Wasm) para ejecutarlas en la nube. Este es un modelo diferente al diseño original sugerido por Wasm, pero está demostrando ser un concepto poderoso. En esta charla, profundizaremos en el trasfondo de Wasm, luego analizaremos sus aplicaciones más amplias antes de examinar una forma novedosa de construir código TypeScript en un binario Wasm para su ejecución en la nube.

FAQ

WebAssembly es una tecnología que permite compilar diferentes lenguajes de programación a un formato binario neutral para ejecutarlos en un navegador. Fermion Technologies identificó que las características de WebAssembly, como tiempos de inicio rápidos, tamaños de binario pequeños y un excelente modelo de aislamiento de seguridad, son ideales para aplicaciones en la nube.

'Serverless' en Fermion Technologies se refiere a un entorno donde no es necesario configurar servidores de software. Esto implica que las aplicaciones manejan eventos directamente, como solicitudes HTTP, sin necesidad de gestionar servidores, puertos o certificados TLS.

Spin es una herramienta de código abierto y una plataforma que permite desarrollar aplicaciones serverless usando varios lenguajes de programación. Estas aplicaciones se compilan a WebAssembly y se ejecutan en un estilo serverless en la nube, facilitando la creación de aplicaciones potentes con configuración mínima.

Spin admite lenguajes de primer nivel como Rust, Go, Python, JavaScript y TypeScript. También admite varios lenguajes de segundo nivel, expandiendo las opciones para desarrolladores que usan la plataforma.

Para crear una aplicación TypeScript serverless con Spin, primero se utiliza el comando 'spin new' seguido por 'spin build' para compilar la aplicación a WebAssembly. Finalmente, se usa 'spin up' para ejecutar la aplicación localmente y 'spin deploy' para desplegarla en Fermion Cloud o en otros entornos como Kubernetes o Docker.

TypeScript en un entorno serverless con WebAssembly ofrece la ventaja de compilar el código fuente directamente en WebAssembly, eliminando la necesidad de tiempo de invocación del intérprete de JavaScript. Esto optimiza el rendimiento y reduce la latencia al manejar solicitudes en la aplicación.

Matt Butcher
Matt Butcher
10 min
21 Sep, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy discute cómo ejecutar TypeScript en WebAssembly en la nube utilizando el tiempo de ejecución de WebAssembly de Fermion. Fermion proporciona un entorno sin servidor llamado Spin que permite el desarrollo fácil de aplicaciones sin servidor en varios lenguajes. El proceso de creación de una aplicación sin servidor de TypeScript con Spin implica instalar Spin, crear una nueva aplicación utilizando la plantilla HTTP TS y probarla en localhost. Para implementar la aplicación, se utiliza el comando 'spin deploy' y Fermi en la nube se encarga del enrutamiento y hace que la aplicación sea accesible a través de una URL pública.

1. Introducción a WebAssembly y Cloud Runtime

Short description:

Hola, soy Matt Butcher, uno de los fundadores de Fermion Technologies. Hoy vamos a hablar sobre cómo ejecutar TypeScript en WebAssembly en la nube. WebAssembly es una tecnología basada en el navegador que te permite compilar diferentes lenguajes a un formato de tiempo de ejecución neutral. Ofrece tiempos de inicio rápidos, tamaños de binario pequeños y soporte multiplataforma. Extraímos el tiempo de ejecución de WebAssembly del navegador y construimos un tiempo de ejecución en la nube.

Hola, soy Matt Butcher. Soy uno de los fundadores de Fermion Technologies, y hoy vamos a hablar sobre cómo ejecutar TypeScript en WebAssembly en la nube. Así que hay muchos términos que desglosar aquí.

Comencemos rápidamente con WebAssembly. Es posible que estés familiarizado con WebAssembly como una tecnología basada en el navegador. La idea original era construir un tiempo de ejecución en un formato binario en el que se pudieran compilar muchos lenguajes diferentes al mismo formato de tiempo de ejecución neutral y ejecutarlo dentro del navegador, junto con JavaScript. Por ejemplo, en el caso de alguien como Figma, utilizaron WebAssembly para tomar su código C++, compilarlo a WebAssembly y luego interactuar con él desde su JavaScript que se ejecuta en el navegador.

Ahora, en Fermion, analizamos WebAssembly, y vimos que las características del tiempo de ejecución de WebAssembly son perfectas para la nube. Tiene tiempos de inicio muy rápidos, tamaños de binario muy pequeños, el modelo de aislamiento de seguridad es excelente, y por supuesto, admite multiplataforma, arquitectura cruzada y múltiples lenguajes. Así que tomamos el tiempo de ejecución de WebAssembly, lo sacamos del navegador, lo colocamos en la nube, y comenzamos a construir un tiempo de ejecución en la nube.

2. Introducción a Serverless y Spin

Short description:

Fermion es un entorno serverless que te permite prescindir de configurar servidores y manejar código boilerplate. En serverless, el punto de entrada de la aplicación es el controlador de eventos, que recibe una solicitud HTTP, la maneja y devuelve una respuesta. Spin es una herramienta y plataforma de programación de código abierto que te permite crear aplicaciones serverless en varios lenguajes y ejecutarlas en la nube en un estilo serverless. Spin admite lenguajes de primer nivel como Rust, Go, Python, JavaScript y TypeScript, y se enfoca en proporcionar un estilo de desarrollo de programas simple y fácil en el entorno serverless.

Entonces, el segundo término que queremos definir es serverless. Fermion es un entorno serverless. Spin construye aplicaciones serverless, pero serverless en sí es un término que a veces se utiliza de manera poco clara. Quiero dejarlo muy claro a qué me refiero cuando hablo de serverless. ¿Qué es el servidor del que prescindimos? Bueno, para mí, es el servidor de software. Si estás acostumbrado a construir microservicios u otras tecnologías backend, sabes que el primer paso suele ser configurar algún tipo de servidor, algo que iniciará un servidor de sockets, abrirá un puerto, escuchará las solicitudes entrantes y las manejará. Terminas escribiendo todo tipo de código boilerplate como manejo de interrupciones y carga de certificados TLS y todo ese tipo de cosas. Entonces, en serverless, para mí, una aplicación serverless es aquella en la que podemos prescindir de todo eso. Donde el punto de entrada de la aplicación es el controlador de eventos. Hablaremos principalmente sobre HTTP, aunque esto también podría aplicarse igualmente a consumir algo de una cola de PubSub o lidiar con un disparador basado en el tiempo, pero en HTTP, el evento es una solicitud HTTP que llega. Obtienes esa solicitud, manejas la solicitud, devuelves una respuesta HTTP y cierras. Entonces, no hay configuración de un servidor, no hay configuración de certificados TLS, nada de eso. El entorno serverless dice que solo tienes que definir un controlador de eventos que reciba la solicitud y devuelva una respuesta. Así que queríamos tomar WebAssembly, ponerlo en el lado del servidor y construir un marco serverless. Para hacer eso, necesitábamos una herramienta, así que construimos Spin. Spin es una herramienta de programación de código abierto y, en cierto sentido, una plataforma que te permite crear aplicaciones serverless en varios lenguajes, compilarlas a WebAssembly y ejecutarlas en un estilo serverless en la nube. Spin admite como lenguajes de primer nivel a Rust, Go, Python y, por supuesto, JavaScript y TypeScript, aunque también admite varios lenguajes de segundo nivel. Estamos trabajando en todo tipo de herramientas para facilitar cada vez más la construcción de una aplicación potente con almacenamiento de clave-valor, base de datos e incluso inferencia de IA, pero que siga ese entorno de desarrollo simple, de baja configuración y casi sin operaciones y un estilo de desarrollo de programas muy fácil en el entorno serverless. Principalmente, hablaremos de eso.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Utilizando Rust desde Vue con WebAssembly
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilizando Rust desde Vue con WebAssembly
Top Content
Rust es un nuevo lenguaje para escribir código de alto rendimiento, que puede ser compilado a WebAssembly, y ejecutado dentro del navegador. En esta charla se te guiará sobre cómo puedes integrar Rust, dentro de una aplicación Vue, de una manera que es sencilla y fácil. Con ejemplos de cómo interactuar con Rust desde JavaScript, y algunas de las trampas a tener en cuenta.
TypeScript y React: Secretos de un matrimonio feliz
React Advanced Conference 2022React Advanced Conference 2022
21 min
TypeScript y React: Secretos de un matrimonio feliz
Top Content
TypeScript y React son inseparables. ¿Cuál es el secreto de su exitosa unión? Bastante código extrañamente extraño. Aprende por qué useRef siempre se siente extraño, cómo manejar los genéricos en los hooks personalizados y cómo los tipos de unión pueden transformar tus componentes.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
JavaScript en el navegador se ejecuta muchas veces más rápido de lo que lo hacía hace dos décadas. Y eso sucedió porque los proveedores de navegadores pasaron ese tiempo trabajando en intensivas optimizaciones de rendimiento en sus motores JavaScript.Debido a este trabajo de optimización, JavaScript ahora se está ejecutando en muchos lugares además del navegador. Pero todavía hay algunos entornos donde los motores JS no pueden aplicar esas optimizaciones de la manera correcta para hacer las cosas rápidas.Estamos trabajando para resolver esto, comenzando una nueva ola de trabajo de optimización de JavaScript. Estamos mejorando el rendimiento de JavaScript para entornos completamente diferentes, donde se aplican reglas diferentes. Y esto es posible gracias a WebAssembly. En esta charla, explicaré cómo funciona todo esto y qué vendrá a continuación.
Los tipos más útiles de React
React Day Berlin 2023React Day Berlin 2023
21 min
Los tipos más útiles de React
Top Content
No pensamos en React como si tuviera sus propios tipos. Pero los tipos de React son una parte fundamental del marco de trabajo - supervisados por el equipo de React, y coordinados con las principales lanzamientos de React.En esta charla de codificación en vivo, veremos todos los tipos que te has estado perdiendo. ¿Cómo obtienes el tipo de props de un componente? ¿Cómo sabes qué ref toma un componente? ¿Deberías usar React.FC? ¿Y qué pasa con JSX.Element?Te irás con un montón de ideas emocionantes para llevar a tus aplicaciones de React, y esperamos que con una nueva apreciación por las maravillas de React y TypeScript trabajando juntos.
Deja de Escribir tus Rutas
Vue.js London 2023Vue.js London 2023
30 min
Deja de Escribir tus Rutas
Cuanto más trabajas en una aplicación, más complicado se vuelve su enrutamiento y más fácil es cometer un error. "¿Se llamaba la ruta usuarios o usuario?", "¿Tenía un parámetro id o era userId?". Si solo TypeScript pudiera decirte cuáles son los nombres y parámetros posibles. Si solo no tuvieras que escribir una sola ruta más y dejar que un complemento lo haga por ti. En esta charla repasaremos lo que se necesitó para traer rutas automáticamente tipadas para Vue Router.
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
TypeScript Congress 2023TypeScript Congress 2023
31 min
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
Voy a profundizar en los internos de Nuxt para describir cómo hemos construido un marco de trabajo primero-TypeScript que está profundamente integrado con el IDE del usuario y la configuración de comprobación de tipos para ofrecer seguridad de tipo de pila completa de extremo a extremo, sugerencias para diseños, middleware y más, opciones de configuración de tiempo de ejecución tipadas e incluso enrutamiento tipado. Además, destacaré lo que más me emociona hacer en los días venideros y cómo TypeScript hace eso posible no solo para nosotros sino para cualquier autor de bibliotecas.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
React Advanced Conference 2022React Advanced Conference 2022
148 min
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¿Eres un desarrollador de React tratando de obtener los máximos beneficios de TypeScript? Entonces esta es la masterclass para ti.En esta masterclass interactiva, comenzaremos desde lo básico y examinaremos los pros y contras de las diferentes formas en que puedes declarar componentes de React usando TypeScript. Después de eso, pasaremos a conceptos más avanzados donde iremos más allá de la configuración estricta de TypeScript. Aprenderás cuándo usar tipos como any, unknown y never. Exploraremos el uso de predicados de tipo, guardias y comprobación exhaustiva. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapa de tipo nuevo. Y comenzaremos a programar en el sistema de tipos de TypeScript usando tipos condicionales e inferencia de tipos.
Consejos y Trucos Profundos de TypeScript
Node Congress 2024Node Congress 2024
83 min
Consejos y Trucos Profundos de TypeScript
Top Content
Workshop
Josh Goldberg
Josh Goldberg
TypeScript tiene un sistema de tipos poderoso con todo tipo de características sofisticadas para representar estados de JavaScript salvajes y extravagantes. Pero la sintaxis para hacerlo no siempre es sencilla, y los mensajes de error no siempre son precisos al decirte qué está mal. Vamos a profundizar en cómo funcionan muchas de las características más poderosas de TypeScript, qué tipos de problemas del mundo real resuelven, y cómo dominar el sistema de tipos para que puedas escribir código TypeScript verdaderamente excelente.
Construye y Despliega un Backend con Fastify y Platformatic
JSNation 2023JSNation 2023
104 min
Construye y Despliega un Backend con Fastify y Platformatic
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente APIs GraphQL y REST con un esfuerzo mínimo. La mejor parte es que también te permite aprovechar todo el potencial de Node.js y Fastify cuando lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y complementos adicionales. En el masterclass, cubriremos tanto nuestros módulos de código abierto como nuestra oferta en la nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/).
En este masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la nube de Platformatic.
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
TypeScript Congress 2023TypeScript Congress 2023
131 min
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
Workshop
Maurice de Beijer
Maurice de Beijer
En esta masterclass práctica, Maurice te guiará personalmente a través de una serie de ejercicios diseñados para empoderarte con una profunda comprensión de los Componentes de Servidor React y el poder de TypeScript. Descubre cómo optimizar tus aplicaciones, mejorar el rendimiento y desbloquear nuevas posibilidades.
 
Durante la masterclass, realizarás:
- Maximizar la mantenibilidad y escalabilidad del código con prácticas avanzadas de TypeScript
- Desatar los beneficios de rendimiento de los Componentes de Servidor React, superando enfoques tradicionales
- Potenciar tu TypeScript con el poder de los Tipos Mapeados
- Hacer tus tipos TypeScript más seguros con Tipos Opacos
- Explorar el poder de los Tipos de Plantillas Literales al usar Tipos Mapeados
 
Maurice estará virtualmente a tu lado, ofreciendo una guía completa y respondiendo a tus preguntas mientras navegas por cada ejercicio. Al final de la masterclass, habrás dominado los Componentes de Servidor React, armado con un nuevo arsenal de conocimientos de TypeScript para potenciar tus aplicaciones React.
 
No pierdas esta oportunidad de elevar tu experiencia en React a nuevas alturas. Únete a nuestra masterclass y desbloquea el potencial de los Componentes de Servidor React con TypeScript. Tus aplicaciones te lo agradecerán.
Despliegue de aplicaciones React Native en la nube
React Summit 2023React Summit 2023
88 min
Despliegue de aplicaciones React Native en la nube
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo.
Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación.
En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.