Cloudflare teatas Pingora raamistiku avamisest, mis on mõeldud kõrge jõudlusega ja turvaliste võrguteenuste ja programmeeritavate võrgusüsteemide arendamiseks Rusti keeles. Raamistik on hästi testitud ja seda kasutatakse juba kõrge koormusega süsteemides - selle alusel ehitatud pöördproksi on olnud Cloudflare'i sisu jagamise võrgus üle aasta ja töötleb rohkem kui 40 miljonit päringut sekundis. Kood on kirjutatud Rusti keeles ja avaldatud Apache 2.0 litsentsi all.
Pingorat saab kasutada mitme lõimega päringute asünkroonseks töötlemiseks, see toetab HTTP/1 ja HTTP/2 (HTTP/3 on plaanis), gRPC ja WebSocket'i pöördproksimist, ühendatavaid koormuse tasandajaid, konfigureerimist ilma taaskäivitamiseta, koodi värskendamist ühenduste katkestamata, koormuse lülitamise strateegiate määratlemist tõrgete (failover) korral, samuti integreerimist erinevate jälgimis- ja logimisüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry). Pingoras toetatakse ka TLS-krüpteerimist, mis on rakendatud avatud C-raamatukogude OpenSSL ja BoringSSL üle.
Pakutakse valmis Rusti pakette HTTP-pöördproksi loomiseks, võrguprotokollidega töötamiseks, HTTP päiste analüüsimiseks, andmete arvestamiseks ja piiramiseks, koormuse tasakaalustamiseks, jaotatud hash-tabeli Ketama haldamiseks, vahemälu säilitamiseks RAM-is ja asünkroonsete aegade töötlemiseks. Lisaks HTTP-le toetatakse teenuste loomist, mis kasutavad oma protokolle või UDP/TCP-d.
Projekti peamiseks prioriteediks on nimetanud turvalisuse tagamine - mälu töötamisega seotud vigade tõenäose vähendamiseks valiti arendamisel Rusti keel. Suurt tähelepanu on pööratud ka efektiivsusele, jõudlusele ja laiendatavusele. Näiteks, pöördproksi ja koormuse tasandajate loomisel Pingora baasil on ette nähtud võimalus lisada callback-käsitlejaid ja filtreid, mis võimaldavad hallata erinevaid päringu töötlemise etappe, samuti muuta, suunata ümber, blokeerida ja logida päringuid ja vastuseid.serverid Pingora baasil koormuse tasandajates on ette nähtud callback-käsitlejate ja filtrite lisamise võimalus, mis võimaldavad hallata erinevaid päringu töötlemise etappe ning muuta, suunata ümber, blokeerida ja logida päringuid ja vastuseid.
Koostöös ISRG (Internet Security Research Group), mis on Let's Encrypt projekti asutaja ja aitab edendada tehnoloogiaid interneti turvalisuse suurendamiseks, luuakse Pingora baasil tagasipöördvõrguprotokoll River, mis on mõeldud kriitiliselt oluliste elementide kasutamiseks. võrguinfrastruktuuri. River'i kood kirjutatakse Rustis ja see jaotatakse Apache 2.0 litsentsi alusel. Arendus algab 2024. aasta teises kvartalis. Praegu on projekt projekteerimise ja arhitektuuri määratlemise etapis. Projekti juhib James Munns Rust Embedded Working Group'ist.
Projekti River põhieesmärk on rakendada pöördproksi, mis suudab edastada klientide päringud tagasiserveritele, lõpetades sissetulevad TLS-ühendused ning suunates, muutma ja filtreerima päringud vastavalt määratud reeglitele. River'i eripära on mitme lõimega päringute töötlemise mudel, mis võimaldab saavutada efektiivsemat ühenduste taaskasutamist võrreldes selliste proksitega nagu nginx. Proksi funktsionaalsuse laiendamiseks ja filtrite loomiseks toetatakse WebAssembly formaadi moodulite ühendamist (arendamiseks saab kasutada kõiki programmeerimiskeeli, mille jaoks toetatakse kompileerimist WASM-i). Konfiguratsioonifaili formaati plaanitakse võimalikult lihtsaks ja tuttavaks teha.
Allikas: opennet.ru
