В последнее время я много читал о различных процессах развертывания веб-приложений, использующих SVN или GIT, с целью перестройки того, как мы сейчас развертываем в том месте, где я работаю.
Как и во многих вариантах Agile, предполагается, что все, что предназначено для мастера или магистрали, готово к производству. И GitHub, и Etsy, http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/, говорят, что они работают на этой основе (хотя Etsy на самом деле имеет промежуточную среду).
Этот процесс предполагает, что все юнит-тесты и тесты CI были выполнены. Вы запускаете тесты локально и на CI, а затем фиксируете транк. Итак, на данный момент ваш код технически исправен.
Ваш код может быть технически правильным, но пользовательское / функциональное тестирование может выявить больше ошибок, особенно когда дело доходит до внешнего тестирования.
У меня вопрос такой. Где владельцы QA и Business тестируют внесенные вами изменения в функции? На вашей локальной машине для разработки, прежде чем выполнять коммит на транк, или на машине QA / staging?
Если у вас есть промежуточный компьютер, который запускается из транка, и вы предполагаете, что весь код, переданный в транк, готов к работе ... эх ... тогда, в какой момент код будет подписан и пригоден для использования как в технической, так и в коммерческой сфере? в перспективе? Если у вас есть только одна промежуточная машина, много разработчиков, и именно здесь код должен быть проверен, то как вы можете развернуть из транка, так как многие изменения разработчика могут ожидать выхода из системы.
Мне было бы интересно услышать, как другие подошли к этому?