Cloudflare öppen källkod Pingora, en verktygslåda för att skapa nätverkstjänster

Cloudflare har tillkännagivit öppen källkodsversionen av Pingora-ramverket, designat för att utveckla säkra högpresterande nätverkstjänster och programmerbara nätverkssystem i Rust. Ramverket har testats väl och används redan i högbelastade system – en proxy byggd på dess basis har använts i Cloudflares innehållsleveransnätverk istället för nginx i över ett år och bearbetar över 40 miljoner förfrågningar per sekund. Koden är skriven i Rust och publicerad under Apache 2.0-licensen.

Pingora kan användas för flertrådad förfrågningsbehandling i asynkront läge, stöder HTTP/1 och HTTP/2 (HTTP/3 planeras), gRPC- och WebSocket-proxy, pluggbara lastbalanserare, konfigurationsändringar utan omstart, koduppdateringar utan att bryta anslutningar, definiering av en lastväxlingsstrategi vid fel (failover), integration med olika övervaknings- och loggsystem (Syslog, Prometheus, Sentry, OpenTelemetry). Pingora stöder även TLS-kryptering, men det implementeras som ett tillägg till OpenSSL- och BoringSSL-biblioteken i C.

Färdiga Rust-paket tillhandahålls för att skapa HTTP-proxyservrar, arbeta med nätverksprotokoll, analysera HTTP-headers, redovisa och begränsa trafik, lastbalansera, arbeta med den distribuerade Ketama-hashtabellen, underhålla en cache i RAM och hantera asynkront timeout. Förutom HTTP stöds skapandet av tjänster med hjälp av deras egna protokoll eller UDP/TCP.

Att säkerställa säkerhet identifierades som en nyckelprioritet för projektet. För att minska sannolikheten för minnesrelaterade fel valdes språket Rust för utveckling. Stor uppmärksamhet ägnades också åt effektivitet, prestanda och utökningsbarhet. Till exempel vid skapandet av proxyservrarservrar Pingora-baserade lastbalanserare och servrar ger möjlighet att ansluta återuppringningshanterare och filter som låter dig hantera olika steg i förfrågningsbehandlingen, samt ändra, omdirigera, blockera och logga förfrågningar och svar.

Tillsammans med Internet Security Research Group (ISRG), som är grundare av Let's Encrypt-projektet och främjar utvecklingen av teknik för att förbättra internetsäkerheten, kommer en omvänd proxy kallad River att skapas baserat på Pingora, designad för användning i kritiska element. nätverksinfrastrukturRivers kod kommer att skrivas i Rust och licensieras under Apache 2.0-licensen. Utvecklingen är planerad att påbörjas under andra kvartalet 2024. Projektet är för närvarande i design- och arkitekturfasen. Projektet utvecklas under ledning av James Munns från Rust Embedded Working Group.

Huvudsyftet med River-projektet är att implementera en proxy som kan vidarebefordra klientförfrågningar till backend-servrar, avsluta inkommande TLS-anslutningar och routa, modifiera och filtrera förfrågningar enligt specificerade regler. Bland Rivers funktioner nämns en flertrådad modell för förfrågningsbehandling, vilket möjliggör effektivare återanvändning av anslutningar jämfört med proxyservrar som nginx. För att utöka proxyns funktionalitet och skapa filter kommer anslutning av moduler kompilerade i WebAssembly-formatet att stödjas (för utveckling kommer det att vara möjligt att använda alla programmeringsspråk för vilka kompilering i WASM stöds). Konfigurationsformatet är planerat att vara så enkelt och bekant som möjligt.

Källa: opennet.ru

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster