Inicio / Blog / Matriz de decisión de runtime
Arquitectura cloud

Cloudflare Workers, servidores Node y FastAPI: cómo elegir

Elegir un runtime backend no es una competición de popularidad entre lenguajes. Un endpoint en el edge, un servicio Node de larga duración y una API Python sirven HTTP, pero implican distintas responsabilidades de despliegue, ecosistemas, recursos y modos de fallo. La pregunta útil es qué restricciones tiene realmente tu carga.

Empieza por la forma de la petición y del trabajo

Elige según la carga y los requisitos operativos
¿Petición global y corta?Valora ejecución en el edge, caché cercana y estado externo.
¿Servicio persistente o ecosistema Node?Usa procesos gestionados o propios con escalado explícito.
¿Datos y ML en Python?Despliega FastAPI en contenedor o cómputo gestionado.
DimensiónCloudflare WorkersServidor Node.jsServicio FastAPI
Modelo de ejecuciónHandlers de peticiones y eventos en una plataforma basada en isolatesProceso JavaScript persistente, a menudo en contenedorAplicación ASGI atendida por servidor ASGI, normalmente en contenedor
Ajuste principalEdge, APIs ligeras, webhooks y lógica junto a la cachéAPIs persistentes, paquetes Node, WebSockets y control de procesosAPIs Python, datos, automatización y bibliotecas del ecosistema
OperaciónLa plataforma gestiona gran parte de la flota; tú cuidas bindings, límites y datosConfigurar salud, réplicas, reinicios, runtime y capacidadConfigurar workers, arranque, memoria, HTTPS y capacidad
VigilarCPU, memoria, compatibilidad y límites de plataformaBloqueos del event loop, memoria y topologíaNúmero de procesos, trabajo bloqueante y límites async
Estado y tareas largasAlmacenamiento, colas o coordinación explícitosUsar almacenes y workers externos; la memoria no es durableUsar almacenes y colas externos; el proceso API no es una cola de jobs

Workers: acerca las peticiones a las personas

Un runtime edge reduce distancia para autorización, enrutamiento, caché y transformaciones pequeñas. Resulta atractivo si el código es sobre todo I/O de red y puede usar los servicios disponibles. No hace compatible cualquier dependencia ni elimina límites. Comprueba CPU, memoria, tamaño del cuerpo y subrequests vigentes frente a la carga real; el cómputo pesado y los trabajos largos requieren sistemas preparados.

Node: controla el ciclo de vida de un servicio convencional

Un servidor Node ofrece procesos familiares y un ecosistema amplio. Encaja si la aplicación necesita conexiones persistentes, dependencias nativas, trabajos largos o un entorno controlado. Esa libertad implica configurar health checks, supervisión, despliegues, capacidad, logs y protección frente a callbacks que bloqueen el event loop. La sintaxis asíncrona no hace gratis el trabajo síncrono o intensivo en CPU.

FastAPI: convierte Python en un runtime de API

FastAPI aporta tipado y validación de Python sobre una aplicación ASGI. Es natural cuando la API está cerca de código de datos, automatización o machine learning. El despliegue aún necesita servidor ASGI, terminación HTTPS, reinicios, réplicas, memoria y dependencias. La inferencia costosa quizá requiera workers separados o servicio con acelerador, en vez de ocupar procesos de petición.

Compara el coste del sistema, no solo del hosting

Incluye tiempo de ingeniería, inicialización, observabilidad, dependencia del proveedor, conexiones salientes, proximidad de base de datos, rollback y capas adicionales de cola. Un runtime barato puede salir caro si cada petición cruza regiones o si la incompatibilidad obliga a reescribir bibliotecas. Mide latencias p50/p95, consumo y carga operativa con tráfico representativo antes de migrar.

Un límite híbrido puede tener sentido: enrutamiento y autenticación en el edge; dominio o cómputo en un servicio regional Node o FastAPI. Mantén contratos explícitos, propaga trazas y acota reintentos. No dividas una aplicación pequeña en tres runtimes solo porque estén disponibles.

Regla de decisión

Elige Workers si la cercanía al edge y la ejecución corta orientada a eventos ofrecen ventajas medibles. Elige Node si el servicio persistente y su ecosistema encajan. Elige FastAPI si las bibliotecas Python y la experiencia del equipo simplifican el dominio. Revisa la decisión cuando cambien las mediciones, no cuando otro framework sea tendencia.

También puedes leer sobre observabilidad de costes cloud y arquitectura con colas para equipos pequeños.

En resumen

No son etiquetas de hosting intercambiables. Compara ejecución, límites, bibliotecas, estado y responsabilidades operativas con la carga real. El runtime adecuado tiene restricciones que tu arquitectura puede entender y gestionar.

Referencias