Prije nekoliko dana Cloudflare predstavljen, putem objave na blogu, svoju odluku da objavi izvorni kod svog okvira "Pingora", posebno dizajniran za razviti sigurne mrežne usluge visokih performansi, kao i programabilni mrežni sistemi na jeziku Rust.
Ovaj okvir pruža gotove Rust pakete koji olakšavaju kreiranje HTTP proxyja, rad sa mrežnim protokolima, raščlanjivanje HTTP zaglavlja, obračunavanje i ograničavanje saobraćaja, balansiranje opterećenja, upravljanje Ketama distribuiranom hash tabelom, održavanje keš memorije u RAM-u i asinkrona obrada vremenskih ograničenja. Pored podrške za HTTP, Pingora dozvoljava kreiranje servisa koristeći sopstvene protokole ili UDP/TCP.
Šta je Pingora?
Pingora je asinhroni višenitni Rust okvir dizajniran da izgradi HTTP proxy usluge sigurno i efikasno.. Od svog objavljivanja, Pingora je opsežno testirana i korišćena na sistemima sa visokim opterećenjem, kao proxy koji se koristi na Cloudflare mreži za isporuku sadržaja, obrađujući preko 40 miliona zahteva u sekundi više od godinu dana.
Cloudflare spominje da je sigurnost ključni prioritet projekta, zbog čega je Rust jezik odabran da smanji vjerovatnoću grešaka u memoriji. Pored toga, pažnja je posvećena efikasnosti, performansama i proširivosti, omogućavajući integraciju filtera i rukovalaca povratnim pozivima za kontrolu različitih faza obrade zahteva, kao i za modifikovanje, preusmeravanje, blokiranje i evidenciju zahteva i odgovora.
Pingora je biblioteka i skup alata, a ne izvršna binarna datoteka. Drugim riječima, Pingora je motor koji pokreće automobil, a ne sam automobil. Iako je Pingora spremna za proizvodnju za industrijsku upotrebu, razumijemo da mnogi ljudi žele web uslugu po principu ključ u ruke, s uključenim baterijama i s opcijama konfiguracije bez koda ili s niskim kodom. Izgradnja te aplikacije na vrhu Pingore bit će fokus naše suradnje s ISRG-om kako bismo proširili Pingorin doseg. Ostanite sa nama za buduće najave o tom projektu.
Među ključne prednosti Pingore, izdvajaju se:
- Sigurnost memorije: Pingora nudi alternativu bezbedniju za memoriju u poređenju sa uslugama napisanim u C/C++. Ovo rezultira manjom vjerovatnoćom grešaka u kodiranju koje bi mogle ugroziti sigurnost sistema.
- Optimizirane performanse: Zahvaljujući svojoj višenitnoj arhitekturi, Pingora je brza i efikasna, štedeći CPU i memorijske resurse. Ovo je posebno korisno za radna opterećenja koja su osjetljiva na performanse i troškove.
- Napredno prilagođavanje: API-ji koje pruža Pingora su vrlo programabilni, omogućavajući opsežnu prilagodbu za kreiranje prilagođenih i naprednih gateway-a ili balansera opterećenja.
Pingora nudi nekoliko ključnih karakteristika, kao što je višenitna obrada zahtjeva u asinhronom načinu rada, podrška za HTTP/1 i HTTP/2 (sa planovima za HTTP/3), gRPC i WebSocket proxy, priključni balanseri opterećenja, promjena konfiguracije bez ponovnog pokretanja, ažuriranje koda bez prekida veze, strategije prebacivanja opterećenja u slučaju kvara (failover), integraciju sa sistemima za praćenje i evidentiranje (kao što su Syslog, Prometheus, Sentry, OpenTelemetry) i podršku za TLS enkripciju kroz OpenSSL i BoringSSL C biblioteke.
Pingora istaknute karakteristike
- Podrška za HTTP/1 i HTTP/2 proxy, gRPC i websocket.
- Prilagodljive strategije balansiranja opterećenja i prelaska na greške.
- Integracija sa OpenSSL i BoringSSL bibliotekama za usklađenost i sigurnost.
- Filteri i povratni pozivi za prilagođavanje i obradu zahtjeva.
- Graciozno ponovno pokretanje bez prekida rada za besprijekorna ažuriranja.
- Integracija sa alatima za posmatranje kao što su Syslog, Prometheus, Sentry, OpenTelemetry, između ostalih.
Konačno, Cloudflare spominje da sarađuje s Prossimo projektom istraživačke grupe Internet Security Group (ISRG) kako bi unaprijedio usvajanje Pingore u kritičnoj internet infrastrukturi, doprinoseći tako sigurnijem i pouzdanijem Internetu za sve.
Naps zainteresovani da saznaju više o tome, trebali biste znati da je kod napisan u Rust i objavljeno pod licencom Apache 2.0, možete pogledati i publikaciju Cloudflare Na sledećem linku.