The OpenNET Project / Index page

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

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

08.04.2024 20:42

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

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

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


  1. Главная ссылка к новости (https://github.com/cloudflare/...)
  2. OpenNews: Cloudflare перешёл с NGINX на собственный прокcи Pingora, написанный на языке Rust
  3. OpenNews: Компания Cloudflare открыла код Pingora, инструментария для создания сетевых сервисов
  4. OpenNews: Релиз Tokio 1.13.0, платформы для создания асинхронных приложений на языке Rust
  5. OpenNews: Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust
  6. OpenNews: Выпуск библиотеки libuv 1.45.0 с поддержкой подсистемы io_uring
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60953-pingora
Ключевые слова: pingora, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 20:46, 08/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему не го?
     
     
  • 2.2, Аноним (2), 20:48, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    gc? нафик...
    Спасибо, что не ждава или пухтон.
     
  • 2.3, Аноним (3), 20:52, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Памяти го все таки поболя жрет, особенно если попадаешь на плохой для ГЦ паттерн использование памяти. Но как язык в сто раз проще и приятней, да и комьюнити не клуб ненависти
     
     
  • 3.4, Аноним (1), 20:55, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    есть какие-нибудь вменяемые статьи\сравнения? не просто уровень первого результата google rust vs go
     
     
  • 4.6, Аноним (3), 20:58, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Есть только опыт c++ VS go. На мой взгляд можно аппроксимировать и rust VS go.
     
  • 4.7, Аноним (3), 21:00, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если в теории - часто и много выделять память в го больно. ГЦ не успевает очищать память, т.к. освобожденное нельзя переиспользовать сразу. В плюсах подобное приводит в дефрагментации, но оно лечится кастомными аллокаторами, меморипулами и т.д.
     
     
  • 5.21, Аноним (21), 21:37, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В плюсах нет гц, ты о чем? Память там удаляется тогда, когда ты сказал ее удалить
     
     
  • 6.22, Аноним (3), 21:50, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я про частые и множественные выделения памяти в го и плюсах. ессно в плюсах штатного гц нет (хотя можно сделать :) )
     
  • 6.69, Аноним (69), 23:47, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В С++ нет встроенного GC но никто не запрещает подключить свой если нужно, к примеру SGCL.
     
  • 3.72, Анониссимус (?), 05:21, 10/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Он действительно прост, но никак не приятен. Я чуть не обблевался, когда пытался на нём что-то писать. Раст в этом смысле гораздо, гораздо лучше. Хотя и намного сложнее, да.
     
  • 2.14, Карлос Сношайтилис (ok), 21:19, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому что го непредсказуем из-за гц
     
  • 2.28, Минона (ok), 22:34, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Почему не эрланг?
     
     
  • 3.40, Аннон (?), 23:33, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Эрланг медленный. Больше серверов - больше расходов. Для CloudFlare разница значительная
     
     
  • 4.53, Минона (ok), 07:19, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Эрланг медленный. Больше серверов - больше расходов. Для CloudFlare разница значительная

    Для перекладывания байтиков норм.

     
  • 3.41, пох. (?), 23:36, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Почему не эрланг?

    неэффективный функциональный недоязык, кому он нужен-то!

    Наше будущее - за OCaml! (как только оба разбирающихся в нем специалиста вернутся из творческого отпуска для успокоения нервов, куда отправились после неудачной попытки исправить две строчки в sks keyserver)


     
     
  • 4.44, Аноним (44), 00:08, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Наше будущее - за OCaml!

    Держи краба, пох. Если ты, конечно, не прикалываешься. Я тоже стал склоняться к такой мысли. Вот его и надо было Мурзилле использовать для Servo.

     
     
  • 5.55, Ф1 (?), 08:08, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Держи краба

    Угу окамлисты так и не дождались многопоточки и породили краба.

     
     
  • 6.66, Аноним (66), 12:12, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В Сишку тоже многопоточку не завезли. Однако, это не мешает писать на C многопоточные программы. Если что, многопоточность в libpthread.
     
     
  • 7.67, Ф1 (?), 13:06, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > В Сишку тоже многопоточку не завезли.

    В OCaml в отличии от си есть gc что тянуло за собой рантайм, плюс нетривиальная модель памяти https://v2.ocaml.org/manual/memorymodel.html , и так просто библиотекой вопрос не решался, и там был свой аналог GIL как в питоне, то есть потоки есть, но рантайм не давал исполнять одновременно больше одного потока.
    В OCaml 5.0 настоящую многопоточность наконец добавили (http://ocamlverse.net/content/parallelism.html), но замороченость там повыше чем в posix threads или std::thread.

     
  • 4.54, Ф1 (?), 08:07, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Наше будущее - за OCaml!

    Сделали бы многопоточность не два года назад, а лет 10 - 15 назад, да мог бы занять гораздо более широкую нишу.

     
  • 4.56, Минона (ok), 08:09, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> Почему не эрланг?
    > неэффективный функциональный недоязык, кому он нужен-то!

    Расскажи это Максу Лапшину.

    > Наше будущее - за OCaml!

    Будущее за Racket 😎

    > (как только оба разбирающихся в нем специалиста
    > вернутся из творческого отпуска для успокоения нервов, куда отправились после неудачной
    > попытки исправить две строчки в sks keyserver)

    Что за драма?

     
     
  • 5.74, пох. (?), 20:29, 12/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Что за драма?

    https://www.opennet.me/opennews/art.shtml?num=51006
    И ты ни за что не догадаешься КАК они исправили этот баг!

    P.S. очень интересно... гугль с нескольких попыток не смог ничего на эту тему найти. Говорите, нет там цензуры?

     
  • 2.50, Я (??), 06:51, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    так получилось. но вообще как я понял го не очень подходил для решения ботлнека с которым они столкнулись при использовании нгинкса. по хорошему они бы писали это на си, но сейчас если у тебя есть что-то что хорошо пишется на си это надо писать на расте.
     

  • 1.5, пох. (?), 20:57, 08/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где ж обещаный сервер на базе этого чудо-фреймворка?
    Товарищ уходил думать концпетьюальный дизигн - так и не вернулся?

     
     
  • 2.13, Карлос Сношайтилис (ok), 21:18, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это фреймворк из которого сервер и делается. Соединяешь трейтики-кирпичики – получаешь нужный сервис.
    Смекаешь?
     
     
  • 3.26, нах. (?), 22:22, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Это фреймворк из которого сервер и делается.

    и как, много ты серверов из него уже понаделал?

    Пока что это бесполезный фреймворк, на котором вообще никакого сервера не существует. (сказания что внутри мордокниги вот этот самый код собран вместе с волшебным сервером, который вот только...нельзя никому показать - можешь свернуть трубочкой и засунуть себе в то место которым думаешь)

    Зато есть восторженные отзывы о невидимых узбеках. Ну ок...

     
     
  • 4.29, Минона (ok), 22:34, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не мордокниги а Cloudflare.
     
     
  • 5.33, Аноним (-), 22:44, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так это ж Нах))
    Ему что мордокнига, что клаудфаря.
    Сейчас еще немного набухается и будет про рабов и кнутователей рассказывать.
     
  • 5.34, пох. (?), 22:44, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Не мордокниги а Cloudflare.

    один хрен. Обе уже славны выкладыванием того что не собирается, не работает, и нахрен никому в таком виде не нужно.

    "Но зато в сто раз луччше nginx!"

     
     
  • 6.51, Я (??), 06:53, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    лучше не лучше, но один конкретный ботлнек для одной конкретной ситуации закрывает. а нужно это кому-то ещё или нет смотрите сами бесплатно и код открыт под удобной лицензией.
     
     
  • 7.68, нах. (?), 14:02, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > лучше не лучше, но один конкретный ботлнек для одной конкретной ситуации закрывает

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

    > а нужно это кому-то ещё или нет смотрите сами бесплатно и код открыт под удобной лицензией.

    так нет же кота.

    https://github.com/memorysafety/river

    На CoC и readme.md далеко не уедешь.

     
  • 4.32, Карлос Сношайтилис (ok), 22:43, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно! Кто такие Cloudflare, чтобы им верить?

    То ли дело эксперт нах. с опеннета, что видит всех насквозь! Не скрыть от него правду, не обмануть сладкими речами!

     
     
  • 5.35, пох. (?), 22:46, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Правильно! Кто такие Cloudflare, чтобы им верить?

    распространители скама, fud, а в прошлом просто крышеватели ддосеров. А может и не только в прошлом.

    Действительно, чего это им не верить! Не по делам же их судить (когда пообещали что выделили целого чувака показать всем как нада писать сервер, но... он почему-то где-то прое...лся)

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

     
     
  • 6.37, Карлос Сношайтилис (ok), 23:09, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > распространители скама, fud, а в прошлом просто крышеватели ддосеров.

    Ты оцениваешь технические компетенции по шкале морально-этических принципов? А ты хорош!

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

    "Фантазер, ты меня называла.
    Фантазер, только этого мало!"

     
     
  • 7.38, пох. (?), 23:27, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я оцениваю скам, fud - по шкале скама и fud'а

    А работающий сервер - оценю, когда и если он будет. Но уже с поправкой на предшествовавшие ему scam/fud.

    Ну и да - твой слив засчитан, можешь дальше не юлить. Ничего ты не соберешь, разумеется.

     
     
  • 8.46, Аноним (-), 00:28, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А как ты оцениваешь качества своего паспорта Не могут же хорошие люди быть с пл... текст свёрнут, показать
     
  • 8.47, Карлос Сношайтилис (ok), 00:39, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    пох , дружище, ну что же ты так Всю веру в адекватных троллей рушишь После т... текст свёрнут, показать
     
  • 4.45, Аноним (45), 00:10, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Заявлять

    > Пока что это бесполезный фреймворк

    после строки:

    > Построенный при помощи Pingora прокси около года используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду

    Да ты просто гений логики!

    > распространители скама, fud, а в прошлом просто крышеватели ддосеров. А может и не только в прошлом.

    Значит отменные сетевые специалисты. Значит хороший фреймворк. "Надо брать" (ц)

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

     

  • 1.8, Анонин (-), 21:03, 08/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Крутой проект.

    Во-первых, проверенный в проде и именно на нормальных нагрузках, а не на подкроватном серваке каким-то васяном.
    Во-вторых, правильная лицензия. Правда тут с nginx паритет.
    В-третих, тут соседи посчитали, что на 30k всего 61 unsafe, из которых минимум 22 - FFI с сишными либами, вроде OpenSSL, а остальные лень смотреть.

    Ну и самое большое достоинство - современный язык, который помогает программистам писать с меньшим количеством ошибок.

     
     
  • 2.12, Аноним (12), 21:17, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> язык, который помогает программистам писать с меньшим количеством ошибок.

    больше думать эти "погромисты" не пробовали?

     
     
  • 3.23, Анонин (-), 21:50, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Думанье, как и внимание, ресурс лимитированный.
    Его нужно тратить с максимальной пользой.
    И просчитывание владения в уме для тысяч переменных - явно не входит в эту категорию.

    Вот сишники 30+ лет пытаются думать, но что-то не выходит каменный цветок.
    То use-after-free (https://www.opennet.me/opennews/art.shtml?num=60891), то за пределы буфера (https://www.opennet.me/opennews/art.shtml?num=60927).
    И живут же по десятку лет!

     
     
  • 4.61, 12yoexpert (ok), 10:58, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Думанье, как и внимание, ресурс лимитированный

    проблемы гуманитариев - проблемы гуманитариев, зачем проблемы умственно отсталых на техническом ресурсе? идите в репу раста

     
  • 3.52, Я (??), 06:56, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    щас бы тратить самое ценное что есть у разработчика тоесть время на бесполезные понты..
     
  • 3.57, Ф1 (?), 08:15, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >больше думать эти "погромисты" не пробовали?

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

     

  • 1.19, Аноним (21), 21:34, 08/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust

    Это, кстати, все благодаря линуксу и его сетевой подсистеме, написанной на C

     
     
  • 2.25, Аноним (-), 22:06, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На том самом которому можно сказать спасибо за такие отвратительные уязвимости ... большой текст свёрнут, показать
     
     
  • 3.27, Аноним (27), 22:33, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Use *BSD
     
     
  • 4.31, Минона (ok), 22:41, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так они тоже написаны на си.
     
  • 3.58, Аноним (3), 08:30, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    можно подумать в ядре на расте меньше проблем будет, порог входа то ниже
     
  • 2.30, Минона (ok), 22:40, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее вопреки.
     
  • 2.36, Карлос Сношайтилис (ok), 22:49, 08/04/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Благодаря С приходится использовать unsafe, ибо ядро со своей сишкой нифига не гарантирует
     
  • 2.59, Юрий (??), 10:10, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Толсто накинул. Утритесь ребята! В GNU/Linux все так быстро благодаря электричеству, а не Си-шке.
     
     
  • 3.64, Аноним (66), 11:47, 09/04/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Там скорость сильно зависит от того, в каких чипах это электричество бегает.
     

  • 1.43, Аноним (44), 00:01, 09/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    При всей её безопасТности, у Pingora хоть лицензия получше, чем у Nginx.
     
  • 1.49, Аноним (-), 04:25, 09/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Было бы клёво собрать на нём Kubernetes Ingress. Ощущение, что может быть прям очень клёвым решением.
     
  • 1.60, 12yoexpert (ok), 10:55, 09/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    чем бы дитя ни тешилось, лишь бы своими кривыми руками в нормальные проекты не лезло
     

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



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

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