LINUX.ORG.RU

Cloudflare выпустила первый публичный релиз Pingora v0.1.0

 ,

Cloudflare выпустила первый публичный релиз Pingora v0.1.0

0

4

5 апреля 2024 года Cloudflare представила первый публичный релиз открытого проекта Pingora v0.1.0 (уже v0.1.1). Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare (вместо применения Nginx). Исходный код Pingora опубликован на GitHub под лицензией Apache 2.0.

Pingora предоставляет библиотеки и API для создания сервисов поверх HTTP/1 и HTTP/2, TLS или просто TCP/UDP. В качестве прокси-сервера он поддерживает сквозное проксирование HTTP/1 и HTTP/2, gRPC и WebSocket. Поддержка HTTP/3 — в планах. Pingora также включает в себя настраиваемые стратегии балансировки нагрузки и аварийного переключения. Чтобы соответствовать требованиям и безопасности, он поддерживает как широко используемые библиотеки OpenSSL, так и BoringSSL, которые соответствуют требованиям FIPS (федеральных стандартов обработки информации США) и пост-квантового шифрования.

Помимо этих функций, Pingora предоставляет фильтры и обратные вызовы, позволяющие пользователям полностью настраивать то, как сервис должен обрабатывать, преобразовывать и пересылать запросы.

В рабочем режиме Pingora обеспечивает плавный перезапуск без простоев для самостоятельного обновления, не теряя ни одного входящего запроса. Syslog, Prometheus, Sentry, OpenTelemetry и другие необходимые инструменты наблюдения легко интегрируются с Pingora.

Возможности Pingora: использование Async Rust, поддержка HTTP 1/2 end to end proxy, TLS over OpenSSL или BoringSSL, gRPC и проксирование веб-сокетов, Graceful reload, настраиваемые стратегии балансировки нагрузки и аварийного переключения, поддержка различных инструментов мониторинга.

В версии Pingora v0.1.1 исправлены ранее обнаруженные ошибки, улучшена производительность алгоритма pingora-ketama, добавлено больше бенчмарков TinyUFO и тестов для pingora-cache purge, ограничен размер буфера для журналов ошибок InvalidHTTPHeader, а также исправлены опечатки и внесены необходимые исправления в комментариях и документации проекта.

>>> Подробности

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

В продакшене Pingora потребляет примерно на 70% меньше CPU и на 67% меньше памяти по сравнению с нашим старым сервисом с той же нагрузкой по трафику.

Как понимаю, речь о NGINX в понимании старый сервис?

One ★★★★★
()
Ответ на: комментарий от One

Я помню, вроде на ЛОРе, лет 20 назад, хз точно когда, когда появился ngnix народ смотрел его сырцы и давался диву. У них был вопрос, а это вообще программист писал ? Так что я думаю написать медленнее это нужно умудриться.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Код у nginx нельзя назвать верхом лаконичности, но производительность его весьма неплоха. Так что не надо грязи, пожалуйста.

А вот поделка на Rust, вдруг оказавшаяся на 70% эффективней кода, отточенного с точки зрения производительности годами, не вызывает ничего кроме сожаления как минимум в отношении их PR менеджеров.

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer

Ну я не хотел грязи, просто вспомнилось почему то, и вроде народ жаловался на простыни PUSH и POP в нем. Очень давно, смутно помню.

mx__ ★★★★★
()
Ответ на: комментарий от One

У них на голанге вроде был сервис, судя по старым их статьям, в том числе про graceful обновление

cobold ★★★★★
()
Ответ на: комментарий от One

В продакшене Pingora потребляет примерно на 70% меньше CPU и на 67% меньше памяти по сравнению с нашим старым сервисом с той же нагрузкой по трафику.

Не поверю ни разу. Либо прошлый сервис на го был написан как попало (но в это тоже не поверю). Основная нагрузка в проксяз связана с шифрованием - все остальное копейки на этом фоне.

stave ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.