unit-0.3 beta
Валентин Бартенев
vbart на nginx.com
Сб Дек 30 02:55:17 UTC 2017
On Saturday, 30 December 2017 04:43:31 MSK S.A.N wrote:
> > Как по вашему, firefox - это сервис или приложение? Можете обосновать
> > почему?
>
> Я же не ради холивара это писал :)
> Клиентские GUI приложения сервисами сложно назвать, но для меня:
> PHP-FPM - это сервис
> Node.js - это сервис
> Python WSGI - это сервис
> Go Server - это сервис
И Unit может быть сервисом, а запускает он приложения. =)
>
> Возможно у меня systemd головного мозга, но в вашем конфиге, раздел
> "listeners" я понимаю как директивы для systemd.socket и соответственно
> "applications" у меня ассоциируется с директивами для systemd.service, мне
> так проще унифицировать свои знание и ваше название Unit очень помогает
> сделать связь с unit от systemd.
Для меня wordpress.com - это сервис, а WordPress тот, что набор php
скриптов - это приложение. И именно настройка интерпретации данного
набора скриптов и производится в объекте "applications".
Тот же GUI для Firefox отрисовывается с помощью других промежуточных
служб, X-сервера, драйвера и т.д., и там даже может учавствовать некий
протокол, а всё это может быть физически разнесено по разным машинам.
А для WordPress интерфейс рисуется с помощью браузера, того же Firefox.
Поэтому всё не так просто и однозначно.
Под сервисами, как правило, понимают те приложения, которые выполняют
некую служебную, то бишь сервисную функцию для других приложений.
Поскольку именно такую функцию чаще всего выполняют системные службы,
то и systemd, и многие другие init-системы пользуются данной терминологией.
В любом случае сервисное приложение - это тоже приложение. Как утверждает
словарь: application - a program or piece of software designed to fulfil
a particular purpose. "a database application". Так, например в зависимости
от архитектуры, приложение может быть монолитным или микросервисным, с ним
может непосредственно взаимодействовать пользователь, а могут другие
приложения.
Иными словами сервис - это более узкий термин, определяющий выполняемую
приложением роль. Возможно он идеально подходит для systemd, но я бы не
стал называть большинство веб-приложений сервисами.
В Unit-е используется нейтральный термин, не навязывающий определенной
роли или архитектуры для приложения.
>
> В идеале мне (думаю и многим тоже) будет удобно если все аналогичные
> директивы из unit.nginx и systemd будут иметь одинаковые название.
>
О нет, не хотелось бы переизобретать systemd. Пусть systemd и дальше
запускает сервисы, а Unit будет заниматься запуском веб-приложений.
В любом случае, спасибо вам за идею, я её принял к сведению. Безусловно,
конфигурация должна быть интуитивно понятной для пользователей и правильный
выбор терминологии крайне важен. Например, в ранних версиях Unit объект
"listeners" назывался "sockets", но это вызвало всеобщее неприятие и в
итоге он был переименован.
В случае же "applications" -> "services" - это первый подобный запрос, а
текущая терминология устраивает в том числе американскую часть компании,
для которой это родной язык, поэтому вероятность одобрения не велика.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru