Noticias de Tecnología 5-8 minutos

Cloudflare Integra APIs HTTP de Node.js en Cloudflare Workers

Diego Cortés
Diego Cortés
Full Stack Developer & SEO Specialist
Compartir:
Cloudflare Integra APIs HTTP de Node.js en Cloudflare Workers

Cloudflare ha dado un paso importante al implementar las APIs de cliente y servidor node:http en Cloudflare Workers, lo que permite a los desarrolladores migrar aplicaciones existentes de Node.js a esta plataforma de computación sin servidor. Esta integración de estas APIs HTTP permite la ejecución de populares marcos de trabajo de Node.js, como Express.js y Koa.js, en el entorno de Workers.

Innovación en el Edge

Yagiz Nizipli y James M Snell, ingenieros de sistemas principales en Cloudflare, explican que esta incorporación brinda interfaces HTTP familiares de Node.js en el edge. Esto significa que los desarrolladores ahora pueden desplegar aplicaciones existentes de Express.js, Koa y otras aplicaciones de Node.js a nivel mundial con cero tiempos de arranque en frío, escalado automático y una latencia significativamente menor para los usuarios, sin necesidad de reescribir su base de código.

Implementación de APIs HTTP

Para soportar las APIs del cliente HTTP, Cloudflare ha reimplementado las API core node:http, construyéndolas sobre la API fetch() estándar que Workers utiliza de manera nativa. Esto mantiene la compatibilidad con Node.js sin afectar significativamente el rendimiento. Este enfoque incluye soporte para métodos HTTP estándar, encabezados de solicitud y respuesta, cuerpos de solicitud y respuesta, respuestas por streaming y autenticación básica.

Sin embargo, es importante destacar que este enfoque gestionado limita la compatibilidad con un subconjunto de las APIs de Node.js. Entre las limitaciones actuales, se encuentra que la API Agent está disponible, pero funciona como un no-op, y no se admiten trailers, hints tempranos y respuestas 1xx. Además, dado que Workers maneja TLS de manera automática, no se soportan opciones específicas de TLS.

Reacción de la Comunidad

La nueva característica ha recibido comentarios positivos de la comunidad, aunque algunos usuarios han expresado que debería haberse introducido antes. Himanshu Kumar opinó en la plataforma X: "Esto desbloquea emocionantes posibilidades para Node.js sin servidor. Una transición más fluida significa una adopción más amplia y una innovación más rápida."

Conectividad y Gestión de Redes en Workers

Dado que Cloudflare Workers opera en un entorno sin servidor, no se pueden establecer conexiones TCP directas, y todas las operaciones de red son gestionadas por servicios externos al tiempo de ejecución de Workers, lo que incluye la gestión del pooling de conexiones, el mantenimiento de las conexiones activas y la gestión de IPs de salida. Nizipli y Snell señalan: "La implementación en el lado del servidor es donde las cosas se ponen particularmente interesantes. Dado que Workers no pueden crear servidores TCP tradicionales escuchando en puertos específicos, hemos creado un sistema de puente que conecta servidores al estilo de Node.js con el modelo de manejo de solicitudes de Workers."

Cuando un desarrollador crea un servidor HTTP y llama a listen(port), en lugar de abrir un socket TCP, el servidor se registra en una tabla interna dentro del Worker, actuando como un puente entre las ejecuciones de http.createServer y las solicitudes fetch entrantes, utilizando el número de puerto como identificador. El desarrollador, posteriormente, puede optar por una integración automática utilizando el método httpServerHandler o una integración manual mediante el método handleAsNodeRequest.

Enrutamiento Basado en Puertos

Según la documentación, al emplear el enrutamiento basado en puertos, el número de puerto sirve como una clave de enrutamiento para determinar qué servidor manejará cada solicitud, permitiendo que múltiples servidores coexistan en el mismo Worker.

Otras Opciones en el Mercado

Cloudflare no es la única empresa en el sector que ofrece Node.js en su plataforma de computación sin servidor. Otras alternativas como AWS Lambda, Google Cloud Run y Azure Functions también disponen de runtimes para Node.js, lo que amplía las opciones disponibles para los desarrolladores que buscan soluciones de servidor. 

Este avance de Cloudflare promete transformar la forma en que las aplicaciones Node.js son desplegadas y ejecutadas a nivel global, potenciando su rendimiento y facilitando la adopción de servicios sin servidor.

Para más información sobre tecnología y novedades en el mundo digital, te invito a seguir explorando mi blog personal. ¡No te lo pierdas!

Categorías

Page loaded in 35.29 ms