The OpenNET Project / Index page

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

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

12.05.2024 09:11

Компания Cloudflare опубликовала второй выпуск фреймворка Pingora, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке 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).
  • Готовые Rust-пакеты для создания HTTP-прокси, работы с сетевыми протоколами, разбора заголовков HTTP, учёта и ограничения трафика, балансировки нагрузки, работы с распределённой хэш-таблицей Ketama, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.

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

  • Добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2.
  • Добавлена возможность изменения размера буфера входящих пакетов для TCP.
  • Добавлена функция body_bytes_read().
  • Добавлен фильтр cache_not_modified_filter.
  • Добавлена возможность ведения лога TLS-ключей.
  • Добавлена callback-функция purge_response.


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


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, tcpip (??), 10:47, 12/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Почему не на Golang?
     
     
  • 2.2, YetAnotherOnanym (ok), 11:05, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А нужен на Golang? Почему не на Rust?
     
     
  • 3.22, Аноним (22), 15:43, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нужен на C++.
     
  • 2.3, Аноним (3), 11:10, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.
     
     
  • 3.6, Аноним (6), 13:10, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Наверняка gc изо всех сил молотил. Если суметь написать без его постоянных вызовов, то скорость от C не отличается, но это надо уметь.
     
     
  • 4.7, Аноним (7), 13:18, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Обобщу: если суметь <ааа>, то <bbb>, но это надо уметь.
     
     
  • 5.14, Аноним (14), 13:48, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    К сожалению, на трёх самых популярных сегодня языках >95% писать не умеет.

    С — каждый день новые переполнения буфера.

    Java — все труЪ ынтерпрайз приложения, с которыми мне приходилось сталкиваться страдают либо исчерпанием пула потоков (потому что лень таймауты ставить), либо бесконтрольным потреблением памяти с последующим ООМ.

    JavaScript — ну, наверное, все видели тромозящие и жрущие память/проц сайты, а также electron-ные изделия.

     
     
  • 6.37, BeLord (ok), 09:46, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема Java в том, что разработчиков хороших поискать надо, навалом тех, кто понятия не имеет как архитектура x86 устроена и лабающих дичь, считая, что виртуальная машина волшебница и их говнокод превратит в конфетку-)))
    Про С и переполнение буфера, знаю живой проект часть навигации написано на С, спутник летает с 2014 года и проблем с буфером не замечено, но писали этот проект мужики, которым пора на пенсию,а молодняка умеющего писать на С пока не замечено.
     
     
  • 7.47, Прохожий (??), 14:42, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Проблема в том, что многие опытные разработчики, убившие на освоение языка/фреймворка многое количество часов из своей жизни, считают, что и другие должны идти этим же путём. Но это кустарный подход. Правильный способ развивать такой инструментарий, который позволял бы писать программы с меньшими усилиями. О молодёжь это понимает, поэтому и не хочет заморачиваться.
    Идеальный компьютер - это тот, который может угадывать мысли человека.
     
     
  • 8.62, Аноним (62), 18:23, 17/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Правильные, одобренные партией мысли... текст свёрнут, показать
     
  • 4.8, Аноним (14), 13:33, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Наверняка gc изо всех сил молотил. Если суметь написать без его постоянных вызовов, то скорость от C не отличается, но это надо уметь.

    Будет даже быстрее, чем в С. Потому что в С есть вызовы free(), которые по сути являются тем же GC.

     
     
  • 5.33, Аноним (33), 00:03, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    free не является gc, ему не нужно считать ссылки и выявлять неиспользуемые объекты, он просто объявляет системе, что область памяти по определенному адресу определенного размера можно снова считать свободной. Ровно то же будет происходить и в go, даже если написать код так, чтобы сборщик мусора не использовался. Память все равно в общем случае нужно освобождать, если она выделялась. Так что ваше утверждение о free некорректно. Нужны какие-то другие причины считать Go быстрее C или наоборот.
     
     
  • 6.56, _oleg_ (ok), 14:29, 14/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > он просто объявляет системе, что область памяти по определенному адресу определенного размера можно снова считать свободной.

    На практике, даже не системе. Обычно, для производительности, реализации malloc'а запрашивают у ОС память не маленькими кусками, даже если запрошен 1 байт. ЧТо бы не гонять каждый последующий раз к ядру за доп.памятью, следующие вызовы malloc берут её из этого же куска, вообще без обращения к ядру. Ну и free поэтому, и не только, не возвращает весь кусок ОС. Т.к. его часть может ещё использоваться и, даже если не так, то она может вот-вот пригодиться при следующем malloc. Поэтому, если в работе программы обычное дело это набирание кучи памяти, которая потом не нужна, её можно просто перезапускать с помощью execve() какого-нибудь раз в сутки или вроде того для того, что бы неиспользуемая память на самом деле вернулась к ОС.

     
  • 5.43, Аноним (43), 11:30, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вызовы free(), которые по сути являются тем же GC.

    ну нихрена себе

     
  • 3.10, Аноним (14), 13:39, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности

    Можно было ещё сравнить скорость sleep().

    И тот, и другой тесты ничего не говорят о скорости проксирования.

     
  • 2.4, Аноним (4), 12:41, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На golang тоже есть, не переживай.
     
  • 2.5, Аноним (5), 13:05, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • –7 +/
    не всем нравиться жрать goвно с gc.
     
     
  • 3.35, Аноним (35), 09:37, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    поэтому ты его без gc жрёшь, ясно-понятно
     
  • 2.13, Аноним (14), 13:43, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    К вопросу о производительности: вот в этом тесте https://github.com/gaplo917/load-balancer-benchmark
    go-шный traefik показывает такую же производительность, что и сишный апач.
     
     
  • 3.20, gdg (??), 15:39, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И унизительно проигрывает сишным энжинэксу и хапрокси
     
     
  • 4.28, Аноним (28), 18:12, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это говорит лишь о том, что решают алгоритмы и оптимизации, а не ЯП.
     
     
  • 5.32, Аноним (14), 22:39, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну хоть кто-то понял намёк.
     
  • 3.21, Аноним (21), 15:39, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это говорит о херовой реализации апача
     
  • 3.26, Tron is Whistling (?), 16:57, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что там с фичами? Так-то легковуху с комбайном сравнить можно, но вопрос в задачах :)
     
     
  • 4.31, Аноним (14), 22:38, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Плюс-минус один и тот же класс. Traefik — тоже навороченный комбайн, который дофига всего умеет.
     
     
  • 5.57, Tron is Whistling (?), 09:28, 15/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Логичнее с haproxy сравнивать в этом контексте.
    Потому что сравнивать генерализованный HTTP(S/2)-сервер с проксёй - ну так себе затея.
     
  • 5.58, Tron is Whistling (?), 09:29, 15/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и кстати да, если у тебя не CDN и не масспрокси с тысячами коннектов в минуту, то разницы с апачем просто не заметишь.
     

  • 1.9, Аноним (9), 13:36, 12/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Читаю такие новости и не понимаю сабж можно использовать для стартапа, как на нём заработать?
     
     
  • 2.11, Аноним (14), 13:40, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Совсем ленивые стартаперы пошли, хотят, чтобы им ещё и идею на блюдечке принесли.
     
     
  • 3.16, Аноним (16), 13:53, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    какие ещё идеи, сразу деньги неси!
     
     
  • 4.19, YetAnotherOnanym (ok), 15:36, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И черешню заодно тоже неси!
     
  • 4.25, Аноним (22), 15:51, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так это ж и есть идея ;) Не новая идея, но спасибо Мавроди.
     
  • 3.17, Аноним (17), 14:08, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну потому что это не стартап в прямом смысле. Авторы сабжа уже его используют, но не пойму для чего. Кому хуже если на рынке появится ещё один игрок? Конкуренция это плохо?
     
  • 2.23, Аноним (23), 15:44, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    CloudFlare же как-то зарабатывает. Что тебе мешает?
     
     
  • 3.30, Аноним (17), 18:59, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В моём понимании Клаудфаре харабатывает на ДДОС устойчивом хостинге. У меня конечно есть 5 серверов дома, но на хостиг я ещё не готов.
     
     
  • 4.41, Аноним (41), 11:20, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты вообще ничего не понял. Зарабатывает она на бигдате и датамайнинге. Точнее, не зарабатывает, а получает, будучи в сущности дотационной. На коммерческих рельсах половину интернета обслуживать бесплатно - это разговоры в пользу бедных.
     
     
  • 5.50, Аноним (23), 17:54, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нет Для этого нужно куда больше вычислительной мощности, чем располагает CF Т... большой текст свёрнут, показать
     
     
  • 6.61, Аноним (61), 13:36, 16/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так они не сами обрабатывают, а только собирают Собственно, сама необходимос... большой текст свёрнут, показать
     
  • 4.49, Аноним (23), 17:43, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Они не занимаются хостингом.

    Если хочешь понять, как кто-то зарабатывает деньги, надо начинать с бухгалтерии. CF обязана публиковать финансовую информацию минимум 4 раза в год. Начни с неё, а там разберёшь дальше на какие цифры обращать внимание.

     
  • 2.40, Аноним (41), 11:18, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Учреди ООО ПЕНДОРА и пихай прогу в минцифры, в реестр отечественного ПО. Сейчас все так делают!
     

  • 1.18, Аноним (18), 14:36, 12/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чо-т так себе маркетинг, сплэш клаудфлары буквально самое бесячее, что есть в нынешнем вебе. Лучше б анонимно выложили.
     
     
  • 2.29, Аноним (28), 18:13, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Клаудфлара как раз таки контора с хорошей репутацией, много чего сделали для опенсорса и технологий.
     
     
  • 3.39, Аноним (39), 10:36, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Например, развлекают капчей пользователей малоизвестных опенсурсных браузеров.
     
     
  • 4.51, Аноним (23), 18:14, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Правильно делают. Для е-коммерции перое дело в борьбе со скамом — бан тора, стран третьего мира, и любого нестандартного браузера. 3½ нетакусика пусть в другом месте шопятся. Я не Таргет и не Амазон, чтобы не замечать потери материалов, денег и, главное, времени на васьков с ворованными кредитками.
     
     
  • 5.53, нах. (?), 14:17, 14/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    васек с ворованной кредиткой - зайдет к тебе с чистенькой виртуалочки с единственноверным браузером и с ip из residential блока правильной страны (недорого, $15 в месяц, а кредитка все равно краденая)

    А вот я просто обзову тебя п-сом и закрою вкладку, не желая тратить на тебя время.

    мозги у местных эээ-коммерсантов... да в общем примерно как и большинства клаудшмариных клиентиков.

    Амазон как раз очень даже замечает потери денег, Безнос еще в 90е показал что считать ооочень даже умеет, поэтому ему даже самый помойный клиент интересен, если эти самые деньги заплатит.

     
  • 3.42, Аноним (41), 11:22, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ЦРУшники вообще классные ребята, любят технологии.
     
     
  • 4.52, нах. (?), 14:11, 14/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    црушники - классные, но боюсь клаудшмару им спонсировать запрещено законодательством, да и не особенно интересно (им все то же самое гугель в готовом виде продаст)

    тут скорее минэнергетики или еще какая контора из тех что не на слуху.

     

  • 1.36, Аноним (35), 09:40, 13/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Поэтому там вечно какие-нибудь сайты не доступны? Особенно часто вижу умерший anistar
     
     
  • 2.38, Аноним (38), 10:12, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    дык оплачивать надо вовремя
     
  • 2.48, errandrunner (?), 15:42, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    у anistar спрашивать надо
     
  • 2.54, нах. (?), 14:19, 14/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    потому что девляпсы спрятавшие сайт за клаудшмарой думают что она за них и поломанные докеры будет чинить. А она вот... выводит красивую картиночку про то, как у тебя - все в порядке, у них - просто замечательно, а этот... канистер или кто он там - вот, лежит-с - опять.

    А те кто умеют в неложащиеся сайты - либо умеют без клаудшмары, либо используют ее в крайних случаях и осторожно.

     

  • 1.55, нах. (?), 14:20, 14/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а веб-сервер на этом чудо-фреймворке - так и не выпустили. Где, кстати, тот чувак что уходил думать консептуяльный дизигн, его кто-нибудь видел?

     
     
  • 2.59, Tron is Whistling (?), 09:40, 15/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А скорее всего по той же причине, по которой нгинх так и не вписался никуда, кроме узкой ниши проксей и статики.
     
     
  • 3.60, нах. (?), 10:23, 16/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А скорее всего по той же причине, по которой нгинх так и
    > не вписался никуда, кроме узкой ниши проксей и статики.

    ну и где хотя бы прокся и статика? У клаудшмары осталась? И мамой клянутся что точнаточно использует ентот чюдо-фреймворк, но мы вам его не покажем?

    Ну, вотъ.


     
     
  • 4.63, Tron is Whistling (?), 16:10, 18/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Клаудфлара, сидиэны разные, но в целом - да, там можно хоть чёрта лысого использовать, в общем случае кроме вот таких узких мест оно неприменимо. Стану сидиэном - обязательно займусь изучением вопроса :)
     

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



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

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