Шлюзы качества¶
Все изменения контрактов данных проходят через автоматические шлюзы качества (quality gates) в CI/CD.
Шлюзы CI/CD¶
| Шлюз | Инструмент | Действие при сбое |
|---|---|---|
| Валидация схемы | ci/validate_contract.py | Блокировать слияние |
| Совместимость схемы | ci/detect_breaking_changes.py | Блокировать, если версия не обновлена |
| Синтаксис quality rules | ci/validate_quality_rules.py | Блокировать слияние |
| Проверка версии | ci/check_version_bump.py | Блокировать, если bump не выполнен |
| Анализ влияния | ci/analyze_impact.py | Требовать утверждение затронутых команд |
Матрица утверждений¶
| Тип изменения | Требуемые утверждения |
|---|---|
| Patch (только docs) | Владелец контракта |
| Minor (добавление) | Владелец + 1 ревьюер governance |
| Major (ломающее) | Владелец + все затронутые потребители + руководитель governance |
| Новый контракт | Руководитель домена + руководитель governance |
| Deprecation | Владелец + все потребители + руководитель governance |
| Добавление PII | Владелец + безопасность + юридический (если 152-ФЗ) |
Workflow утверждения¶
sequenceDiagram
participant D as Разработчик
participant O as Владелец контракта
participant G as Governance
participant C as Потребители
D->>O: MR создана
O->>D: Рецензия / правки
D->>O: Обновлено
O->>G: Утверждено владельцем
G->>C: Анализ влияния?
C->>G: Утверждено
G->>D: Слияние + развертывание Аварийный процесс¶
Для критичных проблем production, требующих немедленных изменений контракта:
Emergency Change
- Объявить — уведомить
#data-platform-oncallсо ссылкой на инцидент - Обойти шлюзы — MR с префиксом
[EMERGENCY], одобрение от дежурного инженера - Пост-ревью — в течение 24 часов создать follow-up MR с полной рецензией
- Документировать — включить инцидент в changelog и постмортем
Дополнительные материалы¶
- CI/CD Pipeline — техническая настройка пайплайна
- Жизненный цикл контрактов — когда какие утверждения нужны
- Breaking Change Workflow — процесс при major-изменениях