Понимание непрерывного развертывания

Я озадачен идеей непрерывного процесса развертывания. Я пытаюсь понять это, поэтому я могу упустить / смешать много вещей, так что извините меня за это:

У меня есть поток, как это:

а) Развертывание (Первый раз)

  • Сборка пакета из SCM
  • SSH в облачный экземпляр
  • Настройка ЛАМПЫ
  • Настройка каталогов приложений, создание символических ссылок, запуск миграций БД и т. Д.
  • Запустите apache / mysql -done

б) повторное развертывание (второй раз)

Теперь проблема в том, как мы будем исправлять изменения, которые мы сделали после предыдущего развертывания. Допустим, у нас есть изменения БД, а также изменения исходного кода или исправления ошибок. Некоторые из вопросов, которые я имею в виду, как

  • Как запомнить / сохранить каждую конфигурацию развертывания (точные конфигурации, которые мы запускали в первый раз)
    (Пароль базы данных, имя хоста, IP-адрес и различные варианты конфигурации, которые мы сделали, относились к каждому развертыванию, если у нас настроены разные / несколько серверов развертывания)
  • Допустим, наша сборка пакета была основана на экспорте SVN / GIT, поэтому мы не можем использовать обновление SVN / GIT
    В таком случае, как залатать изменения или как лучше?
  • У нас могут быть статические файлы, накопленные приложением, например, вложения / документы с прошлого раза
    Как обращаться с тем статическим содержимым, которое является частью приложения?
  • Так как у меня есть db под инструментом миграций (liquibase), поэтому перенести изменения на сервер не сложно.
    Но что такое лучший поток (например, взять резервную копию …)

Эти вопросы проистекают из моего незнания об этих инструментах и ​​технологиях, а также из-за того, что я не знаком с непрерывной интеграцией / доставкой / развертыванием (если это все).

Вы можете спросить, что я сделал до сих пор. Мои текущие инструменты развертывания включают bash + perl + liquibase.
Каждый раз, когда у нас есть изменения, мы должны собрать полный пакет сборки и выполнить одни и те же шаги. Проблема в

  • Это не полностью автоматический
  • Мы должны помнить настройки развертывания для каждого экземпляра,
  • Получить статический контент из старого каталога развертывания,
  • Используйте временные ссылки

Мое текущее приключение — перенести все этапы сборки / развертывания на Phing . я уже видели так что это не касается моих вопросов в деталях.

1

Решение

  1. Для автоматизации конфигурации проверьте марионетка
  2. Держите схему базы данных и примеры данных под контролем исходного кода, разверните ее как настоящий код!
0

Другие решения

Других решений пока нет …