Плейбуки эксплуатации.
Наблюдайте состояние. Сохраняйте данные. Сверяйте неизвестные исходы.
После запуска
- Проверьте TLS и readiness каждой роли, соединение с ее PostgreSQL и статус миграций.
- Войдите через реальный SSO, откройте только разрешенный tenant и выполните отрицательный cross-tenant сценарий.
- Проверьте чтение разрешенного MR, модельный вызов и полезный MCP-ответ. HTTP200 сам по себе недостаточен.
- Снимите базовый замер RAM, очереди, задержек и диска. Задайте лимиты модели и алерты до широкого включения.
Неизвестный исход публикации
Признак: timeout после обращения к GitLab, состояние started/unknown или пропавший ответ. Не нажимайте повторно publish/approve/CI. Сопоставьте сохраненное действие, SHA, discussions/approvals и pipeline в GitLab. Решение о повторе принимается после сверки, с сохранением журнала. Секреты и исходники в общий тикет не копируются.
Резервное копирование и restore
Назначьте владельца резервных копий, RPO/RTO и срок хранения. Делайте согласованный backup отдельных PostgreSQL БД и защищенных конфигураций. Credentials хранятся отдельно с ограниченным доступом. Восстановите копию в изолированной цели и проверьте историю, tenant isolation, миграции и отказ от повторной публикации. Наличие файла backup не является проверенным restore.
Проверьте публичные сертификаты
Оператор задает точные пути к публичным CA и server certificate. Эти шаблоны читают только сертификаты, не приватный ключ. Срок действия и цепочка не заменяют проверку hostname, назначения сертификата и живого TLS handshake. Не отключайте TLS-проверки при ошибке.
set -eu
: "${NULL_CA_FILE:?Set the explicit public CA certificate path}"
: "${NULL_SERVER_CERT:?Set the explicit public server certificate path}"
openssl x509 -in "$NULL_CA_FILE" -noout -dates -checkend 86400
openssl x509 -in "$NULL_SERVER_CERT" -noout -dates -checkend 86400
openssl verify -CAfile "$NULL_CA_FILE" "$NULL_SERVER_CERT"Перезапуск и обновление
Перед перезапуском сохраните состояние очереди и незавершенных действий. После него проверьте целостность истории, права и отсутствие дублей. Текущий create-only bootstrap не выполняет upgrade или rollback. План обновления должен содержать совместимые миграции, backup и проверку отдельной цели. Не применяйте down -v или ручное изменение migration stamp для обхода ошибки.
Нагрузка и размер машин
Цель первого командного запуска: до100 репозиториев,500MR в день,5 одновременных ревью. Это входные требования, не результат нагрузочного теста. Начальная планировочная гипотеза ниже не является минимумом или гарантией производительности. GitLab, IdP, runner, backup и локальная модель считаются отдельно.
| Роль | CPU / RAM | Диск, гипотеза |
|---|---|---|
| Application | 4vCPU / 8GiB | 80GiB SSD |
| Worker + Context | 8vCPU / 16GiB | 100GiB OS + данные по retention |
| PostgreSQL | 4vCPU / 16GiB | 200GiB SSD |
Перед решением о размере измерьте пять перекрывающихся реальных ревью, задержку очереди, лимиты провайдера, длительность CI, стоимость и рост данных. Тест с заглушками не заменяет эту волну.