Cloudflare va canviar a Pingora, el seu propi proxy escrit a Rust

Cloudflare migra de NGINX a Pingora

Pingora, és un nou proxy HTTP creat per cloudflare usant Rust

Cloudflare va donar a conèixer fa poc que està migrant la vostra xarxa de lliurament de contingut per utilitzar el servidor intermediari «Pingora», el qual es destaca per estar escrit a Rust. El nou proxy va reemplaçar la configuració basada al servidor NGINX amb seqüències de comandes Lua i maneja més d'un bilió de sol·licituds per dia.

S'observa que la transició al proxy especialitzat Pingora va permetre no només implementar noves funcions i augmentar la seguretat a causa del treball segur amb la memòria, sinó que també va conduir a un augment significatiu en el rendiment i l'estalvi de recursos.

Una solució basada en Pingora no requereix l'ús de Lua i utilitza una arquitectura optimitzada per a la càrrega de Cloudflare, per la qual cosa consumeix un 70% menys de recursos de CPU i un 67% menys de memòria mentre processa la mateixa quantitat de trànsit.

Durant molt de temps, un sistema de servidor intermediari de trànsit entre usuaris i servidors finals basat en scripts NGINX i Lua satisfeia les necessitats de Cloudflare, però a mesura que la xarxa creixia i la seva complexitat augmentava, una solució universal no era suficient, tant en termes de rendiment com de limitacions en l'extensibilitat i la implementació de noves oportunitats per als clients.

En particular, hi va haver dificultats per afegir funcionalitat més enllà duna simple porta denllaç i un equilibrador de càrrega. Per exemple, en cas que el servidor no pogués processar una sol·licitud, calia redirigir la sol·licitud a un altre servidor, proporcionant-li un conjunt diferent de capçaleres HTTP.

En comptes d'una arquitectura amb sol·licituds dividides en processos de treball separats (treballadors), Pingora utilitza un model de subprocessos múltiples, que als escenaris d'ús de Cloudflare (alta concentració de trànsit de diferents llocs amb un gran canvi estadístic) va mostrar una distribució més eficient de recursos entre nuclis de CPU.

En particular, vincular sol·licituds desequilibrades a processos a nginx va conduir a una càrrega desequilibrada als nuclis de la CPU, com a resultat de les quals les sol·licituds que consumeixen molts recursos i el bloqueig d'E/S van alentir el processament d'altres sol·licituds.

A més, vincular el grup de connexions als processos del controlador no permetia reutilitzar les connexions ja establertes d'altres processos del controlador, cosa que redueix l'eficiència quan hi ha una gran quantitat de processos del controlador.

La introducció de Pingora va permetre reduir 160 vegades el nombre d'operacions d'establiment de noves connexions i augmentar la proporció de sol·licituds reutilitzades del 87,1% al 99,92%. A més de reduir les reconnexions i un ús més eficient dels nuclis de la CPU, la millora del rendiment del nou proxy es va deure principalment a l'eliminació dels lents controladors de Lua que es fan servir amb nginx.

Es va triar el llenguatge Rust perquè permet un alt rendiment combinat amb la disponibilitat de ferramentes segures per a la memòria. S'esmenta que malgrat l'alta qualificació dels enginyers de Cloudflare i la revisió de codi, els programes escrits en llenguatge C no van poder evitar errors que deriven en problemes de memòria (per exemple, una vulnerabilitat a l'analitzador HTML).

Pel que fa al nou codi, parlem de casos d'anàlisi de bloquejos a Pingora, que van resultar ser causats no per problemes en l'aplicació, sinó per un error al nucli de Linux i falles de maquinari.

Addicionalment, es pot assenyalar que Linus Torvalds va comentar sobre la inclusió de suport per al llenguatge Rust al nucli de Linux, expressat a la conferència Open-Source Summit Europe que es porta a terme aquests dies. El nucli 6.0 no incloïa pedaços per desenvolupar controladors de dispositius en el llenguatge Rust, però segons Linus, és probable que s'acceptin al nucli 6.1, no aprofitarà la integració.

Com a motiu per afegir suport per a Rust, a més d'un impacte positiu en la seguretat, Linus també aprofita l'oportunitat per augmentar l'interès a treballar al nucli dels nous participants, cosa important en el context de l'envelliment dels veterans.

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls a el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.