La nueva infraestructura perimetral de Yeap CDN: por qué elegimos Rust
Reemplazamos nuestra infraestructura perimetral de CDN por una versión propia desarrollada en Rust sobre Pingora. Esto supone para su sitio conexiones más rápidas, configuración que se aplica en segundos y mayor aislamiento y seguridad.
Durante el último año, migramos la infraestructura perimetral de Yeap CDN de OpenResty (nginx más Lua) a una implementación propia escrita en Rust sobre Pingora, el framework de proxy que Cloudflare publicó como código abierto. La nueva infraestructura ya gestiona la mayor parte de nuestro tráfico, y los nodos restantes se están migrando según lo previsto.
Este artículo deja de lado la mayoría de los detalles internos y responde a una pregunta: ¿qué supone la nueva infraestructura perimetral para su sitio web?
Por qué hicimos el cambio
La implementación anterior combinaba configuración de nginx, scripts de Lua, módulos en C y un motor de JavaScript integrado. Era rápida, pero cada función por dominio exigía cambios simultáneos en varias capas, y los errores de configuración a menudo pasaban inadvertidos en lugar de generar un error. A medida que aumentaban las funciones, necesitábamos una base más unificada y fiable.
Elegimos Rust por tres razones:
- Seguridad de memoria. El propio lenguaje impide los desbordamientos de búfer y los punteros colgantes, las causas más comunes de fallos y vulnerabilidades en código C.
- Configuración con tipado estricto. La configuración de cada dominio se valida cuando llega a un nodo. Los campos mal escritos o con un tipo incorrecto se rechazan de forma explícita en lugar de ignorarse.
- Facilidad de prueba. Toda la implementación perimetral es un programa escrito en un solo lenguaje, cubierto por más de mil pruebas automatizadas que se ejecutan antes de cada lanzamiento.
Qué notará
Conexiones más rápidas
La nueva infraestructura admite HTTP/3 (QUIC), que funciona mejor en redes móviles y enlaces con pérdida de paquetes. Los tickets de sesión TLS se conservan tras reiniciar los nodos, de modo que los visitantes recurrentes pueden omitir la negociación completa y ver la primera pantalla antes.
Configuración que se aplica en segundos
Cuando cambia las reglas de caché, de firewall o de página en la consola, la nueva configuración llega a todos los nodos perimetrales en segundos y se sustituye de forma atómica. Las solicitudes en curso terminan con la configuración anterior, las nuevas usan la actualizada y ningún nodo se reinicia ni interrumpe conexiones.
Control preciso de la caché
Las claves de caché pueden normalizar y ordenar los parámetros de consulta, así como aplicarles listas de permitidos o de bloqueados. Una purga puede eliminar una sola variante con parámetros específicos o todas las variantes de una ruta a la vez.
Seguridad en el perímetro
Los conjuntos de reglas WAF, los límites de solicitudes, la identificación de bots mediante huellas y las reglas geográficas y de IP se ejecutan en el perímetro, por lo que las solicitudes maliciosas se detienen antes de llegar a su servidor de origen. Cada bloqueo se registra junto con la regla que lo activó.
Funciones perimetrales con aislamiento real
Los Workers perimetrales se ejecutan en entornos aislados de WebAssembly independientes, cada ejecución con su propia memoria y un límite estricto de tiempo de CPU. Un script defectuoso de un cliente no puede afectar a los demás ni dejar fuera de servicio un nodo.
¿Qué tan rápido es?
Con tráfico de navegador en condiciones reales (TLS, HTTP/2 y compresión), la nueva infraestructura ofrece mayor capacidad de procesamiento y menor latencia en los percentiles altos que nginx con una configuración equivalente. La razón principal es que almacena directamente el contenido comprimido en caché, por lo que un acierto de caché no requiere volver a comprimirlo.
Para lograrlo, no tratamos Pingora como una caja negra. Lo personalizamos a fondo y optimizamos la ruta de ejecución de los aciertos de caché, la más utilizada en cualquier CDN.
Una migración transparente
Las implementaciones anterior y nueva comparten el mismo plano de control y la misma configuración, y el formato de los registros de acceso coincide campo por campo. No necesita cambiar nada: sus dominios, certificados y reglas de caché y de firewall se transfieren automáticamente.
Próximos pasos
La nueva infraestructura perimetral permite hacer muchas cosas que antes eran difíciles de desarrollar. En próximos artículos explicaremos cómo implementamos HTTP/3 y la reanudación de sesiones TLS, cómo funciona la purga de caché hasta el nivel de variantes individuales y cómo nuestro DNS asigna servidores de nombres a su zona.
Si aún no lo ha probado, añada un sitio en la consola. El plan gratuito de CDN ya funciona en la nueva infraestructura perimetral.
Cree en Yeap Cloud
Planes gratuitos de DNS y CDN para cada cuenta nueva.
Seguir leyendo
Primeros pasos con Yeap LLM API mediante el SDK de OpenAI
Yeap LLM API es compatible con OpenAI: conserve su SDK y apunte base_url a https://llm.yeap.cloud/v1. Incluye creación de claves, ejemplos en Python y Node.js, streaming, embeddings y límites de cuota, modelos e IP por clave.
Reanudación de sesiones TLS y HTTP/3 en el perímetro
La reanudación de sesiones permite a los visitantes recurrentes omitir la negociación TLS completa. Por qué las claves de tickets deben conservarse tras los reinicios, cómo las rotamos de forma segura y cómo HTTP/3 reutiliza el mismo flujo de procesamiento de solicitudes en el perímetro.
Cómo elige nuestro DNS los servidores de nombres de su zona
Cada zona alojada en Yeap DNS recibe un par de servidores de nombres. Ese par debe ser estable, estar distribuido y poder responder realmente. Cómo funciona nuestra asignación basada en hash y por qué «el estado es intención; el latido, un hecho».