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
