2016-09-02 5 views
0

Я осуществляю непрерывную доставку с использованием некоторых технологий и услуг, таких как докер, судоходный, AWS эластичный бобовый шток и т. Д. Однако требуется несколько (5 ~ 7) минут к приложению, которое будет автоматически развернуто на рабочий сервер, от нажатия до репозитория git.Сокращение времени доставки при непрерывной доставке, особенно в исправлении

Это довольно аккуратно, но иногда я могу сразу применить небольшое исправление для исправления, а на этот раз 5 ~ 7 минут слишком долго ждать, потому что это в основном о создании образа докера и его загрузке/загрузке, или работает npm test и npm install команд. Иногда я хочу пропустить эти шаги и немедленно применить изменения.

Я думаю о нескольких идеях, но у них есть некоторые проблемы:

  • Открыть какой-то секрет интерфейса URI через HTTP на сервере для исправления и перезагрузки себя
    • Есть две проблемы для этого; мы должны будем предоставить разные ключи github для контейнеров, и это слишком сложно, чтобы гарантировать, что все экземпляры будут исправлены, поскольку для балансировки нагрузки имеется несколько экземпляров.
  • Ручной труд. Подключение непосредственно к экземплярам и залатать их
    • Но мы запустили систему непрерывной доставки, чтобы избежать этого

Есть ли лучшая практика для такого рода проблемы?

+0

Общая рекомендация: никогда не пропустите шаги вашего конвейера (это может привести к неизвестным ошибкам), никогда не выставляйте интерфейсы secure-by-obscurity (может привести к эксплойтам) и никогда не патчи вручную (может привести к пропущенным файлам). Вместо этого выясните, почему это медленно. У вас есть реестр докеров? Вы каждый раз натягиваете слой или здание с нуля? – jedifans

ответ

0

Для развертывания мы используем развертывание на основе SCP, вы также можете немного его формализовать, используя capistrano, phing/whatever suites you.

Итак, установите сервер SSHd в свой контейнер кода приложения и разверните его таким образом, если вам нужно исправить то, как вы упомянули выше.

Таким образом, вы смешиваете развертывания на основе изображений, а также развертывания на основе исправлений. Вы должны всегда гарантировать, что вы также создайте изображение в фоновом режиме. В противном случае римейк контейнера изменит ваше исправление состояния/отката.