Во-первых, моя (упрощенная) проблема в двух словах:
Мой рабочий цикл выпуска таков: каждый выпуск мы в настоящее время выполняем полное копирование / развертывание веб-приложения. Проще говоря, мы создаем архив, отправляем его на рабочий сервер и устанавливаем. Просто как тот. Стек технологий - LAMP, поэтому в настоящее время нет этапов компиляции кода.
Проблема в том, что этот архив становится все больше, и нам нужно развернуть этот архив на многих серверах. Хотя это очень надежный процесс, накладные расходы и время на выполнение этого развертывания складываются.
Я хочу выполнить дельта-релизы / выпуски исправлений для этого веб-приложения LAMP, которое не требует полного развертывания архива.
Я использую SVN для моей VCS, и я не хочу, чтобы мои развернутые приложения были рабочими копиями SVN. Я экспериментировал с использованием патчей (инструмент Linux CLI) и файлов патчей, но в этом процессе есть дыры. Например, при исправлении одного и того же файла более одного раза возникают накладные расходы разработчика / оператора, чтобы отслеживать, какие файлы были исправлены, от каких версий до каких версий на производственном сайте (что быстро усложняется при выполнении нескольких последовательных исправлений) .
В конечном счете, мне нужен надежный метод для выпуска дельта-патча для веб-приложения LAMP, который не требует рабочей копии SVN на производственном веб-сервере.
Как другие решают эту проблему? Вы просто используете rsync с опцией удаления и избегаете файлов патчей?
Я не хочу, чтобы мои развернутые приложения были рабочими копиями SVN
Но можешь ли ты согласиться просто использовать SVN на производстве и есть WC за пределами webroot? В этом случае вы можете обновить WC по запросу (меньше трафика) и экспортировать WC в веб-пространство.
Я бы использовал rsync для развертывания из svn export
ГОЛОВКИ репозитория для обновления серверов приложений. Rsync проверен на практике и готов к работе без какой-либо работы с вашей стороны. В зависимости от того, сколько серверов вам нужно развернуть, вы можете посмотреть mrsync если размеры файлов начали становиться очень большими, и вы хотели быстро развернуть на большом количестве машин через многоадресную рассылку (возможно, излишек для ваших нужд, если у вас нет много серверов или много данных в заданной дельте, но, безусловно, вариант).