Я запускаю кластер CoreOS на AWS. На каждом экземпляре в AWS я запускаю док-контейнер. Например, у меня есть 2 экземпляра с именем API, которые запускают образ докера с нашей последней версией программного обеспечения.
У меня также есть 6 экземпляров процессоров, которые запускают другой образ докера с последней версией.
Я хочу обновить каждый контейнер в своем кластере, поэтому сегодня я использую GoCD с конвейером для активации ansible-playbook, который делает все работа. Конвейер прослушивает проекты github, и как только я вношу изменения в эту ветку, он активирует конвейер.
Он создает новый образ докера для API и процессоров. Он загружает новый обновленный образ в dockerhub. Затем он подключается к экземплярам AWS и выдает извлечение докера для только что загруженного образа. В конце концов он запускает контейнеры с новыми извлеченными изображениями.
Именно так я сейчас контролирую развертывание своей версии.
Проблемы:
- это занимает много времени
- иногда выходит из строя по разным причинам
- это не гибко (мне нужно жестко закодировать конкретную ветку, чтобы слушать на github и извлекать файлы)
Есть ли у вас какие-либо другие предложения\инструменты для выполнения этой работы? Иногда мне нужно обновить 3 машины, а иногда 7, и мне нужно что-то масштабируемое.