БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

Staging и production: правильное окружение для разработки

Окружения dev, staging и production для разработки магазина на 1С-Битрикс

«Давай поправим прямо на боевом, там мелочь» — фраза, после которой магазин иногда ложится в самый неподходящий момент. Разработка и проверка на production — это игра, где выигрыш измеряется сэкономленными минутами, а проигрыш — потерянными заказами, испорченными данными и репутацией. И рано или поздно эта игра проигрывается.

Эта статья — о том, как выстроить правильные окружения для разработки магазина на 1С-Битрикс: зачем нужен staging, как сделать его похожим на бой, как синхронизировать и обезличивать данные и безопасно деплоить изменения. Разберём практику, которая превращает выкатку из риска в рутину. Навести порядок в существующем проекте помогает аудит и оптимизация.

Коротко

  • Разработка на боевом сайте — источник простоев и потерянных заказов; изменения обкатывают на staging.
  • Staging — окружение, максимально похожее на production по версиям, конфигу и структуре данных.
  • Боевую базу на staging переносят с обязательным обезличиванием персональных данных.
  • Деплой на бой — через git и CI/CD, атомарно и с готовым откатом, а не ручным FTP.

Почему нельзя разрабатывать на боевом сайте

Боевой сайт — это место, где покупатели прямо сейчас оформляют заказы, а обмен с 1С двигает реальные остатки и деньги. Любое изменение здесь применяется мгновенно и на всех: ошибка в коде, неудачная миграция базы, забытый тестовый режим оплаты — всё это сразу бьёт по клиентам и обороту.

Проблема не только в риске падения. На боевом сайте невозможно спокойно экспериментировать: нельзя «сломать и посмотреть», нельзя проверить обновление, нельзя прогнать тесты, не задев живых пользователей. Отсутствие отдельных окружений превращает каждое изменение в стресс и заставляет команду бояться правок — а значит, магазин развивается медленно и нервно. Правильные окружения снимают этот страх.

Три окружения: dev, staging, production

Зрелая схема разработки на 1С-Битрикс обычно опирается как минимум на три контура, у каждого своя роль.

ОкружениеДля чегоКто пользуется
Dev (локальное)Написание и первичная проверка кодаРазработчик
StagingОбкатка изменений на копии бояКоманда, QA, заказчик
ProductionБоевой сайт для покупателейКлиенты

Изменение движется слева направо: рождается на dev, проверяется на staging и только потом попадает на production. Каждый переход — это фильтр, отсеивающий проблемы там, где их цена минимальна. Чем раньше поймана ошибка, тем дешевле она обходится.

Инфраструктура магазина: окружения и мониторинг РазработкаstagingCI/CDсборка, деплойProductionбоевой серверМониторинглоги, алертыОтдельные окружения и мониторинг делают выкатку безопасной
Схема: код проходит через staging и CI/CD на боевой сервер, а мониторинг с логами и алертами сразу показывает проблемы. Разделение окружений делает релизы безопасными.

Что такое staging и зачем он нужен

Staging — ключевое звено схемы. Это окружение, максимально похожее на боевое, куда изменения попадают перед выкаткой на production. Его задача — воспроизвести бой настолько точно, чтобы проблема, которая проявилась бы на проде, проявилась здесь — но без последствий для покупателей.

Что даёт staging:

Именно на staging ловятся классические «на моём компьютере работало» — расхождения между локальной средой и боем. Подробнее о механике деплоя через staging мы пишем в отдельном разборе staging-окружения и деплоя в Битрикс.

Как сделать staging похожим на бой

Ценность staging прямо пропорциональна его сходству с production. Расхождения в версиях или конфиге — главная причина, почему «на staging работало, а на проде упало». Поэтому совпадать должно максимум параметров.

  1. Версии. 1С-Битрикс и PHP тех же версий, что на бою.
  2. Конфигурация. Настройки веб-сервера, БД и модулей идентичны боевым.
  3. Состав системы. Тот же набор модулей, компонентов и доработок.
  4. Структура данных. Инфоблоки, свойства, торговый каталог совпадают по структуре.
  5. Отличия — только внешние. Тестовые платёжные шлюзы и песочницы обмена вместо боевых.

Различаться должны лишь реквизиты внешних сервисов и, возможно, объём данных. Всё остальное держат как на бою — иначе проверки на staging дают ложное чувство безопасности. Инфраструктурную основу для этого мы разбираем в статье про хостинг и инфраструктуру на BitrixVM.

Синхронизация и обезличивание данных

Чтобы staging был реалистичным, на него переносят боевую базу — но никогда «как есть». Персональные данные клиентов в менее защищённом окружении — это и риск утечки, и нарушение 152-ФЗ.

Правило: на staging не должно быть реальных телефонов, адресов и данных клиентов в открытом виде. Боевую базу переносят с обезличиванием ПДн.

Практика такая: боевую базу копируют, чтобы получить реалистичный объём и структуру, а персональные данные заменяют тестовыми значениями. Тогда вы работаете с данными, похожими на боевые по количеству и связям, но без риска раскрыть чьи-то реальные контакты. Аккуратную работу с данными и такими преобразованиями удобно строить через D7 ORM, где выборки и обновления описываются явно и предсказуемо.

Обмен с 1С на непроизводственных стендах

Отдельная зона риска — обмен с 1С. Подключать staging к боевой учётной системе нельзя: тестовые заказы и проверки могут создать реальные документы и испортить настоящие остатки и данные учёта.

Так вы проверяете сам обмен — самое хрупкое место магазина — не рискуя боевыми данными. Про безопасную реализацию интеграционного слоя мы пишем в статье про REST, вебхуки и безопасность.

Деплой с staging на production

Проверенное на staging изменение нужно перенести на бой так же надёжно, как оно было проверено. Ручной перенос файлов по FTP — главный источник простоев и рассинхронизации: что-то забыли, что-то перезаписали, порядок нарушили. Правильный деплой воспроизводим и управляем.

Такой деплой превращает выкатку в рутину без адреналина. Полный разбор процесса — в статье про CI/CD и деплой в Битрикс.

Окружения для QA и приёмки

По мере роста команды к базовой тройке добавляют специализированные контуры. Их можно совмещать со staging или разносить.

Главный принцип неизменен: тестирование и приёмка идут не на боевом сайте, а там, где ошибка стоит только времени. Как организовать сложные доработки в такой схеме, полезно посмотреть в контексте разработки модулей под Битрикс.

Обновления Битрикса через staging

Обновления платформы — самый очевидный сценарий, где staging окупается сразу. 1С-Битрикс регулярно выпускает апдейты ядра и модулей, в том числе по безопасности, но они меняют ядро и могут задеть кастомизации.

  1. Ставим на staging. Обновление применяется на копии боя.
  2. Проверяем сценарии. Оформление, оплата, обмен, ключевые страницы — вручную и автотестами.
  3. Фиксим совместимость. Если что-то отвалилось, чиним до боя, а не на бою.
  4. Катим на production. Только после проверки, в согласованное окно, с откатом наготове.

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

Частые ошибки

Чек-лист организации окружений

  1. Три контура. Есть dev, staging и production с чёткими ролями.
  2. Staging = бой. Совпадают версии, конфиг, состав модулей и структура данных.
  3. Данные обезличены. Боевая база на staging без реальных ПДн.
  4. Обмен изолирован. Staging работает с тестовой 1С, не с боевой.
  5. Код в git. Единый источник истины для всех окружений.
  6. Деплой через CI/CD. Атомарный, воспроизводимый, с откатом.
  7. Приёмка вне боя. QA и заказчик работают на staging или демо-стенде.
  8. Обновления через staging. Апдейты Битрикса обкатываются до production.

Вывод

Правильные окружения — это не «излишество для больших проектов», а базовая гигиена разработки, которая делает изменения магазина предсказуемыми. Dev для написания, staging для обкатки, production для покупателей — эта простая цепочка отсекает проблемы там, где их цена минимальна, и снимает страх перед правками.

Ключевые детали — держать staging похожим на бой, обезличивать данные, изолировать обмен с 1С и деплоить через git и CI/CD, а не руками. Дополнительные окружения требуют ресурсов, но они несопоставимо дешевле простоя боевого магазина. Выстройте окружения один раз — и выкатка перестанет быть игрой с высокими ставками, превратившись в спокойную рутину.

Частые вопросы

Чем staging отличается от dev и production?

Dev — это локальное окружение разработчика, где пишут и первично проверяют код; оно может отличаться от боя. Production — боевой сайт, который видят покупатели. Staging — промежуточное окружение, максимально похожее на production по версиям, конфигу и данным, где обкатывают изменения перед выкаткой. Смысл staging в том, чтобы поймать проблемы там, где их цена — потраченное время, а не потерянные заказы на боевом сайте.

Обязателен ли staging для небольшого магазина?

Чем меньше проект, тем сильнее соблазн им пренебречь, но именно на маленьких проектах падение боя болезненно, потому что нет запаса прочности. Даже простой staging — копия боевого сайта, куда сначала едут обновления Битрикса и правки, — окупается первым же предотвращённым сбоем. Полноценную многоконтурную схему можно упростить, но иметь отдельное место для проверки перед боем стоит любому магазину.

Как сделать staging похожим на production?

Совпадать должны версия 1С-Битрикс и PHP, настройки веб-сервера и БД, состав модулей и конфигурация, а также структура данных. Различаются обычно только реквизиты внешних сервисов (тестовые платёжные шлюзы, песочницы обмена) и объём данных. Чем ближе staging к бою, тем достовернее проверки: расхождения в версиях или конфиге — главная причина, почему «на staging работало, а на проде упало».

Можно ли копировать боевую базу на staging?

Да, и это распространённая практика, но с обязательным обезличиванием персональных данных. На staging не должно быть реальных телефонов, адресов и данных клиентов в открытом виде — это требование безопасности и 152-ФЗ. Обычно боевую базу переносят, а ПДн заменяют на тестовые значения. Так вы получаете реалистичный объём и структуру данных без риска утечки персональных данных из менее защищённого окружения.

Как деплоить с staging на production без простоя?

Через управляемый процесс: изменения хранятся в git, катятся по CI/CD, применяются атомарно (например, переключением симлинка на новую версию), а миграции БД и обновление кэша выполняются в правильном порядке. Для рискованных изменений держат готовый откат. Ручной перенос файлов по FTP на боевой сайт — главный источник простоев и рассинхронизации; его заменяют воспроизводимым деплоем.

Что делать с обменом 1С на staging?

Обмен на staging подключают к тестовой базе 1С или к песочнице, а не к боевой учётной системе, чтобы проверки не создавали реальных заказов и не трогали настоящие остатки. Важно проверять сам механизм обмена — форматы CommerceML, обработку ошибок, скорость — на данных, похожих на боевые. Подключение staging к боевой 1С — опасная ошибка, которая может испортить реальные данные учёта.

Нужны ли отдельные окружения для тестировщика и заказчика?

Часто да. Помимо dev и production полезно иметь окружение для QA (прогон тестов и ручной проверки) и демо-стенд для заказчика, где он принимает работу. Их можно совмещать со staging или разносить в зависимости от размера команды. Главное — чтобы приёмка и тестирование шли не на боевом сайте, а на окружении, где ошибка ничего не стоит, кроме времени.

Сколько стоит поддерживать несколько окружений?

Дополнительные окружения требуют ресурсов сервера и времени на поддержание их в актуальном состоянии, но это несопоставимо дешевле, чем простой боевого магазина или испорченные данные. При грамотной автоматизации создание и обновление staging делается по кнопке, а не вручную. Правильно выстроенная многоконтурная схема — это инвестиция в предсказуемость, которая окупается на первом же серьёзном изменении.

Поделиться:

Хотите деплоить без страха уронить боевой магазин?

Выстроим окружения dev, staging и production, настроим синхронизацию данных с обезличиванием и деплой через git и CI/CD. Рассчитаем работу по вашему проекту.

Автоматизация на 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: окружения dev/staging/production, синхронизация данных, безопасный деплой через git и CI/CD.

← Все статьи блога