Files
EvoBGP/docs/production-checklist.md
T
DenozordecandCursor 240d83fc61 docs(docs): describe durable jobs, telemetry, and bundle limits
Зафиксированы очередь job, семантика метрик, лимиты бандла и исходящих запросов, а также чеклист продакшена для пула соединений.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-02 17:24:18 +07:00

3.2 KiB
Raw Blame History

Production checklist

Краткий чеклист перед выводом EvoBGP в production (10+ клиентов, нестабильная сеть).

Обязательно

  • EVOBGP_PRODUCTION=1 (или EVOBGP_ENV=production) — при старте API/evobgp-all процесс откажется стартовать, если нарушены жёсткие требования ниже (config.ValidateProductionEnforce).
  • EVOBGP_SEED_DEMO=0 — отключить demo-tenant и токен Bearer dev.
  • EVOBGP_DEV_INSECURE не задавать или 0 — не использовать lab-флаги в prod.
  • EVOBGP_BUNDLE_SEED_HEX — задать стабильный hex-ключ подписи бандлов; сохранить pubkey для нод.
  • PostgreSQL с TLS (sslmode не disable) при доступе вне private network.
  • EVOBGP_CORS_ORIGINS — явный whitelist origin веб-панели.
  • EVOBGP_STALE_ON_UPSTREAM_ERROR=1 (по умолчанию) — stale snapshot при сбоях CDN/ASN/DoH.
  • Опционально EVOBGP_CDN_PARTIAL_OK=1 — при сбое одного CDN source без stale cache продолжать refresh остальных (иначе fail модуля).
  • EVOBGP_ASN_HOLDER_TTL_SEC — TTL имени holder AS (default 7 суток); prefixes кэшируются отдельно (EVOBGP_ASN_CACHE_TTL_SEC, default 1800).
  • EVOBGP_CDN_DNS_CACHE_TTL_SEC — TTL кэша DNS при SSRF-проверке CDN URL (default 300).
  • EVOBGP_DOMAIN_CACHE_TTL_SEC — TTL кэша DoH A/AAAA (domain_resolve_cache, default 300).

Рекомендуется

- `EVOBGP_JOB_MAX_CONCURRENT=16`, `EVOBGP_DB_MAX_CONNS=25`, `EVOBGP_COLLECT_CONCURRENCY=16` при росте tenants. Если `EVOBGP_DB_MAX_CONNS` не задан, пул по умолчанию 8 соединений и `MaxConnIdleTime` 5 минут (не дефолт pgx в 4). Явное значение переменной не переопределяется. Сумма пулов процессов reference-профиля должна оставаться ниже `max_connections`.
  • EVOBGP_NODE_DISPATCH_INSECURE_TLS=0 — только валидный TLS к agent.
  • Ограничить /metrics: EVOBGP_METRICS_TOKEN (Bearer) и/или сетевая политика / reverse proxy.
  • EVOBGP_AUTH_RATE_LIMIT (default 60/min per IP) на GET /v1/auth/config.
  • HTTP_PROXY / HTTPS_PROXY / NO_PROXY для CDN/DoH в censored сетях.
  • Опционально EVOBGP_OTEL_ENDPOINT (stub opt-in для будущего OTel export).
  • Профиль evobgp-all или HA API + персистентная job_audit (PostgreSQL SKIP LOCKED reclaim).
  • E2E smoke: pnpm --filter @evobgp/web run test:e2e против API (EVOBGP_E2E_API_URL) / UI (EVOBGP_E2E_UI=1).
  • Мониторинг drift: evobgp-deploy, last_applied_revision_id vs published.

Не использовать в prod

  • EVOBGP_CDN_ALLOW_PRIVATE=1 — только тесты/lab.
  • Plaintext EVOBGP_API_KEYS без ротации (break-glass — временно).
  • Ручное редактирование evobgp_*.conf на нодах без ревизии.