слов.арь · bisovka

объясни staging-vs-production --простыми-словами

Иллюстрация к термину «Staging vs Production»

Staging vs Production

КороткоКогда мы разбирали deploy, я говорил, что это момент, когда двери дома распахиваются и публика заходит внутрь.

Когда мы разбирали deploy, я говорил, что это момент, когда двери дома распахиваются и публика заходит внутрь. Оказывается, умные команды перед этим еще раз прогоняют весь спектакль до этого — перед совершенно пустым залом.

Здесь есть два мира, и большинство новых создателей знают только об одном. Production — это настоящее: живое приложение, которым пользуются реальные клиенты, с реальными заказами и реальными деньгами. Staging — почти идентичная копия этого приложения, которую никогда не видит настоящий клиент и где ты репетируешь.

Генеральная репетиция против премьеры. Production — это премьера. Полный зал, билеты проданы, каждая забытая реплика происходит перед людьми, которые заплатили. Staging — финальная генеральная репетиция на той же сцене, с теми же декорациями, тем же светом, тем же сценарием, только кресла пустые. Если ломается реквизит или актер забывает текст, это стоит тебе только еще одного прогона. Ни одна серьезная постановка не пропускает генеральную репетицию и не выходит сразу на премьеру. Staging — твоя генеральная репетиция.

Зачем целая копия, а не просто "быть аккуратнее"? Потому что единственный честный способ узнать, что изменение правда работает, — запустить его в мире, который выглядит точно как настоящий: с той же настройкой, теми же формами данных, той же проводкой, но без реальных последствий. Проверять только на своем ноутбуке (на localhost) недостаточно, потому что твоя машина устроена не так, как живая среда, и снаружи вещи ведут себя иначе. Staging закрывает этот разрыв. Это близнец production, из которого вынули живых клиентов.

Так что ритм deploy растягивается на три удара:

  1. Собери и сломай у себя на машине. Приватно. Никто не смотрит, как ты спотыкаешься.
  2. Отправь на staging. Генеральная репетиция. Прокликай все, прогони настоящий сценарий, поймай то, что разваливается.
  3. Только когда на staging все выглядит чисто, отправляй в production. Премьера, намеренно, а не случайно.

"Сначала отправим на staging" в переводе значит: давай прогоним это в мире-близнеце, прежде чем рисковать настоящим. Это не бюрократия. Это тот же инстинкт, что стоит за контролем версий и pull requests. Сначала строим в безопасности, доказываем, что работает, потом даем потрогать реальность.

Одна честная ремарка, чтобы ты не перестроил лишнего. Многие маленькие проекты вообще пропускают staging, и это совершенно нормально, когда радиус взрыва крошечный и можно просто откатиться. В день, когда на кону реальные клиенты и реальные деньги, репетиция перед пустым залом перестает быть опцией.

Production — премьера. Staging — генеральная репетиция на той же сцене, но с пустыми креслами. Репетируй там. Выпускай сюда.

← все термины