Использование распределенных VCS, таких как mercurial, git или bzr, является хорошей идеей.
У вас может быть отдельная ветка для производства (или даже ветка для конкретного клиента в случае настроек).
Преимущества, которые я вижу:
Независимо от вашей экосистемы разработки (Rails, Java) или VCS (GIT, SVN), наиболее важным аспектом развертывания вашего кода в любой среде является непрерывная интеграция .
Вот некоторые вещи, которые следует учитывать:
В зависимости от вашей производственной среды. реализация этого может быть довольно тривиальной или довольно сложной. Вот еще несколько ресурсов, которые помогут вам начать:
Оба этих ресурса должны дать вам достаточно идей для создания вашего собственного процесса.
Мы используем репозиторий Git в сочетании с Webistrano.
Git позволяет разработчикам управлять своим кодом децентрализованно и со всеми преимуществами VCS.
Webistrano позволяет разработчики или соответствующие менеджеры, чтобы отправить код на платформу разработки, а затем на производственную платформу, просто щелкнув веб-интерфейс. Это инструмент, разработанный для сред RoR, но он будет работать с небольшой настройкой практически в любой среде. Еще одним преимуществом Webistrano является то, что он позволяет легко откатывать в случае сбоев развертывания, что является очень хорошей особенностью.
Как системный администратор, я больше не могу жить без Webistrano. Это позволяет мне перестать беспокоиться о разработчиках (или сисадминах!), Которые делают глупости с производственными серверами во время развертывания. Он автоматизирован и прост.