2015-01-04 3 views
3

Я планирую использовать Docker для производственного приложения, и я не могу представить простой способ для развертывания в нашем экземпляре EC2 (запустив контейнер докера), не просто убив первый Докер-контейнер и запуск второго. Я знаю некоторые решения, такие как Centurion, Dokku и HAProxy, но все они кажутся немного сложными для того, что, похоже, должно быть простой задачей. Есть ли лучшие способы?Docker zero downtime deployment

+0

Очень широкий вопрос. «Нулевой простоя» означает, что старая версия приложения должна быть запущена во время развертывания новой версии. Это также может быть осложнено необходимостью того, чтобы некоторые приложения были отключены для изменений схемы БД. К счастью, Docker очень быстро запускается, поэтому ... если мы проигнорируем сложность, самый простой способ сделать почти нулевое время простоя: 1) вытащить новую версию из вашего реестра 2) остановить остановку старой версии и 3) запустить новую версия. –

+0

Итак, за 10 секунд я трачу на уничтожение существующего контейнера и запуск нового, все запросы на сервер блокируются. Я хотел бы систему, которая предотвращает это 10 секунд простоя, тем более, что мы отправляем часто. – jtmarmon

+0

10 секунд? Вы начнете контейнер меньше! Вы также проигнорировали мою квалификацию ... Является ли ваше приложение полностью без гражданства? (немногие). Нужно ли снимать состояние в автономном режиме для обновления? (например, изменение схемы БД). Для получения дополнительной информации по этой теме я предлагаю исследовать развертывание Blue/Green. См.: Http://martinfowler.com/bliki/BlueGreenDeployment.html В заключение, вот почему вам понадобится нечто большее, чем просто Docker. И да, это сложно. –

ответ

5

Если он не имеет гражданства, используйте прокси-сервер перед контейнерами. Запустите новый контейнер, замените прокси-сервер, а затем уничтожьте старый контейнер.

Если нет, посмотрите на flocker.

+0

благодаря тому, что я, вероятно, собираюсь сделать это с помощью nginx – jtmarmon

+0

@JasonMarmon Я вспомнил этот поток, читая следующие статья http://java.dzone.com/articles/load-balance-tomcat-nginx-and Решение применяется к tomcat, но предоставляет решение для приложений, использующих сеансы. –

Смежные вопросы