Перейти к основному содержимому

Окружения сервиса: testing, prestable, production

·181 слово·1 минута
Оригинал опубликован в Telegram

На собеседованиях мы можем задать вопрос вида: “Как код попадает на боевые сервера?”

Вопрос деплоя сервиса имеет множество аспектов. Ожидается, что кандидат обратит внимание на несколько сред выполнения.

В нашей команде используются следующие среды выполнения сервиса:

  • development — локальная разработка сервиса
  • stand — стенд с работающей версией сервиса для каждого pull request
  • testing — собранный релиз-кандидат
  • prestable — продакшн версия сервиса с частью реального трафика
  • production — продакшн версия сервиса с 100% пользовательского трафика

Разработчики проводят большую часть времени в окружениях development и stand, где происходит разработка и отладка сервиса.

Тестировщики в основном фокусируются на окружениях stand и testing, где осуществляется основной отлов багов.

Тем не менее, как разработчики, так и тестировщики следят за всеми окружениями.

Конечные пользователи видят два окружения: prestable и production. В обеих средах развертывается финальная версия сервиса, однако prestable получает только небольшую долю продакшн трафика.

Для небольших сервисов мы можем пропустить prestable, но для критичных сервисов prestable помогает обнаружить неудачные релизы и вовремя их откатить с минимальными потерями.

Кроме того, существуют специализированные окружения, такие как stress, о которых можно поговорить в другой раз.