Преди няколко дни Cloudflare представен, чрез публикация в блог, решението си да пусне изходния код на своята рамка „Pingora“, специално проектиран за разработване на сигурни и високоефективни мрежови услуги, както и програмируеми мрежови системи на езика Rust.
Тази рамка предоставя готови Rust пакети, които улесняват създаването на HTTP прокси, работа с мрежови протоколи, анализиране на HTTP заглавки, отчитане и ограничаване на трафика, балансиране на натоварването, управление на разпределената хеш таблица на Ketama, поддържане на кеш в RAM и асинхронна обработка на изчаквания. В допълнение към поддръжката на HTTP, Pingora позволява създаването на услуги, използващи собствени протоколи или UDP/TCP.
Какво е Pingora?
Pingora е асинхронна многонишкова рамка на Rust, предназначена за безопасно и ефективно изграждане на HTTP прокси услуги.. От пускането си на пазара Pingora е широко тестван и използван на системи с високо натоварване, като прокси, използван в мрежата за доставка на съдържание на Cloudflare, обработвайки над 40 милиона заявки в секунда за повече от година.
Cloudflare споменава, че сигурността е ключов приоритет на проекта, поради което е избран езикът Rust, за да се намали вероятността от грешки, свързани с паметта. Освен това е обърнато внимание на ефективността, производителността и разширяемостта, което позволява интегрирането на филтри и манипулатори за обратно извикване за контролиране на различни етапи от обработката на заявката, както и модифициране, пренасочване, блокиране и регистриране на заявки и отговори.
Pingora е библиотека и набор от инструменти, а не изпълним двоичен файл. С други думи, Pingora е двигателят, който задвижва една кола, а не самата кола. Въпреки че Pingora е готова за производство за промишлена употреба, ние разбираме, че много хора искат уеб услуга до ключ, с включени батерии и с опции за конфигуриране без код или с нисък код. Изграждането на това приложение върху Pingora ще бъде фокусът на нашето сътрудничество с ISRG за разширяване на обхвата на Pingora. Очаквайте бъдещи съобщения за този проект.
Сред ключови предимства на Pingora, се открояват следните:
- Сигурност на паметта: Pingora предлага по-безопасна за паметта алтернатива в сравнение с услугите, написани на C/C++. Това води до по-малка вероятност от грешки в кодирането, които биха могли да компрометират сигурността на системата.
- Оптимизирана производителност: Благодарение на своята многопоточна архитектура, Pingora е бърза и ефективна, спестявайки ресурси на процесора и паметта. Това е особено полезно за работни натоварвания, чувствителни към производителността и разходите.
- Разширено персонализиране: Приложните програмни интерфейси (API), предоставени от Pingora, са силно програмируеми, което позволява широко персонализиране за създаване на персонализирани и усъвършенствани шлюзове или балансьори на натоварването.
Пингора предлага няколко ключови функции, като например многонишкова обработка на заявки в асинхронен режим, поддръжка за HTTP/1 и HTTP/2 (с планове за HTTP/3), gRPC и WebSocket прокси, сменяеми балансьори на натоварването, промяна на конфигурацията без рестартиране, актуализиране на код без прекъсване на връзките, стратегии за превключване на натоварването в случай на повреда (failover), интеграция със системи за наблюдение и регистриране (като Syslog, Prometheus, Sentry, OpenTelemetry) и поддръжка за TLS криптиране чрез библиотеките OpenSSL и BoringSSL C.
Подчертани характеристики на Pingora
- Поддръжка за HTTP/1 и HTTP/2 прокси, gRPC и websocket.
- Персонализируеми стратегии за балансиране на натоварването и отказ.
- Интеграция с OpenSSL и BoringSSL библиотеки за съответствие и сигурност.
- Филтри и обратни извиквания за персонализиране и обработка на заявки.
- Грациозно рестартиране без прекъсване за безпроблемни актуализации.
- Интегриране с инструменти за наблюдение като Syslog, Prometheus, Sentry, OpenTelemetry и др.
И накрая, Cloudflare споменава, че си сътрудничи с проекта Prossimo на групата за изследване на интернет сигурността (ISRG) за напредък в приемането на Pingora в критична интернет инфраструктура, като по този начин допринася за по-сигурен и надежден интернет за всички.
Ако сте заинтересовани да научите повече за това, трябва да знаете, че кодът е написан на Rust и публикувано под лиценз Apache 2.0, можете също да се консултирате с публикацията на Cloudflare В следващия линк.