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

Окружения

Функция Окружения обеспечивает ветвление, подобное Git, для всего backend. Каждое окружение — это полностью изолированная копия приложения, включая собственную базу данных, схему API, роли, провайдеры файлов, маршруты шлюза и конфигурацию безопасности, что позволяет разрабатывать, тестировать и подготавливать изменения без влияния на производственные данные.

Каждый проект начинается с одного окружения master. Оттуда можно создавать ветви новых окружений, наследующих схему базы данных (и при необходимости данные) из любого существующего. Каждая ветвь работает независимо: изменения в одном окружении не распространяются на другие, пока вы явно не выполните merge.


  • Изоляция окружений: У каждого окружения своя база данных PostgreSQL, обеспечивающая полное разделение данных между ветвями.
  • Режимы ветвления: При создании нового окружения выбирается стратегия клонирования Full (схема + данные) или System (только схема).
  • Копирование конфигурации: Провайдеры хранилища файлов, маршруты шлюза, настройки безопасности и переменные окружения могут опционально копироваться из исходного окружения при ветвлении.
  • Жизненный цикл статуса: Окружения переходят через определённые состояния — active, branching, merging, error и archived — для предотвращения конфликтующих операций.
  • Родительско-дочерние отношения: Окружения образуют древовидную структуру, отслеживающую происхождение для операций diff и merge.
  • Schema Diff: Сравнение схем баз данных любых двух окружений с семантикой diff только вперёд. См. Environment Diff.
  • Merge: Применение изменений схемы из одного окружения в другое с автоматическим резервным копированием, выборочным применением изменений (cherry-pick) и транзакционным DDL. См. Environment Merge.
  • Резервные копии: Автоматические предварительные копии перед merge и ручные копии, хранящиеся в S3, с возможностью восстановления в любое целевое окружение, включая удалённые. См. Backups.
  • История миграций: Полный аудит всех операций merge, включая пользователя, применившего каждую миграцию, метку времени и конкретные изменения.

Все ресурсы backend привязаны к выбранному в данный момент окружению. При переключении окружений с помощью Селектора окружений в верхней панели навигации следующие ресурсы отражают состояние этого окружения:

РесурсОграничено по окружению
Таблицы и схема БДДа
API Explorer (GraphQL)Да
SQL PlaygroundДа
Доступ на основе ролейДа
Провайдеры хранилища файловДа
Провайдеры аутентификацииДа
API KeysДа
Пользовательские маршруты API GatewayДа
Конфигурация безопасности (CORS, Rate Limits)Да
Переменные окруженияДа
ИнтеграцииДа

Примечание: Переключение окружений вызывает полную перезагрузку контекста. Контекст environment распространяется по всем backend-сервисам платформы, чтобы каждый запрос обрабатывался с правильной базой данных и конфигурацией.


Система окружений обеспечивает изоляцию корпоративного уровня между этапами разработки:

  1. Изоляция хранилища: Каждое окружение поддерживается выделенной базой данных. Это гарантирует, что ошибка или операция с данными в окружении разработки никогда не повлияет на производственные данные.
  2. Область конфигурации: Все настройки — от API-ключей до политик безопасности — управляются независимо по окружениям. Изменение политики CORS в “Staging” не затронет “Production”.
  3. Контекст платформы: Текущее окружение автоматически распространяется по всей платформе. Просматриваете ли вы файлы, выполняете SQL-запросы или делаете API-вызовы, Archie Core обеспечивает взаимодействие с ресурсами правильного окружения.