The OpenNET Project / Index page

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



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

"Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от opennews (??) on 07-Июн-18, 23:13 
Доступен (http://mailman.nginx.org/pipermail/unit/2018-June/000055.html) выпуск сервера приложений NGINX Unit 1.2 (http://unit.nginx.org/), в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby и Go). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Проект пока находится на стадии бета-тестирования и не рекомендован для промышленного использования. Код написан на языке Си и распространяется (https://github.com/nginx/unit) под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе (https://www.opennet.ru/opennews/art.shtml?num=48434) прошлого выпуска.


В новой версии:


-  Добавлена возможность настройки переменных окружения для процессов приложений, запускаемых под управлением Unit.


        "env-example": {
            "type": "python",
            "path": "/www/django",
            "module": "wsgi",

            "environment": {
                "DB_ENGINE": "django.db.backends.postgresql_psycopg2",
                "DB_NAME": "mydb",
                "DB_HOST": "127.0.0.1"
            }
        }

-  Для языка PHP добавлена возможность указания пути к php.ini и изменения индивидуальных настроек PHP.


       "opts-example": {
            "type": "php",
            "root": "/www/site",
            "script": "phpinfo.php",

            "options": {
                "file": "/path/to/php.ini",
                "admin": {
                    "memory_limit": "256M",
                    "variables_order": "EGPCS",
                    "short_open_tag": "1"
                },
                "user": {
                    "display_errors": "0"
                }
            }
        },

-  Появилась возможность настройки аргументов запуска приложений на языке Go.


        "args-example": {
            "type": "go",
            "executable": "/path/to/compiled/go/binary",
            "arguments": ["arg1", "arg2", "arg3"]
        },



URL: http://mailman.nginx.org/pipermail/unit/2018-June/000055.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=48734

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

Оглавление

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


2. "Выпуск сервера приложений NGINX Unit 1.2"  –7 +/
Сообщение от Аноним email(??) on 08-Июн-18, 00:20 
Объясните почему бы просто не запускать каждое приложение в докере?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Выпуск сервера приложений NGINX Unit 1.2"  +7 +/
Сообщение от Грусть on 08-Июн-18, 00:35 
Докер - это ещё одно недоразумение. Почему бы просто не запускать приложения?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от Аноним email(??) on 08-Июн-18, 03:23 
Потому что разные версии того же пхп могут конфликтовать
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

13. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от combiner on 08-Июн-18, 07:10 
Кто мешает запускать php приложения на deb-based distro, с разными php-fpm одновременно?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

14. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от ryoken (ok) on 08-Июн-18, 07:36 
> Потому что разные версии того же пхп могут конфликтовать

Кстати, давно про дыры в пыхе тут новостей не было. Перешли на дыры сразу в процах :D

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

20. "Выпуск сервера приложений NGINX Unit 1.2"  +2 +/
Сообщение от XXX (??) on 08-Июн-18, 09:40 
Кто мешает запускать php приложения на gentoo-based distro, с разными php-fpm одновременно? (c)
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

22. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от нах on 08-Июн-18, 10:51 
не могут - если у вас руки не из задницы. pear/pecl/структура управляющих файлов в php сделаны еще реальными бородатыми программистами, которые - умели.
Вот что вы не умеете ничего кроме apt install (а "приложение" написано на php 5.0.2) - это я легко поверю.

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

4. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от Аноним (??) on 08-Июн-18, 00:39 
А при чём тут вообще Докер?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

11. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от Аноним email(??) on 08-Июн-18, 03:24 
Я так понимаю главное тут - изоляция, потому что остальное nginx итак вроде умеет.
Ну и Docker/LXC/LXD отлично с изоляцией справляются.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

17. "Выпуск сервера приложений NGINX Unit 1.2"  +4 +/
Сообщение от qrKot on 08-Июн-18, 09:03 
Хреново докер с изоляцией справляется, если честно...
Докер - он про деплой/доставку, изоляция не про докер.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

28. "Выпуск сервера приложений NGINX Unit 1.2"  –3 +/
Сообщение от Аноним (??) on 08-Июн-18, 21:05 
докер не виновен! это, ядро криво изолирует
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

6. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от KonstantinB (ok) on 08-Июн-18, 01:07 
Например, не для каждого проекта оправдано дублировать каждое запущенное приложение несколькими инстансами с балансировкой.

Если же запущен всего один инстанс приложения, с докером без даунтайма при обновлении не обойтись.

Ну и не каждое приложение можно написать (переписать) в соответствии с методологией 12 factor. А без этого докер больше мешает, чем помогает, проще обойтись тем же LXC.

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

10. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от freehck email(ok) on 08-Июн-18, 03:24 
> Если же запущен всего один инстанс приложения, с докером без даунтайма при обновлении не обойтись.

Это неправда. Обновление происходит так: мы поднимаем контейнер из нового образа, дожидаемся, пока он полностью прогрузится, и тогда уже гасим старый.

По поводу остального согласен.

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

12. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от KonstantinB (ok) on 08-Июн-18, 04:54 
> Обновление происходит так: мы поднимаем контейнер из нового образа, дожидаемся, пока он полностью прогрузится, и тогда уже гасим старый.

Не, ну так, конечно, можно, в стиле "fastcgi php до появления php-fpm".

Но тут есть две проблемы.

1) дроп соединений, ожидающих ответа от первого контейнера в момент переключения. Тут можно выкрутиться конструкцией вида "добавляем в конфиг балансировщика второй контейнер, метим первый как down, дожидаемся, пока первый закончит обработку всех соединений, прибиваем первый", но как-то сложновато получается.

2) если приложение - древний монолит, могут возникнуть проблемы с конкурентным доступом к ресурсам из обоих контейнеров. Это, конечно, из разряда "не программируйте так", но если бы все хорошо программировали...

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

21. "Выпуск сервера приложений NGINX Unit 1.2"  +2 +/
Сообщение от Анонимус2 on 08-Июн-18, 10:31 
>если приложение - древний монолит

То unit ему тем более никак не поможет

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

30. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от KonstantinB (ok) on 09-Июн-18, 02:37 
Самому по себе - да.

На практике же типичная подобная ситуация: есть, скажем, древний PHP-шный монолит из дерьма и палок, как-то работающий, но для развития непригодный, потому параллельно начинается разработка новых сервисов и постепенный перенос старой функциональности из монолита в код новых сервисов, которые, допустим, разрабатываются на python и go. Вот тут Unit оказывается очень удобен.

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

33. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от freehck email(ok) on 18-Июн-18, 09:17 
>> Обновление происходит так: мы поднимаем контейнер из нового образа, дожидаемся, пока он полностью прогрузится, и тогда уже гасим старый.
> Не, ну так, конечно, можно, в стиле "fastcgi php до появления php-fpm".

Да нет, тут тот же самый php-fpm, только он раскидан по нескольким контейнерам/машинам/нодам. В каждом контейнере, по идее, висит воркер, который дожидается соединений. И да, тот же php-fpm туда впихнуть -- да пожалуйста, было бы желание.

> 1) дроп соединений, ожидающих ответа от первого контейнера в момент переключения. Тут
> можно выкрутиться конструкцией вида "добавляем в конфиг балансировщика второй контейнер,
> метим первый как down, дожидаемся, пока первый закончит обработку всех соединений,
> прибиваем первый", но как-то сложновато получается.

Нет, ну почему же. Дроп соединений делать не нужно. Процедуру вырубания контейнера надо описать корректно, чтобы он дожидался завершения текущих соединений и не принимал новых. По части "не принимал новых" -- тут конечно же надо балансировщик. Но исправление конфига -- опять же, чересчур. Не надо описывать воркеры в конфиге. Надо, чтобы балансировщик узнавал о воркерах через service discovery. Zookeeper/etcd в помощь.

> 2) если приложение - древний монолит, могут возникнуть проблемы с конкурентным доступом
> к ресурсам из обоих контейнеров. Это, конечно, из разряда "не программируйте
> так", но если бы все хорошо программировали...

Да, обычно приходится много чего переписать, чтобы обеспечить бесперебойную работу. Ну, что поделать. Есть игрушки "на коленке", когда нужно сделать быстро. А есть игрушки "на экспорт", когда нужно сделать надёжно.

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

18. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от qrKot on 08-Июн-18, 09:06 
> Например, не для каждого проекта оправдано дублировать каждое запущенное приложение несколькими
> инстансами с балансировкой.

2 инстанса - оправдано для каждого, хотя бы в целях фейловера... Балансировка - уже не везде, согласен.

> Если же запущен всего один инстанс приложения, с докером без даунтайма при
> обновлении не обойтись.

Вот это неправда ваша. Да и не докером единым, k8s есть еще тот же.

> Ну и не каждое приложение можно написать (переписать) в соответствии с методологией
> 12 factor.

Каждое серверное - можно.

> А без этого докер больше мешает, чем помогает, проще обойтись тем же LXC.

А вот LXC - вообще НЕ средство доставки приложения.

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

15. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от Аноним (??) on 08-Июн-18, 07:52 
запускайте и теряйте данные наздоровье
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

19. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от Аноним (??) on 08-Июн-18, 09:08 
Наверно потому что докер - хипстерское баловство? По-моему уже все наигрались с ним.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

23. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от нах on 08-Июн-18, 10:53 
> Наверно потому что докер - хипстерское баловство? По-моему уже все наигрались с
> ним.

куда ты [from] с подводной-то лодки денешься? (с ужасом глядя в docker ps на системе, установленной подрядчиками)

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

25. "Выпуск сервера приложений NGINX Unit 1.2"  –1 +/
Сообщение от Аноним email(??) on 08-Июн-18, 16:09 
Деплой в течение минуты, ограничения ресурсов, изоляция хоть и не уровня полноценной виртуализации, зато и потребление ресурсов гораздо ниже. Что вы предлагаете в качестве альтернативны когда дело касается динамического старта/остановки большого количества инстансов?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

29. "Выпуск сервера приложений NGINX Unit 1.2"  +1 +/
Сообщение от Аноним (??) on 08-Июн-18, 22:03 
Большое количество инстансов требуется очень редко. Там, где это требуется - пишутся свои in-house решения заточенные исключительно под собственные потребности компаний. И лишь в крайне узкой нише между этими двумя - и есть истинное призвание докера. Однако хипстота его использует вообще везде, даже на хоумпейджах. Один очень настойчиво пытался к нам на небольшой проект затащить потому что это, типа, в тренде. Тимлид посадил его разбирать легаси проект в качестве выправительной для мозгов меры.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

5. "Выпуск сервера приложений NGINX Unit 1.2"  +2 +/
Сообщение от анон on 08-Июн-18, 01:01 
не понял, он аналог uwsgi и gunicorn?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от KonstantinB (ok) on 08-Июн-18, 01:14 
> не понял, он аналог uwsgi и gunicorn?

В каком-то смысле - да, только сразу для кучи разных языков, со своими райтаймами/библиотеками/SAPI (в зависимости от) для каждого из них.

Технически работает через shared memory, что дает прирост производительности: не надо парсить никакие протоколы, просто меняемся указателями на структуры в памяти.

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

8. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от Аноним (??) on 08-Июн-18, 01:44 
Это совсем не аналог uwsgi и gunicorn.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

24. "Выпуск сервера приложений NGINX Unit 1.2"  –1 +/
Сообщение от нах on 08-Июн-18, 10:58 
> не понял, он аналог uwsgi и gunicorn?

скорее, попытка показать их авторам "как правильно". Вероятно, мертворожденная.

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

32. "Выпуск сервера приложений NGINX Unit 1.2"  +2 +/
Сообщение от denis0 on 09-Июн-18, 09:00 
https://www.youtube.com/watch?v=GK6xAOVRTcg - видео со Стачки в Ульяновске в этом году. Релиз 1.0 случился где-то через неделю после этого видео.

Идеи в Unit очень мощные.

offtop: задним числом понял, зачем некоторые до сих пор пользуют Apache в качестве appserver - единообразное конфигурирование для разных ЯП.

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

16. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от Ю.Т. on 08-Июн-18, 07:55 
> Доступен (http://mailman.nginx.org/pipermail/unit/2018-June/000055.html) выпуск
> сервера приложений NGINX Unit 1.2 (http://unit.nginx.org/), в рамках которого развивается

На английской странице about "designed to run applications in multiple languages" на самом деле значит, что Unit это сам делает на разных/многих языках. Нужно хотя бы "applications written in multiple languages".

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

26. "Выпуск сервера приложений NGINX Unit 1.2"  –2 +/
Сообщение от Аноним (??) on 08-Июн-18, 18:59 
А что это такое? Если что я не "специалист".
Это система изоляции? Тогда как она может якобы поддерживать языки?
При компиляции они хотят -dev файлы от языков, хмм.. это аналог операционной системы?
Что-то типа Wine в очень широком смысле?
Операционая система без излишеств и есть "сервер приложений". А это что?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Выпуск сервера приложений NGINX Unit 1.2"  +/
Сообщение от Аноним (??) on 08-Июн-18, 20:03 
аналог скорее uwsgi (так как uwsgi тоже поддерживает большое количество языков)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




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

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