Перейти к содержанию

Эксплуатация

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

Модель установки в двух словах

Промышленная установка Taimen — это одна машина с Docker Compose и, при необходимости, отдельный runner-хост для автономных исполнителей.

flowchart LR
    user([Люди и harness]) -->|HTTPS 443| caddy
    subgraph host["Хост платформы (корневой compose.yml)"]
        caddy[Caddy<br/>единственный периметр]
        caddy --> iam[iam-service]
        caddy --> cp[control-plane-api]
        caddy --> kc[keycloak]
        caddy --> papi[platform-api]
        caddy --> web[platform-web]
        cp --- worker[control-plane-worker]
        cp --- adapter[context-adapter]
        adapter --> mem[memory-service]
        iam --- iamdb[(iam-db)]
        cp --- cpdb[(control-plane-db)]
        mem --- memdb[(memory-db<br/>AGE + pgvector)]
    end
    runner[Runner-хост<br/>control-plane-agent] -->|HTTPS: PAT → access token| caddy

Ключевые принципы:

  • Один файл описания — корневой compose.yml суперпроекта с профилями (core, edge, platform, policy, entitlement, demo, fleet). Локальная установка и промышленная различаются только файлом .env и Caddyfile.
  • Один периметр — наружу публикует порты только контейнер caddy (80/443). Все прочие сервисы слушают на 127.0.0.1 хоста или только во внутренней сети.
  • Релиз = коммит суперпроекта. Версии компонентов закреплены указателями сабмодулей; обновление — это git pull суперпроекта и git submodule update.
  • Секреты только в .env и secrets/ (оба в .gitignore), права 0600.
  • Миграции схем применяются при старте сервисов (alembic upgrade head в команде контейнера), отдельного шага миграции нет.

Статьи раздела

Статья Что внутри
Промышленное развёртывание Раскладка каталогов, .env, профили, первый запуск, bootstrap, runner-хост
Периметр и TLS Маршруты Caddy, выпуск сертификатов, закрытие служебных путей, типичные ошибки
Обновление и миграции Штатная выкладка, миграции Alembic, минимизация простоя, откат
Секреты и ротация Инвентарь секретов, права файлов, ротация PAT, ключа подписи, паролей
Резервное копирование Что бэкапить, pg_dump каждой БД, особенности Apache AGE, восстановление
Мониторинг и здоровье Health-эндпоинты, /metrics, make smoke, логи, что алертить
Ресурсы и масштабирование Лимиты памяти из compose.yml, минимальные и рекомендуемые конфигурации
Аварийные процедуры Отказ IAM, откат релиза, потеря runner-хоста, компрометация credentials

Чек-лист дежурного

  • make smoke зелёный, docker compose --profile "*" ps без unhealthy.
  • GET /health/ready Control Plane отвечает 200, а не 503.
  • context_adapter_parked_tenants равен 0.
  • Свободно не меньше 20 % диска (журнал Control Plane и память растут).
  • Срок действия PAT исполнителей и операторов не истекает в ближайшие две недели (см. Секреты и ротация).
  • Последний успешный бэкап всех БД моложе суток.

Где команды

Все команды docker compose в разделе выполняются из корня клона суперпроекта: там лежат compose.yml и .env. Цели make описаны в справочнике Цели make.

См. также