The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Pingora 0.4, фреймворка для создания сетевых сервисов

02.11.2024 22:06

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

Основные возможности Pingora:

  • Поддержка HTTP/1 и HTTP/2 (в планах HTTP/3), а также возможность создания сервисов, использующих свои протоколы или UDP/TCP.
  • Поддержка многопоточной обработки запросов в асинхронном режиме.
  • Возможность прикрепления callback-обработчиков и фильтров, позволяющих управлять различными стадиями обработки запроса, а также изменять, перенаправлять, блокировать и журналировать запросы и ответы.
  • Проксирование gRPC и WebSocket.
  • Подключаемые балансировщики нагрузки.
  • Возможность изменения конфигурации без перезапуска.
  • Поддержка обновления кода приложения без разрыва соединений.
  • Средства для переключения нагрузки в случае сбоя (failover).
  • Интеграция с различными системами мониторинга и ведения логов (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Поддержка TLS-шифрования (применяется OpenSSL, BoringSSL или Rustls).
  • Готовые Rust-пакеты для создания HTTP-прокси, работы с сетевыми протоколами, разбора заголовков HTTP, учёта и ограничения трафика, балансировки нагрузки, работы с распределённой хэш-таблицей Ketama, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.

Среди изменений в новой версии:

  • Начальная поддержка криптографической библиотеки Rustls, использующей криптопровайдеров на базе библиотек aws-lc-rs и ring, основанных на BoringSSL.
  • Экспериментальная поддержка платформы Windows.
  • Режим фиктивного TLS (dummy TLS), который можно применять в ситуациях, когда невозможно использовать реальную реализацию TLS.
  • Добавлена поддержка модуля gRPC-web для трансляции запросов клиентов gRPC-web в запросы к серверу gRPC.
  • Предоставлена возможность обработки соединений H2C (HTTP/2 поверх голого TCP, без шифрования) и HTTP/1 на одном сетевом порту.
  • Добавлена возможность подключения собственных реализаций функции connect() для изменения поведения при установке сетевого соединения, например, для выставления дополнительных опций для сокета или симуляции ошибок при тестировании.
  • Предоставлена возможность игнорирования информационных ответов при проксировании, таких как ответы с заголовком "Expect: 100-continue".
  • Добавлена поддержка распаковки ответов, сжатых методом gzip.
  • Реализован учёт состояния бэкенда в целях мониторинга.
  • Добавлена возможность привязки к диапазону локальных портов.


  1. Главная ссылка к новости (https://github.com/cloudflare/...)
  2. OpenNews: Компания Cloudflare открыла код форка PgBouncer
  3. OpenNews: Компания Cloudflare открыла код Pingora, инструментария для создания сетевых сервисов
  4. OpenNews: Cloudflare перешёл с NGINX на собственный прокcи Pingora, написанный на языке Rust
  5. OpenNews: Оценка популярности IPv6 в трафике Cloudflare
  6. OpenNews: По статистике Cloudflare 6.8% интернет-трафика является потенциально мусорным
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62163-pingora
Ключевые слова: pingora, cloudflare
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 22:46, 02/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Статистика за октябрь 2024:
    https://www.netcraft.com/blog/october-2024-web-server-survey/
     
     
  • 2.21, Аноним (21), 10:22, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Такое стремительное падение доли нжинкса это просто позор какой-то .  
     
     
  • 3.36, нах. (?), 19:20, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    other - вероятнее всего именно nginx, но импортозамещеный.

     

  • 1.3, cat666 (ok), 22:52, 02/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

     ....ответы скрыты (2)

  • 1.6, нах. (?), 23:24, 02/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так где тот чувак которого они назначили налабать на этом "фреймворке" - целиком сервер? Он еще "консептуяльный дизигн" удалился продумать. До сих пор не возвращался?!

     
  • 1.9, Аноним (-), 00:33, 03/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –6 +/
     
  • 1.14, 12yoexpert (ok), 04:20, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    по размеру образа видно, что там есть раст
     
     
  • 2.17, Аноним (17), 06:00, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пингора - библиотека. В ейных исходниках есть пример, который можно собрать и запустить и его размер 11 мегабайт.

    Есть приложение сделанное поверх Пингоры - River. Если его собрать, получается бинарь размером 23 мегабайта, но там хз что кроме Пингоры добавили.

    Про какой "образ" речь?

     
     
  • 3.22, Аноним (21), 10:25, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Библиотека на языке на котором невозможно написать нормальную совместимую библиотеку. Ор дня.
     
  • 3.28, Аноним (28), 14:27, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >пример, который можно собрать и запустить и его размер 11 мегабайт.

    Ну как раз у STM8 потолок роста памяти 16 мегабайт. Правда вот пол - 1к, а максимум 8к. Короче, STM8 не готов для таких библиотек и универсальный язык программирования так и остаётся универсальным.

     
     
  • 4.31, Аноним (31), 15:47, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >>пример, который можно собрать и запустить и его размер 11 мегабайт.
    > Ну как раз у STM8 потолок роста памяти 16 мегабайт. Правда вот
    > пол - 1к, а максимум 8к. Короче, STM8 не готов для таких библиотек и универсальный язык программирования так и остаётся универсальным.

    Ты нам сейчас покажешь запуск nginx на STM8 и/или обработку на ём хотя бы пары мульёнов запросов в секунду^W час ... или к чему было это натягивание совы на глобус?

     
     
  • 5.38, Аноним (28), 20:34, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот-вот, си натянуть можно в любом виде, а убийца си уже на стм8 не натягивается, видимо, потому что язык для всяких там клаудфлар, а не для людей.
     
     
  • 6.39, Аноним (31), 21:30, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот-вот, си натянуть можно в любом виде, а убийца си уже на

    Вот-вот, как только великих Военов^W "оналитеков" опеннета просят потдвердить, что их "выводы" не основаны исключительно на их же фантазиях - начинается юлеж и спрыги.

     
  • 3.44, 12yoexpert (ok), 01:15, 04/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Про какой "образ" речь?

    глаза разуй и перечитай новость

     

  • 1.19, Аноним (19), 08:34, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >прокси уже более двух лет используется в сети доставки контента Cloudflare вместо nginx

    Слава богу!

     
  • 1.20, YetAnotherOnanym (ok), 09:46, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Осталось прикрутить к ней собственный супервысокопроизводительный парсер езернет-фреймов и пусть читает/пишет напрямую в пци через какой-нибудь дпдк.
     
  • 1.23, Аноним (23), 10:43, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто то как ингресс контролер в кубере пробовал?
     
     
  • 2.45, Аноним (7), 22:07, 04/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Специализированный ингресс для нашего проекта. Работает в пересчёте на тысячу qps лучше Nginx — меньше задержки, меньше потребление ресурсов. Но вам наш опыт никак не поможет: мы для себя считали и меряли на своих же нагрузках и под свои внутренние процессы, так что берите Envoy или HAProxy, не ошибётесь.
     

  • 1.24, Аноним (24), 11:09, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >palant

    Так вот где автор AdBlock Plus теперь работает!

     
  • 1.25, Аноним (25), 12:20, 03/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сколько не читаю новости про сабж, не могу понять, для чего это. Пожалуйста, объясните на пальцах, на примере, мол с помощью сабжа можно поднять то-то и то-то.
     
     
  • 2.26, Аноним (21), 12:23, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Цель не зависит от желания левой пятки разрабов нжинкса. А Раст обеспечивает что кроме тебя разрабов не будет.
     
  • 2.29, Аноним (28), 14:37, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    С помощью сабжа ты можешь переписать веб-сервисы своей веб-студии на раст, ездить на конференции и сбежать потом в закат в CloudFlare до того, как всплывут самые страшные из твоих багов. Если ещё внезапно что-то напишешь, что осыпят деньгами (но для этого надо либо грамотного маркетолога, либо переспать в кровати с ответственным за фонды), будешь лежать на тропическом пляже с двадцатым промаксом, свитчнувшись в менеджеры или основав курсы по пингоре с растом.
    Но это если повезёт. А вот если не повезёт, то ты будешь рабски трудиться за копейки и своим же трудом исправлять в чужом фреймворке баги за миску гречки. И когда придут более молодые, ушлые разработчики с новым фреймворком (и, возможно, новым языком), можно отправиться расхищать помойку у пятёрочки.
     
     
  • 3.33, Аноним (33), 18:04, 03/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот это я понимаю детальный анализ. Хорошо что у меня нет веб студии.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру