Мы - группа, которая начала работать над довольно большим сайтом с существующей кодовой базой. У нас есть тестовый и производственный сервер.
Наша идея состоит в том, чтобы иметь тестовое хранилище с несколькими разработчиками, имеющими push-доступ; и благословенное хранилище, к которому могут подтолкнуть лишь немногие. Предполагается, что блаженное хранилище всегда стабильно и представляет собой последнюю производственную версию.
Как я могу автоматизировать процесс передачи файлов в производство? Разве плохо иметь производственные файлы под контролем версий? Таким образом, отправка в благословенный репозиторий будет означать развертывание. Но что происходит, когда возникают конфликты слияния? Будет ли работать производственный сервер, пока он не будет решен?
Я многое узнал о развертывании, посмотрев, как работает Capistrano. В то время я работал с RoR, так что это был логичный выбор, и хотя я так и не смог заставить себя вести себя в проекте, над которым я работал, способ, которым он выполняет автоматические обновления, был очень полезен.
Вы можете оказаться в ситуации, когда вы можете использовать его напрямую даже - он не обязательно привязан к Rails - но если нет, то, как он ведет себя, безусловно, полезно.
источник
В зависимости от используемой вами платформы, существует множество инструментов, которые могут иметь смысл использовать для автоматизации производственных выпусков. Я работаю в магазине .NET, поэтому мы использовали NAnt (хотя MSBuild - лучший вариант в настоящее время). На Java есть Ant и, возможно, другие вещи. У Руби есть такие вещи, как Рейк. Кроме того, существуют платформы непрерывной интеграции, такие как TeamCity и Hudson, которые также можно использовать для управления выпусками.
Я никогда не видел и не слышал о том, чтобы иметь код продукта непосредственно в отдельном репозитории с исходным кодом, но это, безусловно, может сработать. Как сказал back2dos, ключом является автоматизация. У нас есть наши сценарии сборки, разработанные для проверки из исходного кода, сборки и отправки в промежуточную среду для тестирования. Затем, когда нам нравится, как работает постановка, скрипты копируются из QA в Prod.
Я рекомендую взглянуть на инструменты и выбрать один, а затем разработать процесс, который будет хорошо работать с выбранным инструментом. Не пытайтесь изобретать велосипед слишком много - это очень решенная проблема.
источник