SynGX vs Nginx
НазадPlatform V SynGX – высокопроизводительный и безопасный сервер для балансировки нагрузки и маршрутизации запросов к веб-ресурсам, критически важным для бизнеса. При этом он обогащен дополнительной функциональностью, которая позволяет повысить производительность прокси-сервера, упростить его мониторинг и настройку, а также добавить собственную логику обработки запросов на языках Lua и JS.
Решение используется в Сбере и обеспечивает доступность критически важных объектов инфраструктуры — сайта sberbank.ru, СберБанк Онлайн и других бизнес-приложений банка (пресс-релиз). В настоящий момент развернуто более 4000 серверов с Platform V SynGX в 300 автоматизированных системах Сбера. При этом используются разные протоколы: HTTPS, TCP, UDP, websocket, и конфигурации – профиль нагрузки и количество используемых серверов каждой автоматизированной системы сильно отличается друг от друга.
СберТех предоставляет возможность любой компании бесплатно протестировать Platform V SynGX в течение трех месяцев, чтобы оценить функционал, убедиться в безопасности и надежности продукта. Для того, чтобы получить доступ к SynGX, заполните, пожалуйста, форму запроса демо.
В этой статье мы подробно обсудим отличия Platform V SynGX от open source версий Nginx и OpenResty, а также от коммерческой версии Nginx Plus, ориентированных на работу с высоконагруженными сценариями.
Чем уникален SynGX
SynGX собирается на базе стабильной open source версии Nginx и содержит весь функционал этого продукта. Это означает, что все директивы и возможности, которые есть в соответствующей версии Nginx, будут также доступны и в SynGX. Текущая версия SynGX собрана на базе Nginx версии 1.24, и обновление происходит ежегодно.
Все отличия SynGX от open source версии Nginx можно разделить на три множества.
В первое множество входят сделанные нами доработки — как в виде патчей к open source версии, так и в виде собственных разработанных модулей. Реализованный нами функционал во многом схож с тем, что есть в коммерческой версии Nginx Plus или Angie, и включает в себя, например, улучшенные метрики производительности, автоматическое разрешение доменных имен узлов в группах балансировки, активные проверки работоспособности узлов в группах балансировки и многое другое. Некоторые идеи позаимствованы у HAProxy или являются уникальными (т. е. отсутствуют в других веб- и прокси-серверах).
Второе множество составляет функционал сторонних модулей, которые добавлены в сборку SynGX. Open source сообщество Nginx разработало большое количество модулей разного качества и разной степени готовности к промышленному использованию, которые могут быть добавлены в сборку Nginx. Для SynGX мы отобрали, тщательно протестировали, проверили на безопасность и включили в сборку определенный набор модулей, который востребован нашими заказчиками. Периодически по запросам мы добавляем новые модули, при этом проверяем каждый модуль на отсутствие ошибок, уязвимостей и достаточную производительность.
Третье множество можно назвать технически организационным. SynGX собран вместе с собственными доработками и определенным набором сторонних модулей собран, проверен на отсутствие уязвимостей и протестирован под определенные операционные системы. Именно в такой конфигурации мы обеспечиваем его поддержку, исправление ошибок, устранение уязвимостей и реализацию нового функционала.
Как SynGX соотносится с OpenResty
OpenResty — это многофункциональная веб-платформа, построенная на базе Nginx и расширяющая его возможности за счет использования языка программирования Lua. Кроме ядра в виде Nginx, OpenResty включает в себя собственную сборку LuaJit как среду исполнения Lua-кода, большое количество различных модулей Nginx, множество библиотек Lua-кода, а также набор C-библиотек, чтобы обеспечить разработчикам максимум возможностей для обработки сетевых запросов.
SynGX содержит в своем составе:
- LuaJit, аналогичный LuaJit от OpenResty;
- большинство основных модулей для работы с Lua из OpenResty;
- основные библиотеки Lua-кода, входящие в OpenResty;
- основные C-библиотеки, входящие в состав OpenResty.
Благодаря этому возможна миграция проектов, использующих OpenResty, на SynGX без потери функциональности и без необходимости изменения конфигурации или Lua-кода.
SynGX vs Nginx Plus
SynGX содержит часть наиболее востребованного функционала Nginx Plus, который отсутствует в open source версии Nginx. К такому функционалу относятся в первую очередь:
- функционал активной проверки работоспособности (Active Health Check) для секций HTTP и stream;
- расширенные метрики работоспособности;
- функционал «липких» сессий;
- функционал периодического автоматического разрешения доменных имен узлов в группах балансировки.
Мы активно развиваем SynGX и продолжим расширять функционал по запросам пользователей в следующих релизах.
Как SynGX расширяет и улучшает возможности Nginx
Open source Nginx и OpenResty — надежные, многофункциональные и высокопроизводительные продукты. Они закрывают большинство задач, которые возникают у разработчиков или администраторов. Однако реализация определенного функционала требует написания такой конфигурации или дополнительных скриптов, которые сложно понимать или развивать. Примером такого функционала могут являться метрики в формате Prometheus по количеству HTTP-запросов в разрезе статусов кодов ответов. Подобные метрики собирают множеством разных способов. Например, можно самостоятельно написать скрипты для анализа access log и сбора нужной статистики по нему, а затем реализовать микросервис, который будет выдавать метрики в ответ на HTTP-запрос. Для этих же целей можно взять какое-либо open source решение, например https://github.com/nginxinc/nginx-prometheus-exporter. Однако то же самое в SynGX можно реализовать с помощью нескольких дополнительных директив в основной конфигурации.
Функционал SynGX, отличный от open source Nginx и OpenResty, доработан так, чтобы ускорить и упростить решение типичных задач при работе с веб- и прокси-серверами в условиях повышенной нагрузки и высоких требований к надежности и скорости отклика системы. Быстро определить наличие проблем у клиента помогают не только дополнительные метрики, но и функционал активной проверки работоспособности. Он позволяет перенаправлять запросы только на живые узлы, к функционалу «липких» сессий и к функционалу автоматического разрешения доменных имен узлов в группах балансировки
Как SynGX может использоваться вместе с Kubernetes
Контейнеры с SynGX подходят для раздачи статического контента.
SynGX может использоваться в качестве прокси-сервера перед сервисами, развернутыми в кластере Kubernetes, и решать задачи:
- проверять TLS-сертификаты и выполнять функцию TLS Passthrough;
- ограничивать количество обращений к сервису в единицу времени и фильтровать нежелательные запросы;
- распределять нагрузку между узлами кластера.
SynGX может использоваться в качестве балансировщика перед несколькими кластерами Kubernetes, например, развернутыми в разных ЦОДах, и решать задачи:
- распределять нагрузку между кластерами Kubernetes;
- перенаправлять все запросы на один кластер, если необходимо вывести один или несколько других кластеров из балансировки на время выполнения регламентных работ.
Как SynGX импортозамещает Nginx, Nginx Plus и OpenResty
SynGX зарегистрирован в Российском реестре ПО, поэтому может служить в качестве альтернативы для open source версий Nginx и OpenResty и коммерческой версии Nginx Plus в тех автоматизированных системах и сервисах, в которых требуется использование отечественного ПО и поддержка со стороны российской компании-разработчика.
Что еще почитать?
Вебинар: миграция с Nginx и Openresty на SynGX
Событие
07.08.2024
Отказоустойчивая работа сайта и онлайн-сервисов — приоритетная задача для любого инженера. В высоконагруженных сценариях при большом количестве пользователей базовой функциональности Nginx недостаточно – нужны более гибкие инструменты работы с балансировкой и маршрутизацией. А еще нужно дополнительно собирать большое количество различным метрик и, в идеале, добавлять собственную логику обработки запросов.
Сбер полностью импортозаместил зарубежный прокси-сервер
Новость
23.07.2024
Сбер заменил Nginx Plus на высокопроизводительный веб- и обратный прокси-сервер Platform V SynGX от СберТеха.
Проверка работоспособности узлов Nginx
Статья
14.06.2024
Ринат Фатхуллин, владелец продукта SynGX, описал внедрение активной проверки узлов для балансировки нагрузки, подчеркнул важность этой функции и отметил ее отсутствие в оригинальной версии Nginx.