Насущие вопросы по инфраструктуре на базе docker
Всем привет! Пытаюсь расставить в голове все точки над i, помогите пожалуйста.
1. Есть кучка серверов под web с различными мощностями с чисто установленным софтом nginx, php-fpm, PostgreSQL. Сейчас внедряем 3 новых сервера с docker swarm, где будут контейнеры с микросервисами. Вопрос: На сколько адекватно переинсталлить уже имеющиеся разношерстные сервера под web, натянуть на них docker-engine, запустить текущие сервисы nginx/php-fpm/PostgreSQL в контейнерах и пристегнуть их worker'ами к manager'ам для микросервисов на новой инфраструктуре? Или как тогда всё превратить в docker swarm инфраструктуру?
2. Как лучше обеспечить управление конфигурацией nginx/java........ и т.д. в контейнерах? Собирать каждый раз образ с новым nginx.conf из которого будем запускать контейнер или распространять nginx.conf на хост-машины и подключать volume к контейнеру?
3. Такой же вопрос и в части деплоя приложений. Каких-нибудь php/python-скриптов. Сейчас код хранится в GIT'е и деплой релиза, это просто git checkout на нужную ветку в локальном репозе на web-сервере. Может быть вывести volume на хост-машине для контейнера с web-сервером, где будет локальный репозиторий GIT? Или как-то автоматизировать сборку контейнера внутри которого локальный репозиторий GIT с нужной веткой, мне кажется это очень неудобным.
4. У меня есть несколько условно разделяемых подсистем в рамках моего проекта напр. 3, они раскиданы по 2м ЦОДам, из серии web-сайт, Микросервисы, событийно-ориентированные приложения на Java для внутренних задач. Как лучше сделать, 3 docker swarm инфраструктуры или всё завести в одну инфраструктуру. Мне кажется лучше 3и фермы, т.к. нечётное число ЦОДов и протокол RAFT несовместимы. Тогда встаёт вопрос на сколько адекватно управлять Ansible разными swarm-инфраструктурами? И чем лучше управлять, когда у тебя несколько независимых swarm-инфраструктур?