The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Cloudflare перешёл с NGINX на прокcи Pingora, написанный на языке Rust, opennews (??), 16-Сен-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


3. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +33 +/
Сообщение от Аноним (3), 16-Сен-22, 11:06 
В длиннющеей простыне новости трогательно проигнорировано то, что NGINX до сих пор без кривых патчей и такой-то матери не поддерживает QUIC, который, на минуточку, форсится Cloudflare изо всех сил, и которая сделала его reference-реализацию QUICHE.

Поэтому логично, что в какой-то момент они устали заниматься штопанием тришкиного кафтана.

Rust тут деталь реализации.

Ответить | Правка | Наверх | Cообщить модератору

7. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +6 +/
Сообщение от Аноним (7), 16-Сен-22, 11:11 
С QUIC в nginx у Cloudflare проблем нет, они ещё три года назад соответствующий модуль для nginx написали (https://www.opennet.ru/opennews/art.shtml?num=51695) и успешно его использовали.
Ответить | Правка | Наверх | Cообщить модератору

8. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +2 +/
Сообщение от Аноним (8), 16-Сен-22, 11:13 
Так пишете, будто только cloudflare его активно продвигает. И будто что-то плохое. И да, выходит написать с нуля на rust проще, чем поддерживать nginx. Отодвинуть rust как "деталь реализации" у вас плохо получилось.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

102. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +6 +/
Сообщение от НяшМяш (ok), 16-Сен-22, 12:59 
Не совсем с нуля, они использовали готовый асинхронный рантайм tokio. Но, в то же время отказались от hyper - реализации http протокола, просто потому что она слишком "корректная", что для сервера плюс, а для прокси минус.
Ответить | Правка | Наверх | Cообщить модератору

16. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +7 +/
Сообщение от ИмяХ (?), 16-Сен-22, 11:23 
Ничего страшного. Самое главное в каждой новости не менее трёх раз упомянуть о безопасности при использовании Rust.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

110. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +7 +/
Сообщение от Neon (??), 16-Сен-22, 13:12 
Очередная модная хрень. Раньше носились с той же Java как дурни с торбой. Теперь на роль прелести у них временно Rust назначен.)))
Ответить | Правка | Наверх | Cообщить модератору

268. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –1 +/
Сообщение от Прохожий (??), 17-Сен-22, 08:38 
Не просто модная хрень. А исключительно полезная модная хрень, что и демонстрирует статья. Выигрыш был получен по всем фронтам: и по стабильности, и по производительности. На Java такое было бы невозможно, скорей всего.
Ответить | Правка | Наверх | Cообщить модератору

290. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +1 +/
Сообщение от Аристарх (??), 17-Сен-22, 13:23 
Чушь полная! Раст там вообще сбоку-припёку. РОВНО такой же эффект можно было добиться простым Си. Выйгрыш-то произошёл исключительно за счёт архитектуры! Ну и дебильный Луа убрали - это само собой надо было делать.
Ответить | Правка | Наверх | Cообщить модератору

307. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –2 +/
Сообщение от Аноньимъ (ok), 17-Сен-22, 15:38 
>такой же эффект можно было добиться простым Си

Нельзя.
Можно добиться другого эффекта, прострела ноги и часто головы.

Ответить | Правка | Наверх | Cообщить модератору

385. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –1 +/
Сообщение от aname (?), 20-Сен-22, 10:29 
Попробуйте использовать Си по назначению- программировать на нём программы
Ответить | Правка | Наверх | Cообщить модератору

312. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Аноним (312), 17-Сен-22, 16:28 
Напиши тоже самое на Си.
Выучи Си и напиши
Ответить | Правка | К родителю #290 | Наверх | Cообщить модератору

324. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –2 +/
Сообщение от Прохожий (??), 17-Сен-22, 17:09 
Ещё раз, для тех, кто в танке. Выигрыш по производительности был получен за счёт архитектуры. А выигрыш в стабильности работы - за счёт смены ЯП.
Ответить | Правка | К родителю #290 | Наверх | Cообщить модератору

367. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +2 +/
Сообщение от Аноним (367), 19-Сен-22, 06:53 
> выигрыш в стабильности работы - за счёт смены ЯП

Ничоси, а архитектура на стабильность не влияет уже? Фанатики такие фанатики.

Ответить | Правка | Наверх | Cообщить модератору

366. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +1 +/
Сообщение от Аноним (367), 19-Сен-22, 06:52 
> Выигрыш был получен по всем фронтам: и по стабильности, и по производительности.

Ничоси. А что ты пишешь к новостям, где переписали и получили то же самое, но не на расте?

Ответить | Правка | К родителю #268 | Наверх | Cообщить модератору

25. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +2 +/
Сообщение от Аноним (22), 16-Сен-22, 11:31 
> Rust тут деталь реализации.

да, но какая!

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

284. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +1 +/
Сообщение от Пароним (?), 17-Сен-22, 11:20 
*показывает руками*
Ответить | Правка | Наверх | Cообщить модератору

66. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Ilya Indigo (ok), 16-Сен-22, 12:07 
nginx уже давно поддерживает QUIC, если его собрать с BoringSSL.
Те кому он нужен это уже давно сделали.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

226. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Трушныйemail (?), 16-Сен-22, 21:26 
А почему деталью реализации не стал С++ или Go, например?
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

229. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Аноним (229), 16-Сен-22, 22:01 
1. RAII как паттерн, применяемый программистом, а не часть семантики языка, проверяемой в compile-time. Корпорасты уже заманались CVE-ехи ловить на "use-after-free" и прочие человеческие факторы по недосмотру.
2. Использовать для разработки софта, у которого должен быть минимальный оверхед и задержки процессинга, язык со сборкой мусора - ну так себе затея. Go нормальная тема, когда ты обычный бизнес, предлагающий какой-то SaaS и тебе нужно в облаках дешево масштабироваться по горизонтали, при этом вворачивая единобразным образом (за счет сознательной примитивности выразительных средств языка) продуктовую логику. Но это явно не тот язык, когда тебе нужна производительность уровня near-realtime.
Ответить | Правка | Наверх | Cообщить модератору

232. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –10 +/
Сообщение от Трушныйemail (?), 16-Сен-22, 22:47 
Это был риторический вопрос. Неужели так сложно это понять?
Ответить | Правка | Наверх | Cообщить модератору

282. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Аноним (282), 17-Сен-22, 09:28 
Raii уродливый паттерн, там есть два случая, которые на ноль умножают все параметры за. Только понимают их только те, как-то писал что-то серьезное.
Ответить | Правка | К родителю #229 | Наверх | Cообщить модератору

328. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Аноним (328), 17-Сен-22, 17:28 
RAII проблемный в задачах, где связи объектов в куче между собой представляет граф с циклами. Там scope-based семантика для автоматической работы с памятью геморрой ещё тот. В расте тоже плюются, когда дело доходит до хотя бы деревьев в куче. В плюсах лучше грех на душу не брать и самостоятельно такой фигни не писать, а взять boost. В остальном RAII норм.
Ответить | Правка | Наверх | Cообщить модератору

250. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от fuggy (ok), 17-Сен-22, 04:43 
Главное тут не деталь реализации на расте. Теперь всё обрабатывается в одном процессе, вместо того чтобы несколько процессов nginx вызывали скрипты на Lua. Из-за чего и произошло ускорение обработки.
И выбор раста не связан с неким маркетингом или другим смузи. Компания просто умеет считать прибыль и если Rust уменьшает потребление ресурсов по сравнению с Lua, то компания выбирает Rust.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

269. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Прохожий (??), 17-Сен-22, 08:42 
Не только уменьшает потребление ресурсов по сравнению с Lua, а ещё и повышает стабильность работы по сравнению с Си.
Ответить | Правка | Наверх | Cообщить модератору

293. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Аристарх (??), 17-Сен-22, 13:29 
Да ЛЮБОЙ язык лучше Луа, что тут развозить про Раст?? Даже на D можно было написать ровно такой же "ускоренный" сервис.
Ответить | Правка | К родителю #250 | Наверх | Cообщить модератору

306. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +1 +/
Сообщение от Аноним (3), 17-Сен-22, 15:24 
Что, даже Perl?
Ответить | Правка | Наверх | Cообщить модератору

310. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от edge790 (ok), 17-Сен-22, 16:18 
Сделали на раст просто потому что проще и хорошо подходит.
Отсутствие рантайма и сборщика мусора дадут равномерное время обработки запросов, в отличии от Go, C#, или Java.

Так же у nginx был блокирующий ввод-вывод и Multiprocess + Multithreading. Nginx генерирует worker processes у каждого из которых свои worker connections. Используя этот подход хуже утилизируются процессорные кеши, но по словам nginx - лучше утилизируется сетевое подключение, потому что каждый процесс имеет свой личный порт.

Для Cloudflare это огромный минус, т.к. им очень важен TTFB (Time to first byte - время до первого байта) - сколько времени проходит до получения первого байта полезной информации. Низкий TTFB = ваш процесс висел в ожидании байта, не делая ничего полезного, но потребляя ресурсы. TTFB можно уменьшить разными подходами (например переиспользовать соединение), но многие из них рушатся из-за multiprocess модели - т.к. у каждого процесса свой порт, пошарить коннекшн не получится.

Поэтому в Cloudflare решили заменить Multiprocess и Multithreading на Workstealing Multithreading + убрать блокирующий ввод-вывод. Они это сделали используя tokio.rs

Можно ли было сделать это всё на любом другом языке и добиться таких же результатов? Конечно! Даже на Lua или python проведя достаточно большую работу и изменив их рантайм.
Но rust - самое простое решение. В отличии от некоторых других языков, тут нет рантайма и есть контроль над тем когда и как освобождается память, а так же менеджер пакетов(cargo) который позволит вставить и поддерживать библиотеку которая хорошо подходит под текущие задачи, и легко обновить её в случае каких-либо проблем (в отличии от C/C++).

tl;dr: rust был самым простым вариантом

Ответить | Правка | К родителю #293 | Наверх | Cообщить модератору

368. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +1 +/
Сообщение от Аноним (367), 19-Сен-22, 06:54 
> а так же менеджер пакетов(cargo) который позволит вставить и поддерживать библиотеку которая хорошо подходит под текущие задачи, и легко обновить её в случае каких-либо проблем

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

Ответить | Правка | Наверх | Cообщить модератору

370. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Name In Name Field (?), 19-Сен-22, 09:39 
А это о теме как и кого пускать в репозиторий билиотек. И параллельно как выбирать самому из доступного.

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

Ответить | Правка | Наверх | Cообщить модератору

313. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  –1 +/
Сообщение от Аноним (312), 17-Сен-22, 16:30 
Напиши ускоренный сервис на Ди. Научись программировать и напиши
Ответить | Правка | К родителю #293 | Наверх | Cообщить модератору

325. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Прохожий (??), 17-Сен-22, 17:10 
Причём здесь Lua, который выполнял несущественную для общей производительности часть задач?
Ответить | Правка | К родителю #293 | Наверх | Cообщить модератору

369. "Cloudflare перешёл с NGINX на прокcи Pingora, написанный на ..."  +/
Сообщение от Name In Name Field (?), 19-Сен-22, 09:35 
QUIC - для наладонников, увы. Специфика современности.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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