Тестовая среда или stage среда
Было две среды: разработки и продуктивная.
В среде разработки разработчики разрабатывают (*выдержка из IT-скороговорки) новые сервисы и новые возможности, и после того, как они готовы, переносят их в продуктивную среду, где конечные пользователи пользуются ими.
Но так как у нас много связанных сервисов⛓, и в среде разработки они отличаются от продуктивных, то очень сложно тестировать новые возможности, и при переносе в продуктив таких изменений вылазят неприятные «баги». Так же ресурсы среды разработки очень сильно отличаются от продуктивных, поэтому сложно провести нагрузочное тестирование на систему в целом, да и на отдельные сервисы тоже.
Поэтому было принято решение💡: развернуть ещё одну среду, в которой состояние сервисов, данные и ресурсы были бы как в продуктивной среде. Так и появилась тестовая или stage среда.
Теперь любые изменения перед тем, как перенести в продуктивную среду, выкатываются в тестовую, там проверяются, и только затем попадают в продуктив.
З.Ы.: Если что, я ничего тебе не говорил :)
💬 Мнение Девопсов:
1) минусы:
- дорого (так как приходится держать идентичную проду конфигурацию);
- долго (так как разработчикам приходится ждать пока пройдут тесты на stage среде).
2) плюсы:
- проверка изменений происходит в несколько этапов, отлавливаются баги до того, как попадут в продуктивную среду;
- можно не бояться «репетировать» изменения прода на stage среде, так как если что-то пойдет не так — это не отразится на бизнесе, а мы набьем шишки, но в проде уже сделаем все быстро и красиво (это про инфраструктуру);
- пока не используем, но уже можно на stage проводить нагрузочное тестирование, и выявлять слабые места;
- ПО могут посмотреть изменения на stage среде и после одобрения только пустить их.