Pavel
Потом остается избавиться от yii, и правильная архитектура готова :)
Vitalii
а на что менять yii?
Evgeny
У меня бывшие коллеги сейчас весь проект на юии переводить решили
Pavel
Pavel
Ассетами управлять вполуручную вполне реально
Vitalii
Можно еще разработчиков заменить и тогда точно правильная архитектура готова и приде конец страданиям :)
Так в любом проекте... меняешь весь стек, от сервера и технологий до людей и вроде все должно стать лучше :)
Pavel
Ну прастити, кто тут у нас хочет сделать максимально сложно и грамотно ? 😆
Vitalii
Ассетами управлять вполуручную вполне реально
напиши потом решение которое придумали с ассетами. Так как у меня проекта на 2-й версии и я уже тоже задумался из-за docker-way про ассеты... которые в этот вэй никак не вписываются
Vitalii
Еще раз спасибо всем кто принимает участие :)
Pavel
Совсем мозг вправится когда дойдет, что пихать все в один контейнер вовсе не плохой вариант
Vitalii
ахаха :) выше обсуждали.
Это вариант для поиграться и для небольшого продакшена.
Pavel
Ой да ладно большие продакшены для миллионов пользователей были еще задолго до докера, и не умерли как то
Sergei
Vitalii
небольшой - это там где не нужно масштабирование.
Vitalii
от цифр ваших это не зависит :) если миллион ваша арзитектура выдерживает на одной тачке в одном контейнере... отлично :)
Vitalii
а там где нужно кластеризация и масштабирование на несколько хостов да обслужвать это все и держать на плаву... "все в одном" не пойдет.
Хотя... тут уже будет поздно.
Vitalii
Это я все в теории пока знаю :)
Sergei
Vitalii
представляю :) но мы же в группе по докеру
Vitalii
даже на докере можно придумать много вариантов больишх продакшенов, но как вияснилось... одни потом превращаются в боль, а другие нет. В этом и разница :)
Sergei
я к тому, что "больше одного процесса в контейнере плохо" - это отнюдь не абсолютная аксиома.
Vitalii
это я понимаю :)
Vitalii
дальше надо взвешивать
Vitalii
мне товарищи говорили что супервизор в контейнере на котором fpm + nginx + ... это круто тем, что если что-то одно падает то весь контейнер не падает и супервизор потом все поднимет сам.
Vitalii
То есть даже в этом варианте в некоторых ституациях есть свои плюсы :)
Vitalii
кстати, а как мониторить состояние контейнера? чтобы если вдруг что, он сам поднялся...
Anonymous
Sergei
кстати интересно посмотреть, где именно это записано как заповедь :)
Vitalii
если удобно - живи :)
Vitalii
но не зря же епридумали и написали Best Practices
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
Vitalii
да и хвала небесам что они есть :)
Vitalii
считай на пару десятков граблей и костылей меньше в проекте :)
Yaroslav
In almost all cases, you should only run a single process in a single container. Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers.
Yaroslav
вообще не выглядит как, строго запрещено
Yaroslav
it depends
Pavel
best practices это правила готорые подходят для 90% типичных проектов, а 10% не подходят
Yaroslav
если у меня один процесс прилаги не имеет смысла в отрыве от другого процесса
Vitalii
Pavel
Скалировать горизонтально можно как контейнер с 1 процессом так и контейнер с 2 процессами, ровно ничего не случится.
Pavel
Ну оверхед будет побольше, зато единица вычисления атомарная.
Vitalii
ну, смотря что за процессы :) опять же... все индивидуально
Pavel
Например php-fpm и кеш запросов redis
Yaroslav
да, если ты сем себе можешь по чесноку обьяснить зачем ты сунул два или более процессов в один контейнер. Норм по моему.
Yaroslav
нее fpm и кэш.. не поверю что нужно в один
Yaroslav
вот к примеру горстку воркеров, которые просто паралельно работают над одной задчей.
Vitalii
я, как человек учащийся, сперва сделаю по best practices. А кгда я пойму почему они написанны именно так, то уже можно и свои BP писать :)
Yaroslav
вот мой кейс. Пришел запрос в API. API поставила задачу в кролика на обработку, количий эксчейндж рассувал задачу во все очереди которые подвязаны. И вот все воркеры которые слушают эти очереди они делают по факту одну и туже бизенсс-задачу. Я по быстрому засунул все в один контейнер, до сих пор не разнес. Работают хорошо.
Yaroslav
кодовая база была одна, конфиг супервизорда уже был.
Evgeny
Bruno
Есть два питоновских контейнера. Хочется из одного питоновского кода вызвать какие-то методы у приложения в другом. Контейнеры могут быть на разных машинах.
Какой способ сделать это православен, джентльмены?
Aleksey
rpc ?
Bruno
rpc ?
ну т.е какой-нибудь https://leonid.shevtsov.me/post/messagepack-rpc/, да? А вот тогда вопрос как им друг другу дискавери сделать самым простым образом. В сворме есть?
Aleksey
в сворме есть. вариантов rpc великое множество. оснвное отличие будет в том что именно пойдет не так когда вызов сделать почему то не удасться
Bruno
ты-то сам что используешь? :)
Aleksey
у нас своя поделка в стиле json-rpc
Anonymous
Я бы не использовал rpc, предпочитаю очередь
Vladimir
+1
Yaroslav
+1 ну не 90'е же за окном
Yaroslav
и на минуточку, Докер же тут не причем. Ты просто строишь распределенную систему
Vladimir
ну вопрос был про SD
Aleksey
Oleg
Добре.
Oleg
Возвращаясь к вечному - nginx+fpm.
Если с докером на одной машине все относительно ясно - можно папку монтировать с машины (ИМХО, ни есть гуд), можно отдельный data container сделать.... и прочее.
Oleg
То в swarm mode не все так радужно.
Oleg
Есть какие-то костыли для распределенного хранения данных, но все как-то...
Oleg
Нормальный драйвер для ceph так и не запилили, а то, что было, вроде забросили.
Alf 🙀
они же инфинит купили. у них будет своя распределенная фс с катрочнымим шулерами и дамами
Oleg
Вижу на данный момент оптимальным вариантом - упаковка nginx+fpm+код в один контейнер.
Oleg
Alf 🙀
Oleg
Oleg
но в данный момент пока не о проде
Oleg
актуально - автоматизированные тесты
Alf 🙀
ох. рсинк как доставка кода.
Oleg