Cloudflare udostępniło kod źródłowy Pingory, frameworka napisanego w języku Rust do tworzenia usług sieciowych

Pingora

Baner Pingory

Kilka dni temu Prezentacja Cloudflareza pośrednictwem wpisu na blogu, decyzja o udostępnieniu kodu źródłowego frameworka „Pingora”, specjalnie zaprojektowany dla rozwijać bezpieczne i wydajne usługi sieciowe, a także programowalne systemy sieciowe w języku Rust.

Te ramy udostępnia gotowe pakiety Rust, które ułatwiają utworzenie serwera proxy HTTP, praca z protokołami sieciowymi, parsowanie nagłówków HTTP, rozliczanie i ograniczanie ruchu, równoważenie obciążenia, zarządzanie rozproszoną tabelą skrótów Ketama, utrzymywanie pamięci podręcznej w pamięci RAM i asynchroniczne przetwarzanie limitów czasu. Oprócz obsługi protokołu HTTP, Pingora umożliwia tworzenie usług przy użyciu własnych protokołów lub UDP/TCP.

Co to jest Pingora?

Pingora to asynchroniczna, wielowątkowa platforma Rust zaprojektowana do bezpiecznego i wydajnego tworzenia usług proxy HTTP.. Od czasu premiery Pingora była szeroko testowana i używana w systemach o dużym obciążeniu, jako serwer proxy używany w sieci dostarczania treści Cloudflare, przetwarzający ponad 40 milionów żądań na sekundę przez ponad rok.

Cloudflare wspomina, że ​​bezpieczeństwo jest kluczowym priorytetem projektu, dlatego wybrano język Rust, aby zmniejszyć prawdopodobieństwo wystąpienia błędów związanych z pamięcią. Dodatkowo zwrócono uwagę na efektywność, wydajność i rozszerzalność, umożliwiając integrację filtrów i procedur obsługi wywołań zwrotnych w celu kontrolowania różnych etapów przetwarzania żądań, a także modyfikowania, przekierowywania, blokowania i rejestrowania żądań i odpowiedzi.

Pingora to biblioteka i zestaw narzędzi, a nie wykonywalny plik binarny. Innymi słowy, Pingora to silnik napędzający samochód, a nie sam samochód. Chociaż Pingora jest gotowa do użytku produkcyjnego do zastosowań przemysłowych, rozumiemy, że wiele osób chce usługi internetowej „pod klucz”, z dołączonymi bateriami i opcjami konfiguracji bez kodu lub z małą ilością kodu. Budowanie tej aplikacji na platformie Pingora będzie głównym przedmiotem naszej współpracy z ISRG w celu rozszerzenia zasięgu Pingory. Czekajcie na przyszłe ogłoszenia dotyczące tego projektu.

Wśród kluczowe zalety Pingorywyróżniają się następujące:

  1. Bezpieczeństwo pamięci: Pingora oferuje bardziej bezpieczną dla pamięci alternatywę w porównaniu do usług napisanych w C/C++. Powoduje to mniejsze prawdopodobieństwo błędów w kodowaniu, które mogłyby zagrozić bezpieczeństwu systemu.
  2. Zoptymalizowana wydajność: Dzięki wielowątkowej architekturze Pingora jest szybka i wydajna, oszczędzając zasoby procesora i pamięci. Jest to szczególnie korzystne w przypadku obciążeń wrażliwych na wydajność i koszty.
  3. Zaawansowane dostosowywanie: Interfejsy API dostarczane przez Pingorę są wysoce programowalne, co pozwala na szerokie dostosowywanie w celu tworzenia niestandardowych i zaawansowanych bram lub modułów równoważenia obciążenia.

Pingora oferuje kilka kluczowych funkcji, takich jak wielowątkowe przetwarzanie żądań w trybie asynchronicznym, obsługa HTTP/1 i HTTP/2 (w planach HTTP/3), gRPC i proxy WebSocket, wymienne moduły równoważenia obciążenia, zmiana konfiguracji bez restartu, aktualizacja kodu bez zrywania połączeń, strategie przełączania obciążenia w przypadku awarii (failover), integracja z systemami monitorowania i logowania (takimi jak Syslog, Prometheus, Sentry, OpenTelemetry) oraz obsługa szyfrowania TLS poprzez biblioteki C OpenSSL i BoringSSL.

Wyróżnione funkcje Pingory

  • Obsługa proxy HTTP/1 i HTTP/2, gRPC i websocket.
  • Konfigurowalne strategie równoważenia obciążenia i przełączania awaryjnego.
  • Integracja z bibliotekami OpenSSL i BoringSSL w celu zapewnienia zgodności i bezpieczeństwa.
  • Filtry i wywołania zwrotne do dostosowywania i przetwarzania żądań.
  • Płynne ponowne uruchamianie bez przestojów i bezproblemowe aktualizacje.
  • Integracja z narzędziami obserwowalności, takimi jak m.in. Syslog, Prometheus, Sentry, OpenTelemetry.

Na koniec Cloudflare wspomina, że ​​współpracuje z projektem Prossimo Internet Security Research Group (ISRG), aby przyspieszyć przyjęcie Pingory w krytycznej infrastrukturze internetowej, przyczyniając się w ten sposób do bezpieczniejszego i niezawodnego Internetu dla wszystkich.

Jeżeli jesteś chcesz dowiedzieć się więcej na ten temat, powinieneś wiedzieć, że kod jest napisany w Rust i opublikowane w ramach licencji Apache 2.0 można także zapoznać się z publikacją Cloudflare W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.