Cloudflare heeft de code van Pingora geopend, een toolkit voor het creƫren van netwerksystemen.

Cloudflare heeft de open source code van het Pingora-framework gepresenteerd, dat is ontworpen voor het ontwikkelen van veilige, hoogpresterende netwerkservices en programmeerbare netwerksystemen in de programmeertaal Rust. Het framework is goed getest en wordt al gebruikt in de werking van systemen met hoge belasting — een proxy die op basis hiervan is gebouwd, werkt al meer dan een jaar binnen het Cloudflare content delivery netwerk in plaats van nginx en verwerkt meer dan 40 miljoen verzoeken per seconde. De code is geschreven in Rust en gepubliceerd onder de Apache 2.0-licentie.

Pingora kan worden gebruikt voor multi-threaded verwerking van verzoeken in asynchrone modus, ondersteunt HTTP/1 en HTTP/2 (met plannen voor HTTP/3), gRPC- en WebSocket-proxificatie, plug-in load balancers, configuratiewijzigingen zonder herstart, code-updates zonder verbroken verbindingen, het bepalen van een failover-strategie bij een storing, en integratie met diverse monitoring- en logging-systemen (Syslog, Prometheus, Sentry, OpenTelemetry). In Pingora is ook TLS-encryptie ondersteund, maar dit is geĆÆmplementeerd als een laag bovenop de C-bibliotheken OpenSSL en BoringSSL.

Er zijn kant-en-klare Rust-pakketten beschikbaar voor het creƫren van HTTP-proxies, werken met netwerkprotocollen, het parseren van HTTP-headers, traffic accounting en -limitering, load balancing, werken met de gedistribueerde hash-tabel Ketama, het onderhouden van cache in het geheugen en asynchrone verwerking van time-outs. Naast HTTP ondersteunt het ook het creƫren van services die hun eigen protocollen of UDP/TCP gebruiken.

Een belangrijke prioriteit van het project is veiligheid — om de kans op geheugen gerelateerde fouten te verminderen, is de programmeertaal Rust gekozen voor de ontwikkeling. Er is ook veel aandacht besteed aan efficiĆ«ntie, prestaties en schaalbaarheid. Bijvoorbeeld, bij het creĆ«ren van proxies en load balancers op basis van Pingora is de mogelijkheid om callback-handlers en filters toe te voegen voorzien, waarmee verschillende stadia van verzoekverwerking kunnen worden beheerd, evenals het veranderen, omleiden, blokkeren en loggen van verzoeken en antwoorden.servers De mogelijkheid om callback-handlers en filters te koppelen is ook voorzien voor proxies en load balancers die op basis van Pingora zijn gebouwd, waarmee het mogelijk is om verschillende stadia van verzoekverwerking te beheren en om verzoeken en antwoorden te wijzigen, om te leiden, te blokkeren en te loggen.

Samen met de ISRG (Internet Security Research Group), de oprichter van het Let’s Encrypt-project en een voorvechter van technologieĆ«n ter verbetering van de internetbeveiliging, wordt de reverse proxy River ontwikkeld op basis van Pingora, bedoeld voor gebruik in kritieke systemen. van de netwerkinfrastructuur. De code van River zal in Rust geschreven worden en verspreid worden onder de Apache 2.0-licentie. De ontwikkeling gaat in het tweede kwartaal van 2024 van start. Momenteel bevindt het project zich in de ontwerpfase en de architectuur wordt vastgesteld. Het project wordt geleid door James Munns van de Rust Embedded Working Group.

Het belangrijkste doel van het River-project is het implementeren van een proxy die in staat is om klantverzoeken naar backend-servers te vertalen, waarbij binnenkomende TLS-verbindingen worden beƫindigd en verzoeken worden gerouteerd, aangepast en gefilterd volgens vastgestelde regels. Een van de kenmerken van River is het multithreading-verzoekverwerkingsmodel, dat een efficiƫnter hergebruik van verbindingen mogelijk maakt in vergelijking met proxies zoals nginx. Voor het uitbreiden van de functionaliteit van de proxy en het creƫren van filters zal de ondersteuning voor modules die in WebAssembly-formaat zijn gecompileerd beschikbaar zijn (voor ontwikkeling kunnen alle programmeertalen worden gebruikt waarvoor compilatie naar WASM wordt ondersteund). Het configuratieformaat zal zo eenvoudig en gebruiksvriendelijk mogelijk worden gemaakt.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster