Cloudflare har åbnet koden til Pingora, værktøjet til oprettelse af netværkstjenester

Cloudflare har annonceret åbningen af kildekoden til Pingora-rammen, der er designet til at udvikle sikre, højtydende netværkstjenester og programmerbare netværkssystemer i Rust. Rammen er grundigt testet og er allerede i brug i højbelastede systemer — en proxy bygget på den har været i drift i mere end et år i Cloudflares indholdsleveringsnetværk i stedet for nginx og håndterer over 40 millioner forespørgsler pr. sekund. Koden er skrevet i Rust og offentliggjort under Apache 2.0-licensen.

Pingora kan bruges til multithreading behandling af forespørgsler i asynkron tilstand, understøtter HTTP/1 og HTTP/2 (HTTP/3 er på vej), gRPC og WebSocket proxiering, tilsluttede belastningsbalancere, ændring af konfiguration uden genstart, kodeopdatering uden afbrydelse af forbindelser, fastsættelse af belastningsskiftstrategi i tilfælde af fejlsikring, integration med forskellige overvågnings- og logningssystemer (Syslog, Prometheus, Sentry, OpenTelemetry). TLS-kryptering understøttes også i Pingora, men det er implementeret som et lag oven på C-bibliotekerne OpenSSL og BoringSSL.

Der tilbydes klar-til-brug Rust-pakker til oprettelse af HTTP-proxier, arbejde med netværksprotokoller, parsing af HTTP-header, trafikovervågning og -begrænsning, belastningsbalancering, arbejde med distribueret hash-tabel Ketama, vedligeholdelse af cache i RAM og asynkron behandling af timeout. Udover HTTP understøttes oprettelse af tjenester, der bruger egne protokoller eller UDP/TCP.

Et nøgleprioritet for projektet er sikkerhed — for at mindske risikoen for fejl relateret til hukommelsesarbejde, er programmeringssproget Rust valgt til udviklingen. Der er også lagt stor vægt på effektivitet, ydeevne og skalerbarhed. For eksempel, når man opretter proxies-servere og belastningsbalancere baseret på Pingora, er der mulighed for at knytte callback-håndteringsrutiner og filtre, der muliggør styring af forskellige stadier af forespørgselsbehandlingen samt ændre, omdirigere, blokere og logge forespørgsler og svar.

Sammen med ISRG (Internet Security Research Group), der er stifteren af projektet Let’s Encrypt og bidrager til udviklingen af teknologier, der øger internettets sikkerhed, vil Pingora basere en reverse proxy kaldet River, der er designet til brug i kritiske systemelemeter. af netværksinfrastruktur. Koden til River vil blive skrevet i Rust og distribueret under Apache 2.0 licensen. Udviklingen starter i andet kvartal af 2024. Projektet er i øjeblikket i fase med design og arkitektur. Projektet udvikles under ledelse af James Munns fra Rust Embedded Working Group.

Hovedformålet med River-projektet er at implementere en proxy, der kan videresende klientanmodninger til backend-servere, terminere indkommende TLS-forbindelser og rute, ændre og filtrere anmodninger i henhold til de fastsatte regler. River nævner en multithreaded anmodningsbehandlingsmodel, der muliggør mere effektiv genbrug af forbindelser sammenlignet med proxy'er som nginx. For at udvide proxyens funktionalitet og skabe filtre vil der blive understøttet tilslutning af moduler kompilering i WebAssembly-format (hvilket betyder, at der kan anvendes ethvert programmeringssprog, der understøtter kompilering til WASM). Konfigurationsformatet planlægges at være så simpelt og intuitivt som muligt.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster