В моей компании у нас есть группа из 8 веб-разработчиков для нашего бизнес-сайта (полностью написанная на PHP, но это не должно иметь значения). Все в группе работают над разными проектами одновременно, и когда они выполняются с их задачей, они сразу же развертывают его (в последнее время бизнес быстро развивается).
В настоящее время разработка происходит на одном общем сервере со всеми разработчиками, работающими на одной и той же базе кода (используя RCS для блокировки файлов вдали от других). Когда развертывание происходит, измененные файлы копируются на "промежуточный" сервер, а затем синхронизация script загружает файлы на наш главный веб-сервер, откуда он распространяется на остальные 9 серверов.
Довольно счастливо, что команда веб-разработчиков попросила нас о помощи для улучшения процесса (после того, как мы долгое время жаловались), и теперь наша идея настройки их среды для разработчиков выглядит следующим образом:
- Dev-сервер с виртуальными каталогами, так что каждый имеет свою собственную базу кода,
- SVN (или любой другой VCS) для отслеживания изменений
- центральный сервер для тестирования с последним проверенным кодом
Вопрос в следующем: как нам удается развернуть измененные файлы на сервер, не случайно загружая ошибки из других проектов? Моя первая идея состояла в том, чтобы просто экспортировать последнюю версию из репозитория, но это не даст полного контроля над файлами.
Как вы справляетесь с такой ситуацией? Какие сценарии развертывания у вас есть в действии?
(Как особая проблема: веб-сайт органично вырос за последние 10 лет, поэтому проекты не разбиваются на небольшие куски, но файлы для одной конкретной функции распространяются по всему дереву каталогов.)