Cloudflare liberó el código fuente de Pingora un framework escrito en Rust para crear servicios de red
Hace pocos días Cloudflare dio a conocer, mediante una publicación de blog, su decisión de liberar el código fuente de su framework «Pingora» , diseñado específicamente para desarrollar servicios de red seguros y de alto rendimiento, así como sistemas de red programables en el lenguaje Rust.
Este framework proporciona paquetes Rust listos para usar que facilitan la creación de un proxy HTTP, el trabajo con protocolos de red, el análisis de encabezados HTTP, la contabilización y limitación del tráfico, el balanceo de carga, la gestión de la tabla hash distribuida Ketama, el mantenimiento de un caché en RAM y el procesamiento asíncrono de tiempos de espera. Además del soporte para HTTP, Pingora permite la creación de servicios utilizando sus propios protocolos o UDP/TCP.
¿Qué es Pingora?
Pingora es framework multiproceso asíncrono de Rust diseñado para construir servicios de proxy HTTP de manera segura y eficiente. Desde su lanzamiento, Pingora ha sido ampliamente probado y utilizado en sistemas de alta carga, como un proxy utilizado en la red de entrega de contenido de Cloudflare, procesando más de 40 millones de solicitudes por segundo durante más de un año.
Cloudflare menciona que la seguridad es una prioridad fundamental del proyecto, por lo que se ha elegido el lenguaje Rust para reducir la probabilidad de errores relacionados con la memoria. Además, se ha prestado atención a la eficiencia, el rendimiento y la extensibilidad, permitiendo la integración de filtros y controladores de devolución de llamadas para controlar diversas etapas del procesamiento de solicitudes, así como modificar, redirigir, bloquear y registrar solicitudes y respuestas.
Pingora es una biblioteca y un conjunto de herramientas, no un binario ejecutable. En otras palabras, Pingora es el motor que impulsa un automóvil, no el automóvil en sí. Aunque Pingora está listo para producción para uso industrial, entendemos que mucha gente quiere un servicio web listo para usar, con baterías incluidas y con opciones de configuración sin código o con poco código. Crear esa aplicación sobre Pingora será el foco de nuestra colaboración con ISRG para ampliar el alcance de Pingora. Estén atentos a futuros anuncios sobre ese proyecto.
Entre los beneficios clave de Pingora, se destacan los siguientes:
- Seguridad de la memoria: Pingora ofrece una alternativa más segura para la memoria en comparación con servicios escritos en C/C++. Esto se traduce en una menor probabilidad de errores de codificación que puedan comprometer la seguridad del sistema.
- Rendimiento optimizado: Gracias a su arquitectura multiproceso, Pingora es rápido y eficiente, ahorrando recursos de CPU y memoria. Esto es especialmente beneficioso para cargas de trabajo sensibles al rendimiento y al costo.
- Personalización avanzada: Las API proporcionadas por Pingora son altamente programables, lo que permite una amplia personalización para crear puertas de enlace o equilibradores de carga personalizados y avanzados.
Pingora ofrece varias características clave, como procesamiento multiproceso de solicitudes en modo asíncrono, soporte para HTTP/1 y HTTP/2 (con planes para HTTP/3), proxy gRPC y WebSocket, balanceadores de carga conectables, cambio de configuración sin reiniciar, actualización de código sin interrumpir conexiones, estrategias de conmutación de carga en caso de fallo (failover), integración con sistemas de monitoreo y registro (como Syslog, Prometheus, Sentry, OpenTelemetry), y soporte para cifrado TLS mediante las bibliotecas OpenSSL y BoringSSL C.
Características destacadas de Pingora
- Soporte para proxy HTTP/1 y HTTP/2, gRPC y websocket.
- Estrategias de conmutación por error y equilibrio de carga personalizables.
- Integración con bibliotecas OpenSSL y BoringSSL para cumplimiento y seguridad.
- Filtros y devoluciones de llamadas para personalización y procesamiento de solicitudes.
- Reinicios elegantes sin tiempo de inactividad para actualizaciones sin interrupciones.
- Integración con herramientas de observabilidad como Syslog, Prometheus, Sentry, OpenTelemetry, entre otras.
Finalmente, Cloudflare menciona que está colaborando con el proyecto Prossimo del Internet Security Research Group (ISRG) para avanzar en la adopción de Pingora en la infraestructura crítica de Internet, contribuyendo así a una Internet más segura y confiable para todos.
Si estás interesado en conocer más al respecto, debes saber que el código está escrito en Rust y publicado bajo la licencia Apache 2.0, ademas puedes consultar la publicación de Cloudflare en el siguiente enlace.