Cloudflare oznámila otvorený zdrojový kód rámca Pingora, ktorý je určený na vývoj bezpečných, vysokovýkonných sieťových služieb a programovateľných sieťových systémov v jazyku Rust. Rámec bol dobre otestovaný a už sa používa vo vysoko zaťažených systémoch – proxy postavený na jeho základe sa používa v sieti na doručovanie obsahu Cloudflare namiesto Nginx už viac ako rok a spracováva viac ako 40 miliónov požiadaviek za sekundu. Kód je napísaný v jazyku Rust a publikovaný pod licenciou Apache 2.0.
Pingora môže byť použitá na viacvláknové spracovanie požiadaviek v asynchrónnom režime, podporuje HTTP/1 a HTTP/2 (HTTP/3 v plánoch), gRPC a WebSocket proxy, zásuvné vyrovnávače záťaže, zmenu konfigurácie bez reštartovania, aktualizáciu kódu bez prerušenia spojení, definovanie zaťaženia prepínacej stratégie v prípade zlyhania (failover), integrácia s rôznymi monitorovacími a logovacími systémami (Syslog, Prometheus, Sentry, OpenTelemetry). Pingora podporuje aj šifrovanie TLS, ale je implementované ako doplnok ku knižniciam OpenSSL a BoringSSL C.
Pripravené balíky Rust slúžia na vytváranie HTTP proxy, prácu so sieťovými protokolmi, parsovanie HTTP hlavičiek, účtovanie a obmedzovanie prevádzky, vyvažovanie záťaže, prácu s distribuovanou hash tabuľkou Ketama, udržiavanie vyrovnávacej pamäte v RAM a asynchrónne spracovanie timeoutov. Okrem HTTP je podporovaná tvorba služieb pomocou vlastných protokolov alebo UDP/TCP.
Zaistenie bezpečnosti bolo identifikované ako kľúčová priorita projektu. Aby sa znížila pravdepodobnosť chýb súvisiacich s pamäťou, na vývoj bol zvolený jazyk Rust. Významná pozornosť sa venovala aj efektívnosti, výkonu a rozšíriteľnosti. Napríklad pri vytváraní proxy serverovserverov Vyrovnávače záťaže a servery založené na Pingore poskytujú možnosť pripojiť obslužné rutiny spätných volaní a filtre, ktoré vám umožňujú spravovať rôzne fázy spracovania požiadaviek, ako aj upravovať, presmerovávať, blokovať a protokolovať požiadavky a odpovede.
Spolu s Internet Security Research Group (ISRG), ktorá je zakladateľom projektu Let's Encrypt a podporuje vývoj technológií na zlepšenie internetovej bezpečnosti, bude na báze Pingory vytvorená reverzná proxy s názvom River, určená na použitie v kritických prvkoch. sieťovú infraštruktúruRiverov kód bude napísaný v jazyku Rust a licencovaný pod licenciou Apache 2.0. Vývoj by sa mal začať v druhom štvrťroku 2024. Projekt je momentálne vo fáze návrhu a architektúry. Projekt sa vyvíja pod vedením Jamesa Munnsa z pracovnej skupiny Rust Embedded.
Hlavným účelom projektu River je implementovať proxy, ktorý dokáže prenášať požiadavky klientov na backend servery, preposielať prichádzajúce spojenia TLS a smerovať, upravovať a filtrovať požiadavky v súlade so špecifikovanými pravidlami. Medzi funkciami River je uvedený viacvláknový model spracovania požiadaviek, ktorý umožňuje efektívnejšie opätovné použitie pripojenia v porovnaní s proxy servermi, ako je nginx. Pre rozšírenie funkčnosti proxy a vytváranie filtrov bude možné pripojiť moduly skompilované vo formáte WebAssembly (na vývoj môžete použiť ľubovoľné programovacie jazyky, pre ktoré je podporovaná kompilácia vo WASM). Plánujú urobiť konfiguračný formát čo najjednoduchším a najznámejším.
Zdroj: opennet.ru
