Процесс создания новой сборки и ее выпуска в производство является критическим шагом в SDLC, но он часто остается задумкой и сильно варьируется от одной компании к другой.
Я надеюсь, что люди поделятся улучшениями, которые они внесли в этот процесс в своей организации, поэтому мы все можем предпринять шаги для "уменьшения боли".
Итак, вопрос заключается в том, чтобы указать одну болезненную/трудоемкую часть процесса выпуска и что вы сделали для ее улучшения?
Мой пример: у предыдущего работодателя все разработчики сделали изменения базы данных в одной общей базе данных разработки. Затем, когда дело дошло до времени выпуска, мы использовали Redgate SQL Compare для создания огромного script из различий между базами данных Dev и QA.
Это работает достаточно хорошо, но проблемы с этим подходом: -
- Все изменения в базе данных Dev включены, некоторые из которых все еще могут быть "незавершенными".
- Иногда разработчики вносили противоречивые изменения (которые не были замечены до выпуска выпуска)
- Процесс создания и проверки script (по проверке, я имею в виду, пытаюсь устранить проблемы, такие как проблемы 1 и 2), был трудоемким и ручным процессом.
- Когда возникли проблемы с script (например, порядок, в котором выполнялись действия, такие как создание записи, которая основана на записи внешнего ключа, которая находится в script, но еще не запущена), потребовалось время, tweak 'так, чтобы он работал гладко.
- Это не идеальный сценарий для непрерывной интеграции.
Итак, решение было: -
- Соблюдать политику всех изменений в базе данных, необходимо создать сценарий.
- Соглашение об именах важно для обеспечения правильного выполнения порядка скриптов.
- Создайте/используйте инструмент для запуска скриптов во время выпуска.
- У разработчиков была своя собственная копия базы данных, которая развивается против (так что больше не было "шагающих друг на друга" ).
Следующий релиз после того, как мы начали этот процесс, был намного быстрее с меньшим количеством проблем, ведь единственные проблемы были обнаружены из-за нарушения пользователями правил, например, не создания script.
Как только проблемы с выпуском QA были исправлены, когда пришло время выпускать в производство, было очень плавно.
Мы применили несколько других изменений (например, введение CI), но это было самым значительным, в общем, мы сократили время выпуска примерно с 3 часов до максимум 10-15 минут.