Тестування та деплой
Staging environments, canary deployments, approval gates та rollback procedures для AI-коду в Zero Trust
📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ
Тестування та деплой у Zero Trust
В архітектурі Zero Trust кожний етап від testing до production проходить через верифікацію. AI-згенерований код потребує додаткових gates та контролів.
Staging Environments
Ієрархія середовищ
Вимоги до staging
| Вимога | Development | Staging | Production |
|---|---|---|---|
| Дані | Синтетичні | Анонімізовані | Реальні |
| Мережа | Ізольована | Ізольована | Production |
| Секрети | Dev secrets | Staging secrets | Prod secrets |
| Доступ | Розробники | QA + розробники | Обмежений |
| Моніторинг | Базовий | Повний | Повний + alerting |
Ніколи не використовуйте production-дані у staging без анонімізації. AI-код, що тестується, може мати вразливості, які розкриють реальні дані.
Canary Deployments
Стратегія canary
Canary deployment дозволяє мінімізувати ризик від нового коду:
- Deploy canary -- розгорнути нову версію на 1-5% трафіку
- Monitor -- відстежувати метрики (error rate, latency, business KPI)
- Evaluate -- автоматична або ручна оцінка
- Promote або Rollback -- розширити до 100% або відкатити
Метрики для canary оцінки
| Метрика | Поріг для rollback |
|---|---|
| Error rate | > 1% збільшення |
| P99 latency | > 20% збільшення |
| CPU/Memory | > 30% збільшення |
| Business KPI | > 5% зменшення |
AI-специфічні метрики
- AI response quality -- оцінка якості відповідей
- Token usage -- аномальне споживання токенів
- Hallucination rate -- відсоток некоректних відповідей
- Safety violations -- порушення safety guidelines
Approval Gates
Типи gates
| Gate | Коли | Хто approves |
|---|---|---|
| Code Review | Перед merge | 2 developers + security |
| Security Scan | Перед staging | Автоматично (SAST/DAST) |
| QA Sign-off | Перед pre-prod | QA Lead |
| Change Advisory | Перед production | CAB (Change Advisory Board) |
| Emergency | Hotfix | CISO + Engineering Lead |
Автоматизовані gates
# Приклад GitHub Actions з approval gates
name: Deploy Pipeline
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm test
security-scan:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: returntocorp/semgrep-action@v1
deploy-staging:
needs: security-scan
runs-on: ubuntu-latest
environment: staging # Вимагає manual approval
steps:
- run: deploy-to-staging.sh
deploy-production:
needs: deploy-staging
runs-on: ubuntu-latest
environment: production # Вимагає manual approval
steps:
- run: deploy-to-production.sh
Rollback Procedures
Стратегії rollback
| Стратегія | Час | Ризик | Використання |
|---|---|---|---|
| Blue-Green | Секунди | Низький | Переключення трафіку |
| Canary Rollback | Секунди | Низький | Відключення canary |
| Rolling Rollback | Хвилини | Середній | Поступовий відкат |
| Database Rollback | Хвилини-години | Високий | Відкат міграцій |
| Full Restore | Години | Високий | Відновлення з бекапу |
Автоматичний rollback
Налаштуйте автоматичний rollback при досягненні порогових значень:
- Error rate > 5% протягом 5 хвилин
- P99 latency > 2x від baseline
- Health check failures > 3 поспіль
- Memory/CPU > 90% протягом 10 хвилин
Завжди тестуйте процедуру rollback. Rollback, який не був протестований, може не спрацювати в критичний момент.
Runbook для rollback
- Виявлення проблеми (автоматичне або ручне)
- Оцінка severity (P1-P4)
- Прийняття рішення: fix forward або rollback
- Виконання rollback за відповідною стратегією
- Верифікація відновлення
- Post-mortem аналіз
Див. також
Sandboxed environments та code review gates
Security на кожному етапі
Playbooks для інцидентів при деплої