Firma Cloudflare udostępniła kod Pingora, narzędzia do tworzenia usług sieciowych

Firma Cloudflare ogłosiła otwarcie kodu źródłowego frameworka Pingora, przeznaczonego do tworzenia w języku Rust zabezpieczonych, wysokowydajnych usług sieciowych i programowalnych systemów sieciowych. Framework został dobrze przetestowany i już jest wykorzystywany w pracy wysokowydajnych systemów — zbudowany na jego bazie proxy działa od ponad roku w sieci dostarczania treści Cloudflare zamiast nginx i przetwarza ponad 40 mln zapytań na sekundę. Kod napisano w języku Rust i opublikowano na licencji Apache 2.0.

Pingora może być używana do wielowątkowego przetwarzania zapytań w trybie asynchronicznym, wspiera HTTP/1 i HTTP/2 (w planach HTTP/3), proxy gRPC i WebSocket, dynamiczne load balancery, zmianę konfiguracji bez restartu, aktualizację kodu bez zrywania połączeń, określenie strategii przełączania obciążenia w przypadku awarii (failover), integrację z różnymi systemami monitorowania i logowania (Syslog, Prometheus, Sentry, OpenTelemetry). W Pingora wspierane jest również szyfrowanie TLS, które jednak jest realizowane jako nakładka na biblioteki C OpenSSL i BoringSSL.

Dostępne są gotowe pakiety Rust do tworzenia proxy HTTP, pracy z protokołami sieciowymi, analizy nagłówków HTTP, śledzenia i ograniczania ruchu, balansowania obciążenia, pracy z rozproszoną tablicą haseł Ketama, zarządzania pamięcią podręczną oraz asynchronicznego przetwarzania timeoutów. Oprócz HTTP wspierane jest również tworzenie usług wykorzystujących własne protokoły lub UDP/TCP.

Kluczowym priorytetem projektu jest zapewnienie bezpieczeństwa — w celu zmniejszenia prawdopodobieństwa popełnienia błędów związanych z zarządzaniem pamięcią wybrano język Rust. Dużą uwagę poświęcono także efektywności, wydajności i rozbudowie. Na przykład, przy tworzeniu proxy-serwerów i load balancerów opartych na Pingora przewidziano możliwość dołączania callback-handlerów i filtrów, które pozwalają zarządzać różnymi etapami przetwarzania zapytań, a także modyfikować, przekierowywać, blokować i rejestrować zapytania oraz odpowiedzi.

Wspólnie z organizacją ISRG (Internet Security Research Group), która jest założycielem projektu Let’s Encrypt oraz wspiera rozwój technologii poprawiających bezpieczeństwo internetu, na bazie Pingora zostanie stworzony odwrotny serwer proxy River, zaprojektowany do stosowania w krytycznie ważnych elementach. infrastruktury sieciowejKod River będzie napisany w Rust i udostępniony na licencji Apache 2.0. Rozwój rozpocznie się w drugim kwartale 2024 roku. Obecnie projekt znajduje się w fazie projektowania i określania architektury. Projekt jest rozwijany pod kierunkiem Jamesa Munnsa z Rust Embedded Working Group.

Głównym celem projektu River jest realizacja proxy, zdolnego do przekazywania żądań klientów do serwerów backendowych, terminując przychodzące połączenia TLS oraz routując, modyfikując i filtrując żądania zgodnie z określonymi zasadami. Wśród cech River wymienia się model przetwarzania żądań wielowątkowo, co pozwala na bardziej efektywne ponowne wykorzystanie połączeń w porównaniu do takich proxy jak nginx. Aby poszerzyć funkcjonalność proxy i stworzyć filtry, będzie wspierane podłączenie modułów skompilowanych w formacie WebAssembly (do rozwoju można będzie używać dowolnych języków programowania, które wspierają kompilację do WASM). Format konfiguracji planuje się uczynić jak najprostszym i intuicyjnym.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster