Kompania Cloudflare shpalli hapjen e kodit burimor të kornizës Pingora, e cila është e dizajnuar për të zhvilluar shërbime rrjetesh të sigurta me performancë të lartë dhe sisteme rrjetesh të programueshme në gjuhën Rust. Korniza është testuar mirë dhe tashmë aplikohet në punën e sistemeve me ngarkesë të lartë - një proxy i ndërtuar mbi bazën e saj është përdorur për më shumë se një vit në rrjetin e shpërndarjes së përmbajtjes Cloudflare në vend të nginx dhe trajton më shumë se 40 milion porosi 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ëthënësh të porosive në mod të asinkron, mbështet HTTP/1 dhe HTTP/2 (në plan është HTTP/3), proxy gRPC dhe WebSocket, balancues ngarkese të ndërlidhur, ndryshimin e konfigurimeve pa rihapjen, përditësimin e kodit pa ndërprerje të lidhjeve, përcaktimin e strategjisë për kalimin e ngarkesës në rast dështimi (failover), integrim me sisteme të ndryshme monitorimi dhe regjistrimi (Syslog, Prometheus, Sentry, OpenTelemetry). Në Pingora gjithashtu mbështetet TLS-enkriptimi, por ai realizohet si një shtesë mbi bibliotekat C të OpenSSL dhe BoringSSL.
Ofrohen paketa gati në Rust për krijimin e HTTP-proxy, punën me protokollet rrjet, analizimin e titujve HTTP, llogaritjen dhe kufizimin e trafikut, balancimin e ngarkesës, punën me tabelën e hash-it të shpërndarë Ketama, ruajtjen e cache-it në memorje dhe përpunimin asinkron të koheve të skadimit. Përveç HTTP, mbështetet gjithashtu krijimi i shërbimeve që përdorin protokollet e tyre ose UDP/TCP.
Prioriteti kyç i projektit është siguria - për të reduktuar probabilitetin e gabimeve lidhur me punën me memorien, gjuhë e zgjedhur ishte Rust. Një vëmendje e madhe është kushtuar gjithashtu efikasitetit, performancës dhe zgjerueshmërisë. Për shembull, në krijimin e proxy dhe balancuesve ngarkese mbi bazën e Pingora parashikohet mundësia e lidhjes së callback-handler-ave dhe filtrave, duke lejuar menaxhimin e fazave të ndryshme të përpunimit të porosive, si dhe ndryshimin, ridrejtimin, bllokimin dhe regjistrimin e porosive dhe përgjigjeve.serverësh Së bashku me këtë, për krijimin e proxy dhe balancuesve ngarkese mbi bazën e Pingora parashikohet mundësia e lidhjes së callback- handler-ave dhe filtrave, duke lejuar menaxhimin e fazave të ndryshme të përpunimit të porosive, si dhe ndryshimin, ridrejtimin, bllokimin dhe regjistrimin e porosive dhe përgjigjeve.
NĂ« bashkĂ«punim me organizatĂ«n ISRG (Grupi i KĂ«rkimeve pĂ«r SigurinĂ« nĂ« Internet), e cila Ă«shtĂ« themeluesi i projektit Letâs Encrypt dhe kontribuon nĂ« zhvillimin e teknologjive pĂ«r tĂ« pĂ«rmirĂ«suar sigurinĂ« e internetit, do tĂ« krijohet njĂ« proxy i kthyer River mbi bazĂ«n e Pingora, i destinuar pĂ«r t'u pĂ«rdorur nĂ« elemente kritikĂ«. tĂ« infrastrukturĂ«s rrjetoreKodi i 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 ndodhet nĂ« fazĂ«n e dizajnit dhe pĂ«rcaktimit tĂ« arkitekturĂ«s. Projekti po zhvillohet nĂ«n drejtimin e James Munns nga Grupi i PunĂ«s pĂ«r Rust Embedded.
Qëllimi kryesor i projektit River është realizimi i një proxy që mund të transmetojë kërkesat e klientëve te serverët backend, duke terminizuar lidhjet TLS të ardhshme dhe duke rregulluar, ndryshuar dhe filtruar kërkesat sipas rregullave të caktuara. Një të veçantë të River është modeli me shumë thread për përpunimin e kërkesave, i cili lejon përdorimin më efikas të lidhjeve në krahasim me proxy të tilla si nginx. Për të zgjeruar funksionalitetin e proxy dhe për të krijuar filtera, do të mbështetet lidhja e moduleve të kompiluara në formatin WebAssembly (për zhvillim, mund të përdoren çdo gjuhë programimi për të cilat mbështetet kompilimi në WASM). Formati i konfigurimit planifikohet të jetë sa më i thjeshtë dhe i njohur.
Burimi: opennet.ru
