Компания Cloudflare разкри кодa на Pingora, инструментариум за изграждане на мрежови услуги

Компания Cloudflare обяви за отварянето на изходния код на фреймворка Pingora, предназначен за разработване на защитени, високо производителни мрежови услуги и програмирани мрежови системи на езика Rust. Фреймворкът е добре тестван и вече се използва в работа на системи с високо натоварване — проксито, изградена на база Pingora, се използва повече от година в мрежата за доставка на съдържание на Cloudflare вместо nginx и обработва над 40 млн. запитвания в секунда. Кодът е написан на езика Rust и е публикуван под лицензия Apache 2.0.

Pingora може да се използва за многопоточно обработване на запитвания в асинхронен режим, поддържа HTTP/1 и HTTP/2 (в плановете е добавянето на HTTP/3), проксиране на gRPC и WebSocket, плъгини за балансиране на натоварването, промяна на конфигурацията без рестартиране, обновяване на кода без прекъсвания на връзките, определяне на стратегия за превключване при неуспех (failover), интеграция с различни системи за мониторинг и логване (Syslog, Prometheus, Sentry, OpenTelemetry). В Pingora също така е поддържано TLS криптиране, но то е реализирано като надстройка над C библиотеките OpenSSL и BoringSSL.

Предоставят се готови Rust пакети за създаване на HTTP прокси, работа с мрежови протоколи, анализ на HTTP заглавия, проследяване и ограничаване на трафика, балансиране на натоварването, работа с разпределена хеш таблица Ketama, поддържане на кеш в оперативната памет и асинхронна обработка на тайм аутове. Освен HTTP, е възможно създаването на услуги, използващи свои протоколи или UDP/TCP.

Ключов приоритет на проекта е осигуряването на сигурност — за да се намали вероятността от грешки, свързани с работата с паметта, за разработката бе избран езика Rust. Голямо внимание също е отделено на ефективността, производителността и разширяемостта. Например, при създаването на прокси-сървъри и балансировачи на натоварването на базата на Pingora, е предвидена възможност за прикрепяне на callback обработчици и филтри, които позволяват управление на различните етапи на обработка на запитването, както и модификация, пренасочване, блокиране и регистриране на запитвания и отговори.

В сътрудничество с ISRG (Internet Security Research Group), учредител на проекта Let’s Encrypt и организация, която подпомага развитието на технологии за повишаване на сигурността в интернет, на базата на Pingora ще бъде създаден обратен прокси River, предназначен за приложение в критично важни елементи. на мрежовата инфраструктура. Кодът на River ще бъде написан на Rust и ще се разпространява под лицензия Apache 2.0. Разработката ще започне през второто тримесечие на 2024 година. В момента проектът е в етап на проектиране и определяне на архитектурата. Проектът се развива под ръководството на Джеймс Маннс (James Munns) от Rust Embedded Working Group.

Основната цел на проекта River е реализацията на прокси, способно да трансферира клиентски заявки към сървъри на бекенда, завършвайки входящите TLS връзки и маршрутизирайки, променяйки и филтрирайки запитванията съгласно зададените правила. Специална функция на River е многопоточната обработка на заявки, която позволява по-ефективно повторно използване на връзките в сравнение с проксита като nginx. За разширяване на функционалността на проксито и създаване на филтри ще бъде поддържано свързването на модули, компилирани във формат WebAssembly (за разработка могат да се използват всякакви програмни езици, които поддържат компилация в WASM). Форматът на конфигурацията ще се планира да бъде възможно най-прост и познат.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster