Обновления сайтов

Задача: Есть сайт продукта. Время от времени необходимо его обновлять.
Процесс осложняется тем, что кроме чисто контентных страниц (описание продукта, документация, о компании и т. д.) существуют сервисные страницы:

  • скачивание продукта,
  • получение триального регистрационного ключа,
  • проверка обновлений,
  • запросы на получение скидок,
  • покупка продукта,
  • спецраздел для реселлеров со своими сервисами,
  • дополнительная информация, которая доступна только из desktop-продукта,
  • ...

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

Такая «трехзвенная» система позволяет:

  • всегда иметь готовый к обновлению сайт с минимальными изменениями,
  • иметь возможность тестировать новые фичи без боязни все поломать