Cloudflare ha culminado uno de sus mayores rediseños de software desde su lanzamiento: FL2, una nueva implementación del “cerebro” que orquesta seguridad y rendimiento en su red global. Construido en Rust sobre el framework interno Oxy, FL2 sustituye progresivamente al histórico FL1 (basado en NGINX/OpenResty/LuaJIT) y ya está entregando recortes de latencia de 10 ms en la mediana y un salto de rendimiento del 25 % en pruebas CDN de terceros. El rediseño, además, reduce a menos de la mitad CPU y memoria consumidas, endurece la seguridad por diseño y acelera el ciclo de lanzamiento de nuevos productos.
La mejora no se queda en laboratorio. En su actualización de desempeño de red, la compañía afirma ser la más rápida en el 48 % de las 1.000 redes “eyeball” (operadores con más usuarios) entre noviembre de 2024 y marzo de 2025, frente al 44 % del periodo anterior. El avance se nota especialmente en África —impulsado por despliegues Edge Partner en última milla—, y en mercados como Japón, donde la distancia con el segundo proveedor ya es significativa. En Canadá, la “foto finish” muestra diferencias de milisegundos entre los tres primeros, con Cloudflare a la cabeza.
Del monolito flexible… al monolito costoso
Durante 15 años, FL1 aglutinó la lógica de seguridad y aceleración: WAF, DDoS, reglas, roteo a Workers o R2… Ese motor NGINX/OpenResty + LuaJIT permitió iterar rápido, pero el paso del tiempo cobró su factura: errores sutiles, acoplamientos complejos entre productos y latencia incremental al añadir funcionalidades. Cada innovación requería revisar efectos colaterales en el resto del sistema.
La solución fue empezar casi de cero: FL2.
FL2 en Rust sobre Oxy: módulos, contratos y reinicios “suaves”
Lenguaje y plataforma. Cloudflare eligió Rust por su seguridad de memoria y rendimiento, apoyándose en Oxy, su marco de proxies de alto rendimiento (ya utilizado en servicios como Zero Trust Gateway o iCloud Private Relay). El tándem Rust+Oxy elimina clases enteras de fallos (carreras, use-after-free) y aporta “plomería” estándar: monitorización, recargas en caliente, carga dinámica de configuración y extensibilidad de L3 a L7.
Arquitectura modular estricta. FL2 separa la lógica de producto en módulos con fases bien definidas, entradas y salidas tipadas y prohibición de E/S directa dentro del módulo. Los contratos se validan en compilación: si un módulo necesita la salida de otro, debe declararlo explícitamente. Resultado: menos sorpresas, menos trabajo innecesario y menos latencia.
Filtros que evitan trabajo. Cada módulo puede incluir filtros para decidir si corre o no en una petición concreta. Así, no se ejecuta “todo para todos”: el sistema selecciona solo lo necesario, eliminando el coste incremental por producto que lastraba a FL1.
Reinicios sin cortes. Oxy aporta graceful restarts a nivel de proceso, coordinados por systemd socket activation: los sockets sobreviven al reinicio y aceptan conexiones hasta que la nueva versión está lista. Para orquestar despliegues, Cloudflare ha sustituido librerías Go por su shellflip en Rust: valida configuración, lanza instancias y solo apaga la antigua si la nueva está sana. En la práctica, las websockets y sesiones en curso no se caen durante una actualización.
Migrar sin parar la máquina: FL2 “dentro” de FL1, pruebas masivas y fallbacks
- Módulos Rust en la vieja casa. Para no mantener dos implementaciones por producto, Cloudflare integró una capa que permite ejecutar módulos Rust dentro de FL1 (OpenResty). Así los equipos migraron lógica sin perder velocidad de entrega.
- Pruebas end-to-end a escala. El sistema interno Flamingo dispara miles de pruebas concurrentes contra preproducción y producción, comparando FL1 vs FL2, y automatiza rollouts por etapas con límites de uso de CPU/Mem y SLIs.
- Válvula de seguridad. Si FL2 recibe algo que aún no sabe manejar, cede el flujo a FL1 (fallback a nivel de red). Esto permite medir equivalencia funcional y bajar el riesgo mientras sube el porcentaje de tráfico en FL2.
Hoy, la mayoría de clientes ya pasan por FL2. Falta un tramo: el servicio de terminación HTTP/TLS, aún basado en NGINX, va por la mitad de su reescritura en Rust. Objetivo: apagar FL1 a inicios de 2026.
Números que importan: latencia, CPU, memoria y time-to-market
- –10 ms en la mediana de respuesta, +25 % en pruebas CDN de terceros.
- ½ CPU y menos de ½ memoria respecto a FL1, liberando recursos para más funciones de cliente.
- Entrega en 48 h de cambios en FL2 que antes exigían semanas en FL1, gracias a modularidad, pruebas y despliegues automatizados.
En terreno, el mapa de velocidad también cambió:
- África: el liderazgo crece con Edge Partner deployments (puntos en última milla que evitan desvíos a hubs lejanos como Sudáfrica o Londres).
- Japón: Cloudflare se separa del #2 por >5 % en p95 TCP connect al aumentar ubicaciones y peering local.
- Canadá: carrera cerrada; diferencias de ~1 ms separan a los tres primeros, con Cloudflare en cabeza.
Seguridad por diseño (y por proceso)
FL2 combina garantías de Rust (tipado estricto, borrowing, chequeos en compilación) con normas internas: linting severo, reviews, testing y una política inequívoca de investigar cualquier crash inexplicado. Menos crashes “nuevos” —principalmente debidos a hardware— dejan más tiempo para investigación profunda cuando ocurre algo anómalo.
Qué viene después
- Completar la migración HTTP/TLS en Rust y apagar FL1 a comienzos de 2026.
- Optimizar conexiones entre módulos, ampliar soporte a tráfico no HTTP (RPC, streams), y seguir reordenando el plano de datos para rascar microsegundos.
- Más peering/ubicaciones allí donde los datos RUM indiquen margen de mejora: cuando una región quede por detrás, invertir, medir, repetir.
Por qué importa (más allá de Cloudflare)
- Para ecommerce y media, 10 ms menos en la mediana y menos variabilidad en p95/p99 mejoran conversión y experiencia.
- Para apps en tiempo real (videollamadas, juego, trading), los reinicios sin cortes y la reducción de colas interna evitan tirones.
- Para entornos regulados, el modelo modular con contratos acota el riesgo de cambios y acelera validaciones.
- Para equipos dev, la plataforma recorta la “latencia organizativa”: más entregas pequeñas, menos regresiones transversales.
Idea fuerza
FL2 no es solo “Rust por Rust”: es arquitectura, procesos y operación al servicio de latencia, seguridad y velocidad de entrega. La combinación de un “cerebro” modular, proxies en Rust con reinicios invisibles y una red que se mide a sí misma para decidir dónde invertir explica el salto: 25 % más rápido medido por terceros, –10 ms en la mediana, y liderazgo en casi la mitad de las redes más relevantes del planeta. El resto del plan es sencillo de decir y difícil de ejecutar: donde no somos #1, arreglarlo… y contarlo.
vía: blog.cloudflare