Vladimir
претензии к тому что ради одной системы инциализации нужно поддерживать какой-то протокол и ваще париться с его реализацией
sexst
Там протокол это просто строку послать на юникс сокет
Vladimir
там нужно какие-то креденшиалы делать
Andrew
это то как делает хелфчеки системд
Vladimir
авторизация приложения по сокету
Andrew
и только он
Vladimir
наборы команд
Vladimir
и пр.
Andrew
у докера свое, у монита свое
sexst
Мсье, я это с нуля на сях писал, реально два десятка строк кода и фиксированные сообщения
Andrew
там при чем тут сколько строк
Andrew
1. это НЕ портабельно
sexst
это то как делает хелфчеки системд
= как скоро будут делать везде и все.
Andrew
2. это требует изменение приложения
Andrew
= как скоро будут делать везде и все.
никто так нигде делать не будет
Andrew
кроме системд
Andrew
с которого все съедут еще раз через 5 лет
Andrew
на что нибудь другое
Andrew
и вообще с линукса надеюсь, но это оффтопик
Dmitrii
Ой какой срач я тут развел 😂
Andrew
вы вот серьезно, скажите, сколько потребуется усилий протолкнуть такой патч в постгрес?
Andrew
а в проприетарную аппу?
sexst
Так никто не заставляет использовать там notify. С другой стороны гораздо проще использовать notify в своем приложении, чем городить велосипедную обвязку на случай если его, скажем, oom manager убъет нахрен.
sexst
То что это сложно сунуть в проприетарщину нихрена не означает того что это говенное решение. Для кучи мелких демонов это идеальный способ отслеживания.
Andrew
это сложно всунуть КУДА УГОДНО, если авторам ЧЕГО УГОДНО срать на системд и его видение мира
Andrew
в отличии от нормальых способов мониторинга
Andrew
это прям вообще базовые понятия разделени слоев абстракций
sexst
Слушать stdout - не нормальный способ мониторинга
Andrew
нижний слой не должен знать ничего о верхнем
Andrew
а тут классическая дырявая абстракция
Andrew
так на пхп даже не пишут
Andrew
Слушать stdout - не нормальный способ мониторинга
слушать стдаут СПЕЦИАЛЬНОГО скриптика
Andrew
который написан для системд
Andrew
и является связующим звеном между системд и программой (у каждой из который свой набор для хелфчекинга)
Andrew
более того, в каждой инсталяции будут тоже свои требования к хелфчекингу
Andrew
у кого то что порт 5432 слушается
Andrew
а кто-то проверять будет еще наличи промигрированной схемы и данных, скажем
Andrew
и все это хелфчекинг с точки зрения сервиса
Andrew
и все это элементарно и понятно делается, если апи нормальный
Andrew
а с системд — хренушки
sexst
Я могу написать тут кучу всего на тему того что если порт не слушается, то это должно отрабатываться на уровне самого приложения и выливаться, скажем, в выход со статусом ошибки и всеми проистекающими. И вообще все проверки состояния приложения - головная боль самого приложения. Но мне лень. Помните только что на свете работает очень много софта на честном слове и без всякого рестарта снаружи если что. К слову о Постгресе.
sexst
Но вы всегда можете поставить сторонний супервизор или написать свой внутри приложения. Мы все немного любим делать троллейбус из буханки)
Andrew
порт ВСЕГДА не слушается после старта приложения и начинает слушаться только через какое-то время после старта
sexst
порт ВСЕГДА не слушается после старта приложения и начинает слушаться только через какое-то время после старта
Если что-то пошло не так, то приложение в этом конкретном случае должно сделать сеппуку. Или его автор, на выбор.
Andrew
дело не в том, что что то пошло не так
Andrew
дело в том, что супервизору нужно знать когда аппа готова к работе
Andrew
вот и все
Denis
Мне позиция Джейка ближе ))
Lex
и вообще с линукса надеюсь, но это оффтопик
так некуда банально, остальное все вообще говно
Lex
дело в том, что супервизору нужно знать когда аппа готова к работе
хелсчеки на уровне супервизора -- кмк не самая лучшая идея
sexst
Да речь не столько о хелсчеках, как о способе оповестить супервизор что инициализация завершена, боевой режим включен, можно зависимости стартовать. Watchdog в systemd отдельно включается, просто пользует тот же сокет.
Aleksey
хелсчеки хорошо
Aleksey
меня радует как это в докере запилили
Aleksey
щас бы еще докеркомпоуз подтянулся
Aleksey
и было бы вообще шоколадно
sexst
Да хз. Нормальный софт сам разберется даже с сокетами, в документации systemd так и пишут при освещении параллельного старта служб. А вот для мелких поделок вполне себе дополнительный контроль и упрощение задачи обработки ошибок. Сломался? Насрать - передернут сверху. Воркеры не умеют дождаться сокета сами? Насрать - скажем когда готовы.
Dmitrii
А у кого докер используется для продакшена и для девелопмента/стеджа?
Constantine️
Димас, иди спать :D
Constantine️
сколько можно то ))))
Dmitrii
Как вы работаете с параметрами, типа там подключение к базе, путь к исходникам?
Dmitrii
Да у меня тут работы непочатый край ))
Constantine️
ENV не очень вариант?
Constantine️
устанавливать через окружение
Dmitrii
У меня в ансибле порядка 50ти переменных
Dmitrii
Для приложения
Anonymous
исходники в контейнере, конфигурация в окружении
Dmitrii
Чем вы все это устанавливаете?
Dmitrii
Т.е. если ансибл то тут все ясно, просто генерим конфиг. А вот с докером не совсем.
Constantine️
мы в рамках амазона какую-то тамошнюю дрянь ))
Constantine️
хотя речь уже не про амазон? :D
Constantine️
отпустило?
Dmitrii
Во, щас глянул — в другом у меня 80 переменных
Dmitrii
или 100
Dmitrii
Хер знает, на глаз прикинул
Dmitrii
И все они должны быть разные для каждого из окружений
Dmitrii
Какой здесь best practice?