# Описание различия сред

# Среды платформы и жизненный цикл изменений

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

##### **Среды**

<div dir="ltr" id="bkmrk-%D0%A1%D1%80%D0%B5%D0%B4%D0%B0-%D0%9D%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%90%D0%B4%D1%80"><div><table style="width: 100%;"><thead><tr><th scope="col" style="width: 7.50998%;">Среда</th><th scope="col" style="width: 74.2649%;">Назначение</th><th scope="col" style="width: 18.239%;">Адрес</th></tr></thead><tbody><tr><td style="width: 7.50998%;">DEV</td><td style="width: 74.2649%;">Самая актуальная версия кода: весь код с реализованными и залитыми фичами. Здесь проверяют новые возможности и отлаживают изменения на свежем коде.</td><td style="width: 18.239%;">assistant-dev.is74.ru</td></tr><tr><td style="width: 7.50998%;">QA</td><td style="width: 74.2649%;">Среда будущего релиза. Сюда выкатывают только то, что готовят к следующему выпуску: проверяют изменения и принимают релиз до выхода в прод. Может заметно отличаться от DEV — на ней только изменения из релизной ветки.</td><td style="width: 18.239%;">assistant-qa.is74.ru</td></tr><tr><td style="width: 7.50998%;">TEST</td><td style="width: 74.2649%;">Код совпадает с тем, что работает на PROD. После релиза остаётся на этой версии до следующего релизного цикла — чтобы проверять правки для прода на том же коде, что в бою. Подходит для регрессии «как на проде» без работы с боевыми структурами. Может заметно отличаться от QA и DEV.</td><td style="width: 18.239%;">assistant-test.is74.ru</td></tr><tr><td style="width: 7.50998%;">PROD</td><td style="width: 74.2649%;">Боевая среда. Два инстанса: внутренний ПАКЦ и Внешний ПАКЦ.</td><td style="width: 18.239%;">assistant.is74.ru (внутренний);

ai-assistant.is74.ru (внешний ПАКЦ⟩

</td></tr></tbody></table>

</div></div>##### **Что важно помнить**

- У каждой среды своя база данных: свои сценарии, инструменты, пользователи и права. Они независимы.
- Публикация или правка на одной среде не появляется на другой сама. Сценарии между средами можно переносить через экспорт/импорт.
- У DEV, TEST и QA общий audio socket, у PROD — свой. Поэтому тестовые звонки на DEV, QA и TEST идут через один шлюз и не затрагивают боевой audio socket PROD.

##### **Релизный цикл**

1. **Планирование.** Заранее определяется список фич и фиксов, которые войдут в релиз.
2. **Сборка.** По этому списку разработчик собирает релизную ветку и релизный тег. В тег попадают только согласованные изменения; всё остальное, что уже есть в DEV (master), в релиз не входит и остаётся только на DEV.
3. **QA.** Разработчик выкатывает тег на QA, обеспечивает работоспособность сервисов, добавляет или собирает новые сервисы релиза. На QA действует только текущий тег — сторонние изменения без согласования не добавляются.
4. **Приёмка.** После согласования релиза тег отправляется на TEST — выполняется повторная проверка.
5. **Согласованность.** Все изменения в теге разработчик отправляет и на TEST, и на QA, чтобы они не расходились.
6. **Прод.** Проверенный тег выкатывается на продовые инстансы (внутренний и Внешний ПАКЦ). QA освобождается и может принять следующий тег. Менять тег на TEST при этом запрещено.
7. **После релиза.** TEST остаётся на версии прода до следующего релиза с QA.

##### **Правки для прода после релиза**

Изменения, которые понадобились уже после выхода релиза, проводятся и проверяются через TEST (без QA). Любые изменения — и в составе тега, и вне его — в любом случае сначала проходят через DEV.