Comments 18
Продукт отличный, используем. Но позволю себе небольшое замечание - было бы лучше (и понятнее), если бы вы писали в статье, если возможность отсутствует в открытой версии. К примеру, я почитал статью, сказал внутри себя "вау, это нам надо, иду смотреть как настроить" - а оно казалось все PRO :( Если конкретнее - про фичи (супер-фичи) - модуль queue и upstream_probe.
А в тексте вроде это указано в конце соответствующих абзацев про эти модули: "Модуль "queue" создаёт .. Модуль существует для HTTP подсистемы и доступен в составе коммерческих продуктов Angie." и "Модуль активных проверок называется "upstream_probe" и доступен в составе коммерческих продуктов Angie.".
Обычно всё это коммерческое добро доступно вполне бесплатно в HAProxy :)
А что именно? Возьмём только Open Source версии HAProxy и Angie. Что есть в HAProxy и нет в Angie?
Ну не знаю, тот же премиальный queue
по сути реализуется в HAProxy через `option redispatch` и бэкап-сервера (`option allbackups` и т.п.), если я правильно понимаю его суть.
Премиальный опять же upstream_probe
(активный хелсчекинг) вообще всегда был в HAProxy во всех возможных видах в т.ч. с поддержкой протоколов бэкенда (Redis, MySQL, Postgres и т.п.)
Ну и так далее.
Модуль "queue" это не аналог "option redispatch". "redispatch" пытается законнектиться к другому бэкенду, если тот, на который он пришёл изначально, мёртв. Это есть в Angie OSS (Open-Source). А "queue" начинает работать, когда аналог dispatch-а уже не может найти подходящий сервер. Например бэкенд может быть жив, но для него исчерпался лимит на активные соединения (лимит установил админ). Тогда растёт очередь. И по мере того, как сервера освобождаются, запросы из очереди опять пытаются попасть на обработку.
Backup-сервера в Angie OSS тоже есть. Один запасной уровень. Коммерческий multi-backup про то, что есть несколько backup-уровней. Т.е. когда все сервера первого backup-уровня умерли - мы переходим на следующий уровень. А "option allbackups" про другие multi-backup. Они под этим понимают способ выбора backup-сервера, если основные сервера умерли. Если без этой опции, то будет всегда выбираться первый из backup-серверов. А если с опцией, то будет балансировка среди backup-серверов.
Активных healthcheck-ов в OSS действительно нет. Только пассивные.
Я не очень понимаю юзкейс этого queue.
Обычно до бэкенда открыто какое-то количество коннектов и запросы мультиплексируются в них - особенно если это HTTP/2 то проблем нет т.к. стримы. Разве что когда все сервера мертвы - повисеть в очереди в надежде что кто-то оживёт... ну, не знаю.
Думается, что если бы это было нужной многим фичей, то оно было бы в разных проксях доступно.
Вообще это довольно востребованная функциональность. Как простой пример, php-fpm не может вместить в себя бесконечное количество параллельно обрабатываемых запросов - просто память закончится. Поэтому число рабочих процессов ограничено сверху. И вместо того, чтобы пытаться наливать запросы сверх этого числа - более разумной стратегией будет выставить ограничение на балансировщике, чтобы тот не пытался наливать больше, чем позволяет ёмкость бекенда, тогда лишние запросы можно либо отсекать, либо складывать во временную очередь и далее направлять на первый освободившийся сервер (что и делает "queue").
Всё это верно в той или иной степени относительно любого балансируемого бекенда. Ресурсы бекендов не безграничны, в том числе поэтому их разворачивают несколько и горизонтально пытаются масштабировать.
> Думается, что если бы это было нужной многим фичей, то оно было бы в разных проксях доступно.
Оно доступно во многих серьезных балансировщиков крупных вендоров и появилось не на пустом месте.
Как выше верно заметили, все самые лучшие варианты балансировки работают и доступны в haproxy, а вы все также продолжаете урезать функционал... Есть же функции, нужные реально только Энтерпрайзу, а базовые вещи вроде балансирования должны быть во всех версиях.
Тестово начали использовать Angie для проверки что да как. Интересная борда со статистикой, и даже чуть-чуть есть возможностей из платного nginx. Но слишком мало чтобы оправдать переход, как мне кажется.
А надо чтобы как увидел, так сразу и понял что без вариантов - лучше. Ну если конечно хочется продвигать, а не ограничиться локальным рынком...
Есть же функции, нужные реально только Энтерпрайзу, а базовые вещи вроде балансирования должны быть во всех версиях.
Извините, но кому должны? Завтра вызывает начальник и говорит, а вот эту работу вы должны делать бесплатно, а почему спросите? А потому, что вот Иван Иваныч из соседнего отдела - это бесплатно сделал.
Если вы готовы работать бесплатно - то напишите на `hr@wbsrv.ru`. Честно скажу, пока ни одного такого сотрудника не встречал.
Правда же в том, что бесплатного ничего не бывает, а то, что вы бесплатно получаете на самом деле просто оплатил кто-то другой прямо или косвенно (в том числе это относится и к haproxy и вообще любому написанному коду - кто-то потратил свое время, поработал над кодом). Не секрет, что nginx всю дорогу был убыточной компанией - итог всем известен. Про наши приключения есть отдельная статья.
Лучшее, что вы можете сделать - это убедить начальство закупить Angie PRO, чтобы поддержать разработку в том числе опенсорс версии (предполагаю, что у вас компания не бесплатно работает и выручка есть?). А без этого не будет никакой версии и никаких новых фич, только если не найдутся люди, готовые работать бесплатно столько же, сколько они используют бесплатного ПО.
Когда разработчиков и их семьи начнут бесплатно кормить и бесплатно предоставлять жилье - тогда начнем программировать все в бесплатной версии. А пока суровый оскал капитализма заставляет искать возможности для существования.
Вы зачем-то на личности перешли (хорошо что еще никто никого не минусует ;) ) - но смысл моего комментария не в том, что "вы должны". Смысл в том, что если есть желание конкурировать, то одного включения в реестр "отечественного" ПО недостаточно. Нужны реальные преимущества относительно ванильного nginx.
Также не надо считать бесплатных пользователей вредителями, отбирающими ваш хлеб. Они в том числе являются как источником багрепортов, так и популяризаторами продукта.
Разным продуктам подходят разные лицензии, хотя вот субъективное мнение (тоже ведь из СНГ...) что наши продукты очень сразу хотят стать прибыльными, не вкладываясь на перспективу. Прекрасно понимаю. Только на глобальном рынке надо играть вдолгую, иначе так и останетесь местечковым продуктом... И это совсем не круто.
P.S. Начальство почти сразу спросит - а в чем преимущества относительно Nginx Plus? По фичам, по цене, по родмапу? Цен в открытом доступе (специально не копался, по-быстрому посмотрел) - нет. А это красный флаг сразу.
На счет личности не согласен, лишь ответил на то, что звучало как обвинение в том числе в мой адрес: "а вы все также продолжаете урезать функционал".
А по поводу наличия желания конкурировать все очень просто. Одного желания недостаточно. Ещё ресурсы нужны.
одного включения в реестр "отечественного" ПО недостаточно. Нужны реальные преимущества относительно ванильного nginx.
Как лихо обнулили многие сотни часов разработчиков, потраченные на более десятка различных функциональных возможностей относительно ванильного nginx, часть из которых, например, перечислена тут: https://angie.software/angie/docs/#index-features-oss
Проясню еще раз - "вы" это было по отношению к компании, а не лично к вам. Так что проехали.
По ресурсам - конечно нужны. Если еще раз вдумчиво прочитаете, то я акцентировал внимание на том, что "у нас" почему-то принято сразу получать прибыль, а не инвестировать, иногда реально долго, прежде чем получать доход. И нет, я не призываю вас (как компанию) всё бросить - просто констатирую факт.
По фичам - да, тут я довольно лихо на эмоциях наехал :) Ведь именно возможность привязки сессий привела к тому что я лично её проверил и применил где только она и была нужна (небольшой проект). В большом же, где нужны и проверки и т.п., остались на HAProxy, т.к. вот эта закрытость в ценовой политике (напоминает сломанный найм, знаете ли) она не позволяет даже рассматривать Angie как вариант. И в целом без практики советовать внедрять - я такое не практикую. И поэтому возвращаясь к самому первому комментарию - нет ножек, нет варенья (с) - первый шаг всегда за производителем. А дальше, уже "подсадив", можно и плюсы и прочие про версии делать...
Отдельная тема - у вас заявлено:
Создан бывшими разработчиками исходного проекта, чтобы двигаться в новом направлении, и может служить заменой предшественнику без переработки конфигурации и модулей.
Хотя в реальности получилось что пришлось в конфигах пробежаться и много-много где менять nginx на angie (пути к логам, конфигам и прочему). Непринципиаьно, но по сути тоже мягко говоря обман ;) Или реклама, кому как нравится.
А в общем - я всеми руками за конкуренцию и пускай у вас всё будет получаться с платными клиентами, может тогда перестанете считать бесплатных какими-то... не такими. Видно же отношение - "не сметь требовать функциональность, нам деньги надо зарабатывать!"...
Некоторые и не меняют, а просто делают симлинк angie -> nginx, вот живой пример: https://habr.com/ru/articles/869204/ - в чем обман то? И так тоже можно. =)
У нас в пакетах пути отличаются специально, чтобы не конфликтовать с пакетами nginx и дать возможность поставить в систему одновременно оба сервера, протестировать, плавно переехать. Тут уж кому как удобнее.
Я не считаю пользователей бесплатной версии какими-то не такими. Просто есть такая пословица "дареному коню в зубы не смотрят". Вы рассуждаете, что вот сделали бы мы активные проверки в бесплатной версии - тогда бы больше было пользователей и нам было бы лучше. Но весь практический опыт говорит ровно об обратном. Есть пользователи, которые купили PRO благодаря активным проверкам и это позволило расширить команду, сделать больше фич в том числе в бесплатной версии и, например, не закрыться.
Я вот в nginx пришел практически с момента основания компании, в 2011. Тогда никто о платной версии nginx plus даже не помышлял. Имея долю на рынке веб-серверов более 5% во всем мире, сколько nginx собирал пожертвований, знаете? Ровно столько, что хватало исключительно только на оплату хостинга для `nginx.org`. Разработчики просто проедали деньги западных инвесторов, которые разумеется хотели их приумножить рано или поздно (что потом и случилось в момент продажи в F5).
И это были реалии, когда западные инвесторы с интересом смотрели на стартапы с офисами в Москве и можно было рассчитывать на венчур, долгие деньги. Если кто-то считает, что мы жадные и что-то не так делаем, то пожалуйста: лицензия BSD позволяет, делайте ещё форк, делайте лучше - тут никто ж не мешает. Наш коллега, Максим Дунин так и поступил, взял сделал freenginx - никакой коммерческой версии у него нет, никакого конфликта интересов. Много там нового за год то появилось? То-то и оно.
Я вполне "этот" - и тоже начал с симлинка ;) Только там изменения принципиальные в нейминге. В частности:
user angie;
error_log /var/log/angie/error.log warn;
pid /var/run/angie.pid;
access_log /var/log/angie/access.log main;
В статье добавили усложнение через переключатель. И тут в любом случае выбор - можно поменять на nginx пути, но их надо будет создать (при установке только пакета angie, без nginx их не будет). Т.е. как ни крути - будет изменение конфига, а если брать функционал, который добавлен, тем более. Это я не затрагиваю момент с тем что и пользователь может (не) быть в группах (если его не менять на nginx - а поменяешь, так надо будет уже отдельно пользователя создавать) и прочее.
Поэтому честно было бы писать что требуются минимальные изменения конфигурации и пристальное внимание к изменившимся вещам (тем и тем).
Это я раскрыл свое сообщение, просьба не воспринимать как наезд.
Кстати, по поводу BSD лицензии - https://github.com/webserver-llc/angie - это же офф. исходники? И тут только бесплатная версия, все PRO модули же в отдельном репозитории?
Официальные репозитории вот:
https://hg.angie.software/angie
https://git.angie.software/web-server/angie
Это зеркало официального репозитория:
https://github.com/webserver-llc/angie
Да, там только бесплатная версия.
я акцентировал внимание на том, что "у нас" почему-то принято сразу получать прибыль, а не инвестировать, иногда реально долго, прежде чем получать доход
Это же не зависит от нашего желания или нежелания. Это вопрос доступности долгих денег. И в текущих экономических реалиях (ставку ЦБ РФ знаете же, а как часто у нас постоянно какие-то потрясения...) вполне понятно почему мало кто готов вкладывать немалые деньги на десятки лет вперед. Таковы реалии, к сожалению.
Балансировка в Angie