Задача: Есть сайт продукта. Время от времени необходимо его обновлять.
Процесс осложняется тем, что кроме чисто контентных страниц (описание продукта, документация, о компании и т. д.) существуют сервисные страницы:
- скачивание продукта,
- получение триального регистрационного ключа,
- проверка обновлений,
- запросы на получение скидок,
- покупка продукта,
- спецраздел для реселлеров со своими сервисами,
- дополнительная информация, которая доступна только из desktop-продукта,
- ...
При обновлении этого проекта было решено сделать 3-ступенчатую систему.
Существуют 3 версии сайта: dev, release, live.
Dev — активно разрабатываемая версия. Все данные — тестовые. Может чего-то не хватать, что-то может не работать. Активно тестируется конретная новая фича. После окончания разработки и тщательного тестирования новая функция добавляется в Release-версию.
Release — стабильная версия. Максимально приближена к live-версии продукта. Происходит интеграционное и регрессионное тестирование. После успешного прохождения тестов release-версия помещается в live.
Live — версия, находящаяся на «живом» сайте и используемая клиентами.
Такая «трехзвенная» система позволяет:
- всегда иметь готовый к обновлению сайт с минимальными изменениями,
- иметь возможность тестировать новые фичи без боязни все поломать