Наша система включает в себя множество веб-сайтов .NET, библиотек классов и базы данных MSSQL.Мы используем SVN для контроля версий и TeamCity для автоматической сборки на тестовом сервере.
Наша команда обычно работает над 4 или 5 проектами одновременно.Мы стараемся вносить много изменений в масштабный выпуск каждые 2-4 недели.
Моя проблема заключается в отслеживании всех зависимостей для развертывания.Пример:
Веб-сайт A не может быть запущен, пока мы не развернем ветвь X библиотеки классов B, построенную в свою очередь против магистрали библиотеки классов C, которая требует обновлений конфигурации Y и Z и обновления базы данныхD, для которого требуется Migration Script E ...
Это становится еще более сложным - например, проверка того, что каждый проект разработчика действительно совместим с другими и строится с использованием тех же версий.Да, это не только техническая проблема, но и проблема управления.
В настоящее время наше неоптимальное решение:
- доска с перечнем функций, которые еще не реализованы
- полагаясь на нашу память и интуицию при планировании развертывания, до тех пор, пока мы не будем уверены, что все продумали ...
- пробный прогон в нашей промежуточной среде,Это хороший признак, но мы часто не уверены, что Staging синхронизирован на 100% с Live - часть проблемы, которую я надеюсь решить.
- некоторая доля успеха в день развертывания.
Пока все хорошо, за исключением нескольких близких звонков.Но по мере роста нашей системы я бы хотел более научную систему управления выпусками, обеспечивающую большую гибкость, такую как возможность развертывания отдельного изменения или исправления самостоятельно, безопасная, зная, что больше ничего не сломает.
Полагаю, что лучшее решение предполагает какую-то систему нумерации версий и, возможно, использование инструмента управления проектами.Мы начинающий, поэтому мы не слишком горячо придерживаемся жестких процессов, но мы рады начать, если это не увеличивает накладные расходы, чем стоит.
I 'Я хотел бы услышать совет от других команд, которые решили эту проблему.