Control Plane: обзор

Stable

Что такое Control Plane, какое место он занимает в цепочке SPG99 и почему именно он теперь координирует и lifecycle, и writer autoscaler.

Обновлено: 21 марта 2026 г.

Control Plane — это центральный управляющий сервис SPG99. Через него Console и внешние интеграции создают аккаунты, выпускают API‑ключи, создают tenants и базы, получают креды подключения, следят за состоянием ресурсов и инициируют удаление.

Если объяснять просто, Control Plane — это “мозг” платформы:

  • он знает, какие аккаунты, tenants и базы существуют;
  • хранит их текущее состояние;
  • решает, когда нужно запустить writer;
  • координирует Gateway, Provisioner, Pageserver и Safekeeper;
  • возвращает данные для подключения;
  • теперь ещё и управляет profile handoff нового autoscaler.

Где Control Plane находится в общей цепочке

Типовой путь выглядит так:

Пользователь / Console / API client
    -> Control Plane
    -> Gateway
    -> Compute
    -> Pageserver + Safekeeper

Практически это означает следующее:

  1. Пользователь создаёт tenant и базу в Console или через API.
  2. Control Plane создаёт записи в каталоге и готовит storage‑сущности.
  3. Новая база создаётся без постоянно работающего writer.
  4. При первом подключении клиент идёт в Gateway.
  5. Gateway запрашивает у Control Plane lease и, если база ещё спит, инициирует её запуск.
  6. Control Plane через Provisioner поднимает writer.
  7. Compute получает soft bootstrap‑параметры, выходит в ready, и Gateway маршрутизирует подключение в уже запущенный backend.
  8. После простоя Control Plane может автоматически остановить writer.

Новая роль Control Plane: autoscaler

Теперь Control Plane координирует ещё и безопасную смену writer‑профиля:

  • принимает решение о handoff;
  • создаёт candidate generation;
  • включает freeze для новых checkout'ов;
  • ждёт drain;
  • переключает каталог на новый writer;
  • завершает transition в COOLDOWN и затем в STEADY.

Это делает profile autoscaler не “магией в pod’е”, а частью прозрачной управляемой модели платформы.

Что это даёт пользователю

Для пользователя Control Plane решает пять практических задач:

  1. Даёт доступ к платформе: аккаунты, API‑ключи, scope и права.
  2. Формирует логическую структуру: account -> tenant -> database.
  3. Возвращает данные для подключения: pg_user, pg_password, dsn_template.
  4. Управляет жизненным циклом базы: create, auto‑start, auto‑stop, delete.
  5. Управляет autoscaler‑состоянием: current_profile, target_profile, scale_state, failure reason.

Важно понимать границы ответственности:

  • Control Plane не исполняет SQL;
  • Gateway принимает клиентские PostgreSQL‑подключения;
  • Compute исполняет сами запросы;
  • Pageserver и Safekeeper отвечают за durable storage.