
Виталий
03.01.2017
13:04:17
а там где нужно кластеризация и масштабирование на несколько хостов да обслужвать это все и держать на плаву... "все в одном" не пойдет.
Хотя... тут уже будет поздно.
Это я все в теории пока знаю :)

Sergey
03.01.2017
13:04:49

Виталий
03.01.2017
13:05:03
представляю :) но мы же в группе по докеру

Google

Виталий
03.01.2017
13:06:07
даже на докере можно придумать много вариантов больишх продакшенов, но как вияснилось... одни потом превращаются в боль, а другие нет. В этом и разница :)

Sergey
03.01.2017
13:06:25
я к тому, что "больше одного процесса в контейнере плохо" - это отнюдь не абсолютная аксиома.

Виталий
03.01.2017
13:07:12
это я понимаю :)
дальше надо взвешивать
мне товарищи говорили что супервизор в контейнере на котором fpm + nginx + ... это круто тем, что если что-то одно падает то весь контейнер не падает и супервизор потом все поднимет сам.
То есть даже в этом варианте в некоторых ституациях есть свои плюсы :)
кстати, а как мониторить состояние контейнера? чтобы если вдруг что, он сам поднялся...

Игорь
03.01.2017
13:19:25

Sergey
03.01.2017
13:20:37
кстати интересно посмотреть, где именно это записано как заповедь :)

Виталий
03.01.2017
13:21:39
если удобно - живи :)
но не зря же епридумали и написали Best Practices
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
да и хвала небесам что они есть :)

Google

Виталий
03.01.2017
13:24:09
считай на пару десятков граблей и костылей меньше в проекте :)

Yaroslav
03.01.2017
13:24:36
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.
вообще не выглядит как, строго запрещено
it depends

Pavel
03.01.2017
13:25:14
best practices это правила готорые подходят для 90% типичных проектов, а 10% не подходят

Yaroslav
03.01.2017
13:25:21
если у меня один процесс прилаги не имеет смысла в отрыве от другого процесса

Виталий
03.01.2017
13:25:40

Pavel
03.01.2017
13:26:02
Скалировать горизонтально можно как контейнер с 1 процессом так и контейнер с 2 процессами, ровно ничего не случится.
Ну оверхед будет побольше, зато единица вычисления атомарная.

Виталий
03.01.2017
13:26:32
ну, смотря что за процессы :) опять же... все индивидуально

Pavel
03.01.2017
13:27:02
Например php-fpm и кеш запросов redis

Yaroslav
03.01.2017
13:27:15
да, если ты сем себе можешь по чесноку обьяснить зачем ты сунул два или более процессов в один контейнер. Норм по моему.
нее fpm и кэш.. не поверю что нужно в один
вот к примеру горстку воркеров, которые просто паралельно работают над одной задчей.

Виталий
03.01.2017
13:28:28
я, как человек учащийся, сперва сделаю по best practices. А кгда я пойму почему они написанны именно так, то уже можно и свои BP писать :)

Yaroslav
03.01.2017
13:32:12
вот мой кейс. Пришел запрос в API. API поставила задачу в кролика на обработку, количий эксчейндж рассувал задачу во все очереди которые подвязаны. И вот все воркеры которые слушают эти очереди они делают по факту одну и туже бизенсс-задачу. Я по быстрому засунул все в один контейнер, до сих пор не разнес. Работают хорошо.
кодовая база была одна, конфиг супервизорда уже был.

Evgeny
03.01.2017
13:41:32

Dmitry
04.01.2017
03:30:08
Есть два питоновских контейнера. Хочется из одного питоновского кода вызвать какие-то методы у приложения в другом. Контейнеры могут быть на разных машинах.
Какой способ сделать это православен, джентльмены?

Алексей
04.01.2017
03:46:21
rpc ?

Google

Dmitry
04.01.2017
04:02:05
rpc ?
ну т.е какой-нибудь https://leonid.shevtsov.me/post/messagepack-rpc/, да? А вот тогда вопрос как им друг другу дискавери сделать самым простым образом. В сворме есть?

Алексей
04.01.2017
04:03:00
в сворме есть. вариантов rpc великое множество. оснвное отличие будет в том что именно пойдет не так когда вызов сделать почему то не удасться

Dmitry
04.01.2017
04:18:25
ты-то сам что используешь? :)

Алексей
04.01.2017
04:26:00
у нас своя поделка в стиле json-rpc

N
04.01.2017
08:34:23
Я бы не использовал rpc, предпочитаю очередь

Vladimir
04.01.2017
08:37:10
+1

Yaroslav
04.01.2017
08:37:12
+1 ну не 90'е же за окном
и на минуточку, Докер же тут не причем. Ты просто строишь распределенную систему

Vladimir
04.01.2017
08:41:08
ну вопрос был про SD

Алексей
04.01.2017
10:21:30

zigmund
04.01.2017
16:13:23
Добре.
Возвращаясь к вечному - nginx+fpm.
Если с докером на одной машине все относительно ясно - можно папку монтировать с машины (ИМХО, ни есть гуд), можно отдельный data container сделать.... и прочее.

zigmund
04.01.2017
16:18:51
То в swarm mode не все так радужно.
Есть какие-то костыли для распределенного хранения данных, но все как-то...
Нормальный драйвер для ceph так и не запилили, а то, что было, вроде забросили.

Anatoly
04.01.2017
16:21:20
они же инфинит купили. у них будет своя распределенная фс с катрочнымим шулерами и дамами

zigmund
04.01.2017
16:21:26
Вижу на данный момент оптимальным вариантом - упаковка nginx+fpm+код в один контейнер.

Anatoly
04.01.2017
16:22:04

Google

zigmund
04.01.2017
16:23:27
но в данный момент пока не о проде
актуально - автоматизированные тесты

Anatoly
04.01.2017
16:24:00
ох. рсинк как доставка кода.

zigmund
04.01.2017
16:24:10

Anatoly
04.01.2017
16:24:20
автоматизированные тесты вроде не актуально больше
фб сказал что так только лохи делают

Admin
ERROR: S client not available

Anatoly
04.01.2017
16:24:57
у нормальных пацанов все юзеры тестируют

zigmund
04.01.2017
16:24:58
идея - упаковался nginx+fpm+код, запустился где-то там в сварме, отработал свое, уничтожился
лол

Anatoly
04.01.2017
16:26:15
не ну ок идея.
только непонятно при чем тут автоматизированные тесты
и что именно под этим вы понимаете
ну и это тесты пускайте во время билда контейнера а не после а то тдд прогнило уже давно сейчас бдд модно у автоматизаторов

Vyatcheslav
04.01.2017
16:28:43
это все собачье дерьмо. Настоящие пацаны алгебру выстаривают и тестируют законы

Виталий
04.01.2017
19:03:28
Если два контейнера с nginx и php-fpm то в каждом должен быть код приложения. Где-то полный, а где то только статика. Но никаких общих шардов с кодом не должно быть. Тому есть ряд причин: отказоустойчивость, обслуживание, масштабирование и прочее вытекающее.
Стройте контейнеры в CI (там же тесты) и доставляйте на продакшен автоматически.
И будет счастье:)

Google

Evgeny
04.01.2017
19:42:27
Помнишь я спрашивал про пыхеров и их любовь к странному? Ну так вот пока только они были в этом замечены

Sergey
06.01.2017
19:57:12
Так будет и докер вэй и масштабируемо


Виталий
06.01.2017
20:44:03
Коллеги, подскажите правильный путь деплоя имаджей на продакшен после релиза их через Gitlab CI? Какие есть варианты?
У меня был вариант через раннер запущенный на продакшене. Но тогда получается, что часть сценария .gitlab-ci.yml нужно выполнить в раннере с докером на дев сервере, а часть в совсем другом shell раннере на продакшене.
На продакшене все равно запущен докер-демон (сервер), который может получать команды. Может можно как-то его дернуть удаленно и попросить его подтянуть новые образы и запустить контейнеры? Слышал про Swarm и docker-machine... но вот сел читать про это. Подскажите куда читать более правильно :)


Maxim
06.01.2017
21:34:09
https://docs.docker.com/engine/reference/api/docker_remote_api/

Виталий
06.01.2017
21:36:08
Я хоть в правильном направлении двигаюсь?

Pavel
06.01.2017
22:27:02
robots.txt это статика

Виталий
06.01.2017
22:27:03
та же фавиконка тоже рядом часто лежит.
да, ее должен отдавать nginx но в то же время robots.txt это часть проекта (лежит в одном репо с кодом)

Pavel
06.01.2017
22:27:39
это тоже статика

Виталий
06.01.2017
22:28:44
это понятно что статика. Выше звучало следующее "В нжинксе код приложения не нужен. Всякие скрипты и стили генерить тоже отдельно от приложения"
ну то есть часть файлов из репозитория с кодом все же должны попасть в контейнер с nginx

Pavel
06.01.2017
22:29:37
То что это все лежит в одном репо - это просто так получилось. Можно разложить их в 2 репо.

Виталий
06.01.2017
22:30:43
ну, тоже верно :)
Ок, Павел, есть мысли по поводу деплоя на прод контейнеров после билда в CI?