Cloudflare agrega servidores HTTP de Node.js a Cloudflare Workers
Cloudflare ha integrado las APIs de cliente y servidor `node:http` en su plataforma Cloudflare Workers, permitiendo a los desarrolladores migrar aplicaciones Node.js, como Express.js y Koa.js, a un entorno sin servidor con latencia reducida y escalamiento automático; a pesar de algunas limitaciones, la comunidad ha recibido positivamente esta actualización que promete acelerar la adopción de Node.js en la nube.

Cloudflare ha realizado una notable actualización al implementar las APIs de cliente y servidor node:http
en su plataforma Cloudflare Workers. Esta nueva funcionalidad permite a los desarrolladores migrar aplicaciones existentes basadas en Node.js a un entorno de computación sin servidor. Con estas APIs HTTP, frameworks populares de Node.js como Express.js y Koa.js pueden operar en Workers, facilitando una transición fluida para los desarrolladores.
Integración Simplificada para Aplicaciones Node.js
Yagiz Nizipli y James M Snell, ingenieros de sistemas principales en Cloudflare, expresaron la importancia de esta incorporación, afirmando que:
"Esta adición significativa trae interfaces HTTP de Node.js conocidas al borde de la red, permitiéndote desplegar aplicaciones existentes de Express.js, Koa, y otras basadas en Node.js a nivel global con cero inicios en frío, escalamiento automático y una latencia significativamente menor para tus usuarios, todo sin la necesidad de reescribir tu base de código".
Para respaldar las APIs de cliente HTTP, Cloudflare ha reimplementado las APIs centrales de node:http
al construir sobre la API fetch()
estándar que Workers utilizan de manera nativa. Esta implementación mantiene la compatibilidad con Node.js sin afectar significativamente el rendimiento. El enfoque de "wrapper" es compatible con métodos HTTP estándar, cabeceras de solicitud y respuesta, cuerpos de solicitud y respuesta, respuestas en streaming y autenticación básica.
Limitaciones de la Implementación
Sin embargo, el enfoque gestionado limita el soporte a un subconjunto de las APIs de Node.js. Entre las limitaciones actuales y las diferencias con un entorno estándar de Node.js, se proporciona la API Agent, pero funciona como una no operación (no-op), además de que no se admiten trailers, early hints y respuestas 1xx. Dado que Workers manejan automáticamente TLS, las opciones específicas de TLS también no son compatibles.
La comunidad ha recibido este nuevo desarrollo de manera positiva, aunque algunos usuarios han comentado que esta función debería haberse implementado antes. Himanshu Kumar compartió su opinión en X:
Lee también
"Esto desbloquea posibilidades emocionantes para Node.js sin servidor. Una transición más fluida significa mayor adopción e innovación más rápida".
Un Entorno Sin Servidor Específico
Dado que Cloudflare Workers operan dentro de un entorno sin servidor, las conexiones TCP directas no están disponibles, y todas las operaciones de red son gestionadas por servicios externos al runtime de Workers, manejando el agrupamiento de conexiones, manteniendo las conexiones activas y administrando las IPs de salida. Nizipli y Snell explican:
"La implementación del lado del servidor es donde las cosas se ponen particularmente interesantes. Dado que los Workers no pueden crear servidores TCP tradicionales que escuchen en puertos específicos, hemos creado un sistema 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. Luego, el desarrollador debe realizar una integración automática utilizando el método httpServerHandler
o una integración manual utilizando el método handleAsNodeRequest
.
Documentación y Manejo de Múltiples Servidores
Según la documentación, al usar el enrutamiento basado en puertos, el número de puerto actúa como una clave de enrutamiento para determinar qué servidor maneja las solicitudes, lo que permite que múltiples servidores coexistan dentro del mismo Worker.
Es importante señalar que Cloudflare no es el único proveedor de servicios en la nube que ofrece soporte para Node.js en su plataforma de computación sin servidor; otros proveedores como AWS Lambda, Google Cloud Run y Azure Functions también ofrecen runtimes de Node.js.
Conclusión
El nuevo soporte para servidores HTTP de Node.js en Cloudflare Workers representa un avance significativo para la comunidad de desarrolladores. A medida que los entornos de computación sin servidor continúan evolucionando, esta incorporación no solo facilitará la migración de aplicaciones existentes, sino que también permitirá acelerar la adopción e innovación dentro del espacio de Node.js.
Para más actualizaciones y noticias sobre tecnología, no dejes de seguir leyendo en Liven.
¿Te gustó esta noticia?
Mantente informado con las últimas noticias de Chile y el mundo.