AI Wiki

Тестування та деплой

Staging environments, canary deployments, approval gates та rollback procedures для AI-коду в Zero Trust

testingdeploymentcanarystagingrollbackapproval-gates

📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ

Тестування та деплой у Zero Trust

В архітектурі Zero Trust кожний етап від testing до production проходить через верифікацію. AI-згенерований код потребує додаткових gates та контролів.


Staging Environments

Ієрархія середовищ

Вимоги до staging

ВимогаDevelopmentStagingProduction
ДаніСинтетичніАнонімізованіРеальні
МережаІзольованаІзольованаProduction
СекретиDev secretsStaging secretsProd secrets
ДоступРозробникиQA + розробникиОбмежений
МоніторингБазовийПовнийПовний + alerting
⚠️Увага

Ніколи не використовуйте production-дані у staging без анонімізації. AI-код, що тестується, може мати вразливості, які розкриють реальні дані.


Canary Deployments

Стратегія canary

Canary deployment дозволяє мінімізувати ризик від нового коду:

  1. Deploy canary -- розгорнути нову версію на 1-5% трафіку
  2. Monitor -- відстежувати метрики (error rate, latency, business KPI)
  3. Evaluate -- автоматична або ручна оцінка
  4. 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Перед merge2 developers + security
Security ScanПеред stagingАвтоматично (SAST/DAST)
QA Sign-offПеред pre-prodQA Lead
Change AdvisoryПеред productionCAB (Change Advisory Board)
EmergencyHotfixCISO + Engineering Lead

Автоматизовані gates

yaml
# Приклад 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 при досягненні порогових значень:

  1. Error rate > 5% протягом 5 хвилин
  2. P99 latency > 2x від baseline
  3. Health check failures > 3 поспіль
  4. Memory/CPU > 90% протягом 10 хвилин
💡Порада

Завжди тестуйте процедуру rollback. Rollback, який не був протестований, може не спрацювати в критичний момент.

Runbook для rollback

  1. Виявлення проблеми (автоматичне або ручне)
  2. Оцінка severity (P1-P4)
  3. Прийняття рішення: fix forward або rollback
  4. Виконання rollback за відповідною стратегією
  5. Верифікація відновлення
  6. Post-mortem аналіз

Див. також

Розробка AI-коду

Sandboxed environments та code review gates

Безпечний SDLC

Security на кожному етапі

Реагування на інциденти

Playbooks для інцидентів при деплої