Sergey
Кидать запросы на апстримы умеют И Nginx, И HAProxy.
Aleksey
А что перед pm2 не нужен nginx?
Bogdan (SirEdvin)
А список апстримов они откуда возьмут?
Евгений
Bogdan (SirEdvin)
Евгений
Sergei
Bogdan (SirEdvin)
и возвращаясь к вопросу, где там автоскейл в системд? Форк? Рестарты по количеству запросов
Aleksey
Бгг
Aleksey
Дался вам ещё один апп сервер
Bogdan (SirEdvin)
Или вы предлагаете просто кучу портов раздать на nodejs аппы и веселится так?
Евгений
Вообще можно просто n реплик ноды в k8s-сервис упаковать, ни системд, ни pm2 не нужны
Aleksey
Их надо больше. Пусть и для ноды их будет как у питона
Евгений
Евгений
Евгений
И вообще
Евгений
Sergei
Sergei
а вот если ты хочешь задеплоить с помощью sftp, вот как ты это сделаешь? а?
Sergei
а если ты хочешь вимом на продакшне поправить код???
Евгений
Уверен, что мейлру позволяет вимом править серверлесс
Sergei
Sergei
хотя я давно с ними не общался, мб и позволяет, бгг
Евгений
Для их целевой аудитории необходимая фича
Bogdan (SirEdvin)
Дался вам ещё один апп сервер
Меня просто немного бесит пропоганда systemd, systemd-spawn, rsyslog как вещей "из коробки", хотя потом всегда оказывается, что из коробки оно старое, не нужное, не работает и нужно навернуть тонну всего, что бы получить нужный результат. Зато всегда много гонору и троллинга других решений
Sergei
Sergei
systemd запускает runit, runit -> supervisord, supervisord -> s6, s6 -> uwsgi, uwsgi -> pythonApp ?
Tadeusz
Гг
Sergei
и всё это в докере!
Евгений
systemd > containerd > runc > minit > tool
Евгений
Sergei
Bogdan (SirEdvin)
а как надо?
Хотя бы исходить из инфраструктуры. У меня вот регистратора, который бы работал сайдкаром для systemd нет. И я уверен, что он мало у кого есть
Bogdan (SirEdvin)
+ мне очень интересно глянуть на рестарты после определенного количества запросов и т.д. через systemd
Sergei
Евгений
Не знаю какой, там может быть любой любимый апп, который умеет только чистить зомбей
Евгений
Встречал minit когда-то, вот его и вспомнил, ща самописный
Sergei
Sergei
просто если ваше приложение требует внешнего инициатора рестарта по причинам, которые не краш - то этот рестартер - это часть вашего приложения де-факто.
Bogdan (SirEdvin)
К счастью, в отличии от рестарт костылей без этого можно обойтись
Bogdan (SirEdvin)
Так вроде только раст доказано не течет
Bogdan (SirEdvin)
А все остальные вполне
Sergei
Bogdan (SirEdvin)
А каких же? Имхо, ручное управление памятью еще сложнее, чем со сборщком мусора
Sergei
но так-то по-хорошему артефакт сборки какого-нибудь питона/руби/похапе - это не тарболл с исходниками, а пакет, который снаружи выглядит как процесс, который запустили и работает долго. если эта пхпшечка требует php-fpm, то php-fpm - это часть билда приложения.
Sergei
Bogdan (SirEdvin)
В целом никак, я просто пытался угадать, про какие нюансы будет идти речь
Sergei
В целом никак, я просто пытался угадать, про какие нюансы будет идти речь
да все просто же.
довольно трудно найти, например, приложение на голанге, которое требует рестарта после некоторого числа вопросов.
очень легко найти такое приложение на питоне.
очень легко найти такое приложение на руби.
элементарно найти такое приложение на пхп, но эти вовсе не очень умеют работать достаточно долго без особых костылей.
довольно трудно найти такое приложение на C++.
некоторые особо ущербные языки делают чрезвычайно сложным написание приложений без внешнего рестартера. но это не норма.
Sergei
представьте, что у вас БД или nginx требует рестарта после некоторого количества запросов
Sergei
или ядро требует рестарта после запуска некоторого количества процессов
Bogdan (SirEdvin)
Sergei
Bogdan (SirEdvin)
Sergei
если вы придете в гошный продукт с проблемой "память течет", то это будет багом. если вы придете с этим в питон - вам скажут "потюньте ваш гуникорн"
Bogdan (SirEdvin)
Не скажут
Sergei
Не скажут
ну не скажут так не скажут. /thread
Sergei
только почему-то такие вещи как гуникорн существуют, а апп-серверов для гошки и сишки чет нет
Bogdan (SirEdvin)
Потому что для го это делает оом сам по себе?)
Bogdan (SirEdvin)
Вы же понимаете, что основная причина существования gunicorn и тд.
Bogdan (SirEdvin)
Это gil, а все остальное бонусом?
Bogdan (SirEdvin)
Примеры будут? Неисправленных утечек памяти, которые долго не фикстятся?
Sergey
Sergei
вторая причина в том, что охренительное множество приложений по умолчанию всегда запускаются под гуникорном/uwsgi, которые заранее настроили в режиме "убить через N запросов и перезапустить". утечки памяти в конечном приложении в конечной компании можно и вовсе не фиксить, потому что это не даст никакого улучшения примерно нигде.
Sergei
я знаю одну компанию с очень большим приложением на перле, которые полгода командой из шести человек занимались оптимизацией процесса предикта необходимости убийства воркера в uwsgi
D
http://pm2.keymetrics.io/docs/usage/watch-and-restart/
Юзаю этот лаунчер в продакшине для высоконагруженного приложения на go , впринципе он не только для nodejs, подойдёт для запуска любого демона на любом языке . Очень удобный просмотр логов приложения командой типа pm2 logs app_name и куча других фишек аналог supervisor
Sergei
я боюсь представить, что произошло бы с индустрией, если бы более важные вещи (БД, ядра, файлухи, инит-системы и т.п.) разрабатывались подобным путем
Bogdan (SirEdvin)
Tadeusz
Tadeusz
Тебе мало pulseaudio?
Bogdan (SirEdvin)
Sergei