Cloudflare avaldas teise väljaande Pingora raamistiku, mis on mõeldud turvaliste kõrge jõudlusega võrgu teenuste arendamiseks Rust keeles. Pingora abil ehitatud päiste Proxy on umbes aasta aega kasutusel Cloudflare sisuteenuste võrgus nginxi asemel ning käsitleb üle 40 miljoni päringu sekundis. Kood on kirjutatud Rust keeles ja avaldatud Apache 2.0 litsentsi alusel.
Pingora peamised omadused:
- Toetab HTTP/1 ja HTTP/2 (plaanis on HTTP/3) ning võimaldab luua teenuseid, mis kasutavad enda protokolle või UDP/TCP.
- Mitme lõime toe võimalus asünkroonses režiimis päringute töötlemiseks.
- Toetab callback-töötlejate ja filtrite kinnitamist, mis võimaldavad juhtida erinevaid päringu töötlemise etappe ning muuta, suunata, blokeerida ja logida päringuid ja vastuseid.
- gRPC ja WebSocket-i proksimine.
- Lisanduvad koormuse tasakaalurid.
- Võimalus muuta konfiguratsiooni ilma taaskäivitamiseta.
- Toetab rakenduskoodi värskendamist ühenduste katkestamatuks.
- Vahendid koormuse ümbersuunamiseks tõrgete korral (failover).
- Integreeritud erinevate jälgimis- ja logimissüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry).
- Toetab TLS-krüptimist (kasutatakse OpenSSL või BoringSSL).
- Valmis Rusti paketid HTTP-proksi loomiseks, võrgu protokollidega töötamiseks, HTTP-pealkirjade eraldamiseks, liikluse arvestamiseks ja piiramiseks, koormuse tasakaalustamiseks, jaotatud rippmenüüd Ketama haldamiseks, mälus hoidmiseks ja asünkroonselt töötlemiseks.
Uues versioonis on järgmised muudatused:
- Lisatud toetus HTTP/2 täiendavate päiste filtrite seadistamiseks.
- Lisatud võimalus muuta TCP sissetulevate pakettide puhverserveri suurust.
- Lisatud funktsioon body_bytes_read().
- Lisatud filter cache_not_modified_filter.
- Lisatud võimalus TLS-võtmete logimise jaoks.
- Lisatud callback-funktsioon purge_response.
Allikas: opennet.ru
