Kompania Cloudflare njoftoi hapjen e kodit burim tĂ« kornizĂ«s Pingora, e cila Ă«shtĂ« e destinuar pĂ«r zhvillimin e shĂ«rbimeve rrjetore tĂ« mbrojtura dhe me performancĂ« tĂ« lartĂ«, si dhe sistemeve rrjetore tĂ« programueshme nĂ« gjuhĂ«n Rust. Korniza Ă«shtĂ« testuar mirĂ« dhe tashmĂ« Ă«shtĂ« duke u pĂ«rdorur nĂ« punĂ«n e sistemeve me ngarkesĂ« tĂ« lartĂ« â njĂ« proxy i ndĂ«rtuar mbi bazĂ«n e saj ka qenĂ« nĂ« pĂ«rdorim nĂ« rrjetin e shpĂ«rndarjes sĂ« pĂ«rmbajtjes Cloudflare pĂ«r mĂ« shumĂ« se njĂ« vit si zĂ«vendĂ«sim pĂ«r nginx dhe pĂ«rpunon mĂ« shumĂ« se 40 milion kĂ«rkesa nĂ« sekondĂ«. Kodi Ă«shtĂ« shkruar nĂ« gjuhĂ«n Rust dhe Ă«shtĂ« publikuar nĂ«n licencĂ«n Apache 2.0.
Pingora mund të përdoret për përpunimin shumëthithës të kërkesave në modalitetin asinkron, mbështet HTTP/1 dhe HTTP/2 (në planet HTTP/3), proksinë gRPC dhe WebSocket, balancues të ngarkesës të bashkëlidhur, ndryshimin e konfiguracionit pa e rinisur, përditësimin e kodit pa ndërprerje të lidhjeve, përcaktimin e strategjisë së kalimit të ngarkesës në rast dështimi (failover), integrimin me sisteme të ndryshme monitorimi dhe regjistrimi (Syslog, Prometheus, Sentry, OpenTelemetry). Pingora gjithashtu mbështet enkriptimin TLS, por ai implementohet si një shtresë mbi bibliotekat C të OpenSSL dhe BoringSSL.
Paketat e gatshme Rust ofrohen për të krijuar një HTTP-proksi, për të punuar me protokollet rrjetërore, për të analizuar titujt HTTP, për të pasur parasysh dhe kufizuar trafikun, për balancimin e ngarkesës, për të punuar me tabelat e heshteve të shpërndara Ketama, për të ruajtur një cache në memorien operative dhe për përpunimin asinkron të dhembjeve. Përveç HTTP, mbështetet gjithashtu krijimi i shërbimeve që përdorin protokollet e tyre ose UDP/TCP.
Prioriteti kryesorĂ« tĂ« projektit Ă«shtĂ« sigurimi i sigurisĂ« â pĂ«r tĂ« reduktuar probabilitetin e gabimeve qĂ« lidhen me punĂ«n e memories, u zgjodh gjuha Rust pĂ«r zhvillimin. NjĂ« vĂ«mendje e madhe iu kushtua gjithashtu efikasitetit, performancĂ«s dhe zgjerueshmĂ«risĂ«. PĂ«r shembull, gjatĂ« krijimit tĂ« proxy-servera dhe balancuesve tĂ« ngarkesĂ«s mbi bazĂ«n e Pingora, Ă«shtĂ« parashikuar mundĂ«sia e bashkimin tĂ« callback-handler-eve dhe filtra, tĂ« cilat lejojnĂ« menaxhimin e fazave tĂ« ndryshme tĂ« pĂ«rpunimit tĂ« kĂ«rkesĂ«s, si dhe tĂ« ndryshojnĂ«, redirektojnĂ«, bllokojnĂ« dhe regjistrojnĂ« kĂ«rkesat dhe pĂ«rgjigjet.
SĂ« bashku me organizatĂ«n ISRG (Grupi i KĂ«rkimeve pĂ«r SigurinĂ« nĂ« Internet), i cili Ă«shtĂ« themeluesi i projektit Letâs Encrypt dhe kontribuon nĂ« zhvillimin e teknologjive pĂ«r tĂ« rritur sigurinĂ« e internetit, nĂ« bazĂ«n e Pingora do tĂ« krijohet njĂ« proxy i kthyer River, i projektuar pĂ«r pĂ«rdorim nĂ« elementĂ«t kritikĂ« tĂ« infrastrukturĂ«s rrjetore. Kodi River do tĂ« shkruhet nĂ« Rust dhe do tĂ« shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0. Zhvillimi do tĂ« fillojĂ« nĂ« tremujorin e dytĂ« tĂ« vitit 2024. Aktualisht, projekti Ă«shtĂ« nĂ« fazĂ«n e projektimit dhe pĂ«rcaktimit tĂ« arkitekturĂ«s. Projekti zhvillohet nĂ«n drejtimin e James Munns nga Grupi i PunarĂ«ve tĂ« Rust Embedded.
Qëllimi kryesor i projektit River është të realizojë një proxy që është në gjendje të transmetojë kërkesat e klientëve në serverët e prapmë, duke përfunduar lidhjet e ardhshme TLS dhe duke rigrupuar, ndryshuar dhe filtruar kërkesat në përputhje me rregullat e caktuara. Një veçori e River është modeli shumëprerës i përpunimit të kërkesave, i cili lejon një rikthim më efikas të lidhjeve krahasuar me proxy si nginx. Për të zgjeruar funksionalitetin e proxy-t dhe për të krijuar filtra, do të mbështeten lidhjet e moduleve të kompiluar në formatin WebAssembly (për zhvillim, çdo gjuhë programuese që mbështet kompilimin në WASM do të përdoret). Formati i konfigurimit planifikohet të bëhet sa më i thjeshtë dhe i njohur.
Burimi: opennet.ru
