Как стать автором
Обновить

Как мы создали Pingora, прокси-сервер, связывающий Cloudflare с Интернетом

Время на прочтение9 мин
Количество просмотров8.7K
Всего голосов 22: ↑13 и ↓9+4
Комментарии15

Комментарии 15

Использование Lua в nginx лично у меня всегда вызывало много вопросов.

Насчёт ограничений модели воркеров: такое ощущение, что ребята просто не научились её готовить правильно.

Почему? Многие облачные кампании используют Lua в качестве скриптового языка для таких штук, тот же Mail.ru со своим Tarantool. Правда многие уходят от дефолтного PUC Rio на какой-нибудь LuaJit, дабы иметь оптимизации и иммутабельность. Получается и не слишком низкоуровнево как на чистом Си и не слишком высокоуровнево, чтобы иметь проблемы с производительностью, как в том же Python, например.

Проблемы с производительностью и потреблением памяти

До определенных размеров это вполне оправданный язык для скриптования. Следующий шаг обычно кастомные DSL и конкурентов у луа в этом плане вроде не имеется.

Lua это же опциональна возможность?

А вот Perl помнится, был встроен в сам nginx.

Насчёт ограничений модели воркеров: такое ощущение, что ребята просто не научились её готовить правильно.

Как "готовить правильно" пул соединений, который не шарится между процессами?

использовать ограниченное количество origin shield серверов, которые обращаются к исходному сайту. Тогда проблема ,в целом, не будет такой явной: входящие запросы будут с большой вероятностью использовать уже открытые соединения.

Также использование машин с малым числом ядер (8 вместо 48) позволяет оптимизировать этот процесс (ну или nginx не на всех ядрах запускать).

Также использование машин с малым числом ядер (8 вместо 48) позволяет оптимизировать этот процесс (ну или nginx не на всех ядрах запускать).

это не решение для них, ибо у них выделенные и достаточно машины под прокси
https://blog.cloudflare.com/the-epyc-journey-continues-to-milan-in-cloudflares-11th-generation-edge-server/


не забывайте, у них внутри nginx крутилась своя логика на lua.

Что и требовалось доказать: Cloudflare не научились готовить nginx, снабдив его медленным Lua к тому же. Ребята сами себе в ногу выстрелили, ампутировали конечность, и теперь радостно об этом пишут. В качестве предыдущих "боевых заслуг" можно прочитать про их сбои самописного DNS сервера: как они неоднократно весь Интернет клали.

а исходный код где?

Читал оригинал статьи, подозреваю речи об open-source пока нет. Возможно мы получим возможность использовать на платной основе Пингору, или получим урезанную её версию бесплатно.

мне кажется так и будет :) чутка позже...
инструмент сделан и опробован. а сейчас просчитываются варианты монетизации на сторонних использованиях.
основное использование - работа в гигансткой сети cdn cloudfare, под которую он сейчас узконаправленно заточен.

Спасибо автору, отличная стаья

я правильно понял, что pingora пока не опенсурсный?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории