Pingora
Co jest w pudełku
Pingora to biblioteki i interfejsy API do tworzenia usług na bazie protokołów HTTP/1 i HTTP/2, TLS lub po prostu TCP/UDP. Jako proxy, obsługuje end-to-end HTTP/1 i HTTP/2, gRPC oraz proxy dla protokołów websocket. (Wsparcie dla HTTP/3 jest planowane.) Oferuje także konfigurowalne strategie równoważenia obciążenia i awaryjnego przenoszenia ruchu. Ze względów zgodności i bezpieczeństwa obsługuje zarówno powszechnie używane biblioteki OpenSSL, jak i BoringSSL, które posiadają zgodność z FIPS oraz kryptografię post-kwantową.
Oprócz tych funkcji, Pingora dostarcza filtrów i wywołań zwrotnych, pozwalając użytkownikom w pełni dostosować sposób przetwarzania, transformowania i przekazywania żądań przez usługę. Te interfejsy API mogą być szczególnie znajome użytkownikom OpenResty i NGINX, gdyż wiele z nich intuicyjnie odwzorowuje "*_by_lua" wywołania OpenResty.
Operacyjnie Pingora umożliwia restartowanie bezawaryjne bez zatrzymywania, co pozwala na aktualizację bez utraty żadnego przychodzącego żądania. Syslog, Prometheus, Sentry, OpenTelemetry i inne narzędzia do obserwacji są łatwo integrowane z Pingora.
Korzyści wynikające z przejścia na Pingora
-
Jeśli bezpieczeństwo jest Twoim najważniejszym priorytetem: Pingora jest bardziej bezpieczna pod względem zarządznaia pamięcią niż jej odpowiedniki napisne w językach C/C++. Choć niektórzy mogą dyskutować na temat bezpieczeństwa pamięci w różnych językach programowania, z naszego praktycznego doświadczenia wynika, że używając Rust'a jesteśmy znacznie mniej podatni na popełnianie błędów kodowania prowadzących do problemów z bezpieczeństwem pamięci. Ponadto, ponieważ mniej czasu poświęcamy na walkę z tymi problemami, jesteśmy bardziej produktywni w implementowaniu nowych funkcji.
-
Jeśli Twoja usługa jest wrażliwa na wydajność: Pingora to szybki i wydajny serwis proxy. Oszczędza wiele zasobów CPU i pamięci dzięki wielowątkowej architekturze. Oszczędności czasu i zasobów mogą być znaczące w systemch, a to ważne ze względu na koszty i szybkość systemu.
-
Jeśli Twoja usługa wymaga dostosowania: Interfejsy API, które oferuje ramka proxy Pingora, są elastycznie programowalne. Dla użytkowników, którzy chcą zbudować niestandardowe i zaawansowane proxy z load-balancerem, Pingora posiada potężne, a jednocześnie proste, sposoby implementacji.