Перейти к содержанию
Learning Platform
Глоссарий Troubleshooting
Урок 09.01 · 26 мин
Продвинутый
SDLCSchema ReviewChange Advisory BoardData ContractsODCSGated DeploymentsCI/CD

Введение

SwiftRide T+12M. CDE-программа уже выдала свои первые квартальные аттестации (M7), и walkthrough Big 4 в Q1 2027 показал, что цепочка доказательств воспроизводима. Но за квартал произошло три события, которые расшатывают эту защиту: (1) разработчик SwiftCapital смержил изменение dbt-модели для ECL stage transition — без обзора CAB, без анализа влияния, без уведомления Finance Lead. PR смержен и автоматически развёрнут в production. CDE-SWR-014 (стадии кредитного портфеля) затронут существенно, но осознали это только через 3 недели на квартальной сверке. (2) инженер Marketing добавил новую колонку в dim_user_profile для ad-targeting CDE-SWR-020. Изменение схемы не прошло обзор DPO; требование минимизации данных по GDPR Art. 25 формально нарушено. (3) Platform team раскатила обновление Snowflake masking policy — пятница 19:00 UTC, перед freeze-периодом — без уведомления CAB. Сверочный DAG для CDE-SWR-003 упал в субботу, потому что маскированная колонка сравнивалась с незамаскированным источником Aurora.

Эти три события — не провал отдельных людей. Это провал SDLC-оверлея. Контроли CDE (M5) и пайплайн доказательств (M7) предполагают, что процесс разработки уже их поддерживает. Если разработчик может смержить изменение CDE без гейта — контроли в production не имеют значения. M8.1 — о том, как встроить контроли CDE в SDLC так, чтобы развитие платформы велось CDE-aware на каждом этапе.

Принцип: shift-left для CDE-контролей

ITGC изначально оперирует контролями в production — управление изменениями, выдача доступов, апрувы деплоев. Но в современном data-стеке изменение в production стартует на ноутбуке разработчика (dbt run локально), проходит через CI/CD-пайплайн и автоматически применяется к production. Каждый этап — возможность либо для превентивного контроля, либо для предотвратимой ошибки.

Shift-left — паттерн, при котором контроли применяются как можно раньше в SDLC. Стоимость исправления дефекта в production в 10-100× превышает стоимость исправления на этапе обзора PR. Для CDE этот разрыв ещё больше: изменение CDE в production часто требует уведомления регулятора (M8.4), переобработки (как €2.3M выплат SwiftPay в 2024), RCA уровня аудита. Поимка на уровне PR стоит 1 час времени инженера — RCA по инциденту в production стоит 18 дней + €0.5M юридических расходов.

6-этапный SDLC-оверлей для CDE:

ЭтапОверлей контроля CDEРежим отказа без контроля
1. Design / RFCШаблон RFC требует секции CDE Impact; DPO + Data Risk Manager в пути ревью для материальных CDEСхема спроектирована без согласования с регулятором — переделки ниже по потоку
2. Schema designКонтракт данных (ODCS) закоммичен в git; типы + ограничения + владение + retention обязательныДрейф типов в production — паттерн DACH SwiftPay 2024
3. Code (PR)CODEOWNERS направляет к CDE-aware ревьюерам; pre-commit hooks для DQ-правил + тегов чувствительностиИнженер мержит без осведомлённости стюарда
4. CI/CD checksDiff схемы против реестра; анализ влияния на lineage; скан чувствительности; запуск DQ в preview-окруженииДрейф введён; downstream-потребители застигнуты врасплох
5. CAB / deploymentКлассификация Standard (auto), Normal (еженедельный CAB), Emergency (eCAB); запись об изменении в productionПрямое исправление в production; нет audit trail
6. Post-deploy verificationSoak-период, обнаружение дрейфа, эмиссия доказательств в S3 Object LockПреждевременное закрытие (паттерн M7.4); регрессия не обнаружена

Для каждого этапа — конкретный артефакт, который воспроизводимо может вытащить аудитор. В этом суть “evidence-first” SDLC-оверлея.

Schema review: пограничная линия для изменений с CDE-тегом

Изменение схемы на датасете с CDE-тегом — самая частая категория регулируемых изменений. Статистика SwiftRide T+12M: ~140 изменений схемы/квартал; 12-15 из них касаются CDE; 1-2 классифицируются как материальные (влияние на признание выручки, регуляторную отчётность или выплаты клиентам).

Процесс schema review — 5 ступеней:

  1. Сигнал автора. Инженер открывает PR с изменением схемы. Pre-commit hook сканирует diff на наличие изменений в файлах по путям models/cde/**, contracts/cde-*.yml, миграциях Aurora/CockroachDB с тегами cde=true. Если обнаружено — добавляет label cde-review-required к PR.

  2. Маршрутизация CODEOWNERS. Owners по путям в .github/CODEOWNERS:

    models/cde/                @swiftride/data-risk-managers @swiftride/data-steward-lead
    models/swiftpay/           @swiftride/data-risk-managers @swiftride/finance-lead
    contracts/cde-*.yml        @swiftride/data-risk-managers
    src/services/swiftcapital/ @swiftride/data-risk-managers @swiftride/swiftcapital-business-owner
    src/services/ml/pricing/   @swiftride/ai-risk-specialist @swiftride/data-risk-managers

    PR не может быть смержен без апрува назначенных ревьюеров. Это обеспечивает Three Lines из M2.3 — участие 2L (Data Risk Manager) обязательно.

  3. Анализ влияния (CI-шаг). Автоматизированная задача (cde-impact-analysis) выполняет:

    • Скан lineage (запрос событий OpenLineage) — какие downstream-датасеты, BI-дашборды, ML-фичи зависят от изменённой колонки.
    • Поиск в реестре — какая запись CDE; tier; контроли; ссылка на BIA.
    • Маппинг регуляторов — флаги GDPR / SOX / DORA / EU AI Act из реестра CDE.
    • Результат: комментарий к PR со сводкой влияния; обязательные ревьюеры авто-тегируются.
  4. Обзор DPO / Privacy (если применимо). Если изменение схемы затрагивает PII-колонку (по тегу Atlas / OpenMetadata), DPO автоматически добавляется как ревьюер. Обзор GDPR Art. 25 (минимизация данных) документируется inline в PR.

  5. Классификация CAB. Если анализ влияния классифицирует изменение как Normal или Emergency — PR не может быть смержен без доказательства апрува CAB (ссылка на CAB-тикет обязательна в теле PR). Standard-изменения (предварительно одобренные шаблоны) авто-мержатся после апрува CODEOWNERS.

Проверка знанийKnowledge check
Инженер SwiftRide Daria открывает PR на dbt-модель `fct_loan_portfolio_stage_transitions` (CDE-SWR-014 ECL stage tracking — SwiftCapital, базис отчётности IFRS 9). Изменение схемы: добавить колонку `migration_reason_code` (enum 8 значений), изменить NOT NULL constraint на `stage_at_origination`. Какие 5 ступеней процесса schema review должны сработать автоматически + вручную? Какие артефакты прикрепляются к PR и в аудиторский след?
ОтветAnswer
Процесс schema review для PR CDE-SWR-014: (1) Обнаружение pre-commit hook — PR Daria затрагивает `models/cde/swiftcapital/loan_portfolio_stage_transitions.sql` + `contracts/cde-swr-014-stages.yml`; hook сканирует diff; обнаруживает путь `models/cde/`; добавляет GitHub-лейбл `cde-review-required`; pre-commit также запускает schema-diff против реестра — флагирует 2 изменения (новая колонка + модификация NOT NULL). (2) Маршрутизация CODEOWNERS — по `.github/CODEOWNERS` для пути `models/cde/swiftcapital/`: @swiftride/data-risk-managers + @swiftride/data-steward-lead + @swiftride/swiftcapital-business-owner авто-добавлены; PR не может быть смержен без апрува всех 3; уведомление в очередь ревью отправлено в Slack #cde-reviews; путь CODEOWNERS также соответствует `src/services/swiftcapital/` если есть сервисное изменение; мульти-командный апрув обеспечивает независимость ревью 2L (Data Risk Manager) + 1L (владелец BU) по M2.3. (3) CI-задача анализа влияния (cde-impact-analysis выполняется ~3-5 мин) — (a) скан lineage через запрос событий OpenLineage: SELECT downstream-датасеты где fct_loan_portfolio_stage_transitions появляется upstream; возвращает 14 downstream-датасетов (ECL-агрегации, Snowflake `agg_ifrs9_stage_summary`, ссылки BI-дашбордов, записи ML feature store); (b) поиск в реестре: CDE-SWR-014 tier 1 (материальный CDE, scope IFRS 9 + SOX 404 + DORA, SwiftCapital — лицензированный небанковский кредитор); 8 контролей применимы; ссылка на BIA RTO 4ч / RPO 15 мин; (c) маппинг регуляторов: IFRS 9 + SOX 404 + DORA Arts. 5-16 ICT risk management + EU AI Act Annex III (если ECL-модель квалифицируется как high-risk credit scoring); (d) проверка DPO: прямой PII не затронут; пропустить DPO; (e) комментарий к PR опубликован: 'CDE-SWR-014 (tier 1); затронуто 14 downstream; ревьюеры: Data Risk Manager + Data Steward + SwiftCapital Business Owner; модификация NOT NULL = кандидат на breaking change по контракту ODCS — требуется анализ обратной совместимости'. (4) Анализ обратной совместимости (доп. шаг для кандидата на breaking change) — Daria прикрепляет план миграции к PR: существующие строки с stage_at_origination = NULL должны быть забэкфилены до применения NOT NULL; dbt-модель помечена WITH (incremental + on_schema_change=fail) изначально; ссылка на шаблон безопасной миграции (T-001 backward compat). (5) Классификация CAB — CI анализа влияния определяет: CDE-tier-1 + breaking-change + 14 downstream-потребителей + scope DORA + IFRS 9 = Normal change (по логике решения M8.2; не Standard потому что CDE-tier-1 + breaking); классификация CAB опубликована в PR; PR не может быть смержен без ссылки на CAB-тикет; Daria открывает CAB-тикет CAB-2026-Q4-W37-014; тикет несёт результат анализа влияния + план миграции + план отката + результаты тестов (dbt test pass + интеграционный тест pass); CAB во вторник 2026-09-22 рассматривает; CDO + Data Platform Lead + Risk Function + наблюдатель Internal Audit; протокол захвачен в Workiva; апрув записан; PR авто-валидирует CAB-2026-Q4-W37-014 status='approved' перед разблокировкой мержа. Артефакты, прикреплённые к PR + аудиторский след: (a) лог pre-commit hook (timestamp + обнаружение тега); (b) след апрувов CODEOWNERS (подпись каждого ревьюера, timestamp, Slack-тред); (c) результат CI анализа влияния (скан lineage + поиск в реестре + маппинг регуляторов); (d) приложенный план миграции для backward-compat; (e) логи pass для dbt + интеграционных тестов; (f) протокол встречи CAB-2026-Q4-W37-014 + подпись апрува; (g) ссылка на ID артефакта Workiva; (h) SHA мержа PR + лог пост-деплой верификации; (i) OpenLineage RunEvent, эмитированный после деплоя, с обновлёнными lineage-фасетами; (j) эмиссия доказательств в S3 Object Lock полного пакета изменения (sha256-подписан; control_id='CHANGE-MGMT-001' родитель связан с затронутыми CTL-CDE-SWR-014-* контролями; retention 7 лет по базису SOX / 10 лет если подтверждена high-risk классификация по AI Act). Перекрёстная ссылка на M5.4 evidence framework + M7.4 incident management если пост-деплой soak падает. Полностью защищаемо при аудите. Результат — изменение схемы развёрнуто без переделок, без сюрприза для регулятора, без инцидента с $-импактом.

Контракты данных (ODCS) для CDE

Контракты данных — паттерн, при котором продьюсеры обязуются по явной схеме + семантическим гарантиям, а downstream-потребители могут полагаться на эти гарантии. Open Data Contract Standard (ODCS) — открытая спецификация от Bitol (бывшая EDM Council Data Contract initiative) — основной референс для структурированных контрактов в 2025-2026.

INFO
См. DG-курс M3.5 «Data Contracts» для базовой теории ODCS. Здесь — оверлей для CDE.

Для CDE контракт данных должен содержать (помимо ODCS baseline):

  • cde.tier — tier 1 / 2 / 3 по реестру M4.5; влияет на дефолтные SLA.
  • cde.id — стабильный идентификатор CDE-SWR-NNN; ссылается на запись в реестре.
  • cde.regulatorContext — флаги GDPR / SOX / DORA / EU AI Act / IFRS 9 (определяет retention и уведомления).
  • cde.businessOwner — Business Owner на цикл аттестации (M7.5).
  • cde.dataSteward — операционный стюард за повседневное качество.
  • cde.controlReferences — список контролей CTL-CDE-SWR-NNN-MMM, привязанных к контракту.
  • cde.evidenceContract — путь до схемы эмиссии доказательств (атрибуты IPE M7.1).

Пример фрагмента контракта для CDE-SWR-003 fct_driver_earnings:

# contracts/cde-swr-003-fct-driver-earnings.yml
kind: DataContract
apiVersion: v3.0.0
id: cde-swr-003-fct-driver-earnings
name: fct_driver_earnings
domain: payments
tenant: swiftpay

cde:
  tier: 1
  id: CDE-SWR-003
  regulatorContext:
    - SOX 404 / AS 2201
    - PSD2 / PSD3 (payments)
    - GDPR Art. 5 (data integrity)
    - DORA Arts. 5-16 (ICT scope)
  businessOwner: [email protected]
  dataSteward: [email protected]
  controlReferences:
    - CTL-CDE-SWR-003-001
    - CTL-CDE-SWR-003-002
    - CTL-CDE-SWR-003-003
    - CTL-CDE-SWR-003-004
    - CTL-CDE-SWR-003-005
  evidenceContract: s3://swr-evidence-prod-schemas/cde-swr-003/v1.json

schema:
  properties:
    driver_id:
      type: string
      format: uuid
      required: true
      pii: pseudonymous
    earned_at:
      type: timestamp
      timezone: UTC
      required: true
    gross_amount_cents:
      type: integer
      required: true
      constraints:
        min: 0
        max: 100000000
    commission_pct:
      type: decimal(5,4)            # critical — explicit type
      required: true
      constraints:
        min: 0
        max: 1
        precision: 4
    net_amount_cents:
      type: integer
      required: true
      derivation: gross_amount_cents - (gross_amount_cents * commission_pct)

slo:
  freshness: PT15M                  # 15-min staleness max (tier 1)
  completeness: 99.9                # ≥ 99.9% rows present vs Aurora
  accuracy: 0.001                   # delta vs Aurora source ≤ 0.001%
  availability: 99.95               # uptime SLO

quality:
  rules:
    - id: row_count_parity
      type: reconciliation
      logic: snowflake.fct_driver_earnings.row_count = aurora.swiftpay.payouts.row_count(±0.5%)
      severity: SEV-1
    - id: commission_pct_range
      type: range
      logic: commission_pct BETWEEN 0 AND 1
      severity: SEV-1
    - id: net_amount_parity
      type: formula
      logic: net_amount_cents == gross_amount_cents - (gross_amount_cents * commission_pct)
      tolerance: 0
      severity: SEV-1

evidence:
  emissionPolicy:
    runFrequency: hourly
    artefactPath: s3://swr-evidence-prod-cde-evidence/cde-swr-003/
    retention: P7Y                  # SOX baseline; SwiftRide policy
    signature: HMAC-SHA256

change:
  classificationPolicy: per-CDE-SDLC-overlay
  cabRequiredFor:
    - schemaBreakingChange
    - cdeTier1Material
    - regulatorContextChange

Этот контракт — не декоративный; он потребляется как вход автоматизированных проверок. CI-пайплайн запускает cde-contract-validate на каждом PR, который затрагивает fct_driver_earnings; несоответствие контракт→реализация = провал сборки.

dbt Cloud + Bitol ODCS validatorvdbt 1.10.x + Bitol 1.02026-05

Интеграция dbt-Bitol появилась в Q3 2025 — плагин dbt-contracts читает ключи meta.cde.* из dbt model YAML; перекрёстно связывает с файлом контракта ODCS; валидирует соответствие схем (имена колонок + типы + nullability). Сборка падает, если обнаружен дрейф. SwiftRide раскатывает этот setup в Q4 2026 для всех 30 материальных CDE.

Gated CI/CD: 5 ключевых проверок для PR с CDE

CI/CD-пайплайн должен жёстко блокировать мерж PR до прохождения CDE-проверок. Паттерн пайплайна SwiftRide (GitHub Actions + dbt Cloud + кастомные валидаторы):

  1. cde-contract-validate — соответствие контракта ODCS реализации (типы, ограничения, перечисленные контроли).
  2. cde-impact-analysis — скан lineage + downstream-потребители + маппинг регуляторов; комментарий к PR опубликован.
  3. cde-data-quality-staging — полный прогон DQ-правил на staging-копии хранилища (клон Snowflake + свежезагруженная выборка); все SEV-1 правила должны пройти.
  4. cde-sensitivity-scan — pre-merge скан новых колонок / таблиц; классифицирует чувствительность (PII / финансовые / регуляторные); авто-тегирует в Atlas/OpenMetadata.
  5. cde-change-classification — запускает логику решений из M8.2 (см. ChangeClassifierTree); выдаёт Standard / Normal / Emergency; для Normal требует ссылку на CAB-тикет в теле PR.

Все 5 проверок эмитят структурированный вывод в S3 как доказательство (control_id CHANGE-MGMT-NNN); защищаемые при аудите проверки воспроизводятся через gh pr view --json + получение доказательств из S3.

Антипаттерн: обход через “тривиальную” классификацию. Инженер добавляет колонку, выглядящую простой; инструменты авто-классифицируют её как “нематериальную”; проверки 1-4 молча проходят. Но контекст не учтён — колонка джойнится к downstream CDE через агрегацию. Исправление: скан lineage должен проверять транзитивное влияние (глубина 3+ downstream), а не только прямых потребителей; sensitivity-scan должен анализировать имя колонки + паттерн значений, а не только метаданные схемы.

SDLC-оверлей SwiftRide pre-IPO: состояние T+12M

Фактическое состояние SDLC-оверлея CDE SwiftRide в Q4 2026:

ЭтапСтатусРазрыв до цели T+18M
Секция CDE Impact в шаблоне RFCВнедрена в Q2 2026Adoption ~70% — толкаем к 100% к T+15M
CODEOWNERS для models/cde/**Внедрены в Q3 2026Все материальные CDE покрыты; tier 2 частично
Контракты ODCS для tier 1 CDE9 из 30 написаны (Q4 2026)30 из 30 — цель T+15M
Pre-commit hooks для тега чувствительностиВнедреныРаботают — но обзор DPO всё ещё ручная эскалация
CI/CD-проверки cde-*3 из 5 живые (contract-validate, impact-analysis, data-quality-staging)sensitivity-scan + change-classification — цель T+13M
Интеграция CAB в гейт мержа PRЖивая для Normal/Emergencyedge-кейсы — ручная привязка CAB-тикета иногда пропускается (findings из dry-run Q3 2026)
Пост-деплой soak-верификацияЖивая для tier 1tier 2/3 через существующий workflow инцидентов M7.4

Резюме pre-IPO драмы. T0 (начало курса) — оценка готовности к pre-IPO нашла “11 из 25 findings связаны с данными”; ~3 из этих findings были именно разрывами SDLC-интеграции. Состояние T+12M: 6 из 11 закрыты; 5 активно ремедиируются; совместный OKR CDO + CTO на T+15M = все SDLC-гейты проходят на audit dry-run. Если этот оверлей не работает к циклу аудита Q1 2027 — риск раскрытия material weakness задерживает листинг на NYSE по оценке партнёра Big 4.

Проверка знанийKnowledge check
SwiftRide T+13M — какие 5 CI/CD-проверок для PR с CDE должны жёстко блокировать мерж, и что эмитит каждая как доказательство?
ОтветAnswer
5 CDE CI/CD-проверок: (1) `cde-contract-validate` — проверка соответствия контракта ODCS (`contracts/cde-*.yml`) и реализации (dbt-модель / миграция Aurora); верифицирует совпадение имён колонок + типов + nullability + ограничений + ссылок на контроли; сборка падает при дрейфе; эмитируемое доказательство: SHA файла контракта + SHA файла реализации + diff-отчёт + JSON-вывод валидатора + control_id='CHANGE-MGMT-CONTRACT-VAL'. (2) `cde-impact-analysis` — скан lineage через запрос OpenLineage Marquez + поиск в реестре + маппинг регуляторов; выдаёт комментарий к PR со списком downstream-потребителей + tier + флагами регуляторов + обязательными ревьюерами; эмитируемое доказательство: JSON-вывод скана lineage + снапшот поиска в реестре + артефакт маппинга регуляторов + control_id='CHANGE-MGMT-IMPACT'. (3) `cde-data-quality-staging` — полный прогон DQ-правил на staging-клоне Snowflake + свежезагруженной выборке; все SEV-1 правила должны пройти (модель severity M7.4); провал = сборка падает; эмитируемое доказательство: JSON-вывод запуска DQ по каждому правилу + указатель на снапшот выборки + манифест результатов + control_id='CHANGE-MGMT-DQ-STAGING'. (4) `cde-sensitivity-scan` — pre-merge скан новых колонок / таблиц / файлов; классифицирует теги чувствительности (PII / финансовые / регуляторные) через классификатор Atlas/OpenMetadata; авто-тегирует новые сущности; если PII обнаружен без DPO в списке ревьюеров — сборка падает; эмитируемое доказательство: вывод скана + решения классификации + манифест авто-тегов + control_id='CHANGE-MGMT-SENSITIVITY'. (5) `cde-change-classification` — запускает логику решений из M8.2 ChangeClassifierTree; выдаёт классификацию Standard / Normal / Emergency; для Normal — требует ссылку на CAB-тикет в теле PR (регекс CAB-YYYY-QN-WMM-NNN); для Emergency — требует ссылку на Slack-тред eCAB; сборка падает при несоответствии доказательств классификации; эмитируемое доказательство: вывод классификации + ссылка на CAB-тикет + обоснование решения + control_id='CHANGE-MGMT-CLASS'. Каждая проверка эмитит структурированный JSON в S3 (s3://swr-evidence-prod/change-mgmt/YYYY/MM/DD/{control_id}/{pr_sha}.json) с подписью HMAC-SHA256; неизменяемый Object Lock 7 лет; перекрёстно ссылается через pr_sha + control_id; запрашивается через Snowflake audit.evidence_index. Аудиторский след: аудитор может SELECT pr_sha, все 5 артефактов доказательств по диапазону timestamp; воспроизвести решения; верифицировать цепочку control_id. Принудительная блокировка: GitHub branch protection rules требуют status=success для всех 5 проверок; апрув CODEOWNERS; запрет force-push в main; кнопка мержа отключена для админ-override (настраиваемо, но аудиторский след обязателен). Разрыв M7.4 / M8.4 если проверка падает после мержа — инцидент SEV-1, ревью eCAB, переклассификация изменения, эмиссия доказательств обновляется с ремедиацией.

Антипаттерны

”Контракт добавим потом”

Паттерн: схема развёрнута без контракта ODCS; обещание записано на потом.

Почему плохо: реализация расходится с ментальной моделью; первое нарушение сверки обнажает разрыв; аудитор видит отсутствующий контракт = design deficiency по AS 2201.

Исправление: контракт коммитится до реализации; CI падает, если файл контракта отсутствует для пути с CDE-тегом.

”Только дата-команда ревьюит дата-PR”

Паттерн: Data Platform team как единственный апрувер на CDE PR; Business Owner + DPO вне пути ревью.

Почему плохо: ревью 1L (operations) без 2L (Risk + Compliance) = провал Three Lines; design deficiency по PCAOB AS 2201 ¶.30+.

Исправление: мульти-командные CODEOWNERS; интеграция Workiva захватывает следы апрувов; pre-commit обеспечивает минимальный набор ревьюеров.

CAB-тикет привязан после мержа

Паттерн: инженер мержит PR; открывает CAB-тикет постфактум; заявление “тикет существует” удовлетворяет поверхностной проверке.

Почему плохо: обзор CAB должен блокировать мерж; постфактумный тикет = governance theatre; аудитор отслеживает timestamps и обнаруживает.

Исправление: CI-проверка валидирует, что CAB-тикет status=‘approved’ AND timestamp создания CAB-тикета < timestamp мержа PR; провал блокирует мерж; emergency-override через Slack-тред eCAB с явным timestamp.

Паттерн “тривиального” изменения

Паттерн: разработчик помечает CDE PR как “тривиальное — просто добавляю nullable-колонку”; проверки 1-5 проходят; намерение обхода.

Почему плохо: тривиальная классификация используется, чтобы избежать CAB; паттерн повторяется; control deficiency по AS 1305.

Исправление: классификация = автоматическая, не на основе заявления автора; CDE-затронутый путь → обязательная классификация на основе tier; ручной override требует совместного подписания CDO + Data Platform Lead.

Резюме

  • SDLC-оверлей для CDE — shift-left контроли на 6 этапах: design → schema → code → CI → CAB → post-deploy.
  • Принудительное исполнение schema review через CODEOWNERS + pre-commit + анализ влияния; 2L (Data Risk Manager) + DPO обязательны в пути ревью.
  • Контракты ODCS (спецификация Bitol) для CDE — обязательный артефакт; соответствие контракт ↔ реализация валидируется автоматически; содержимое контракта расширено ключами cde.* (tier, id, контекст регулятора, контроли).
  • 5 CI/CD-проверок жёстко блокируют мерж — contract-validate, impact-analysis, data-quality-staging, sensitivity-scan, change-classification.
  • Интеграция CAB обеспечена через гейт мержа; CAB-тикет должен быть одобрен И создан до timestamp мержа PR.
  • SwiftRide T+12M: 6 из 11 SDLC findings закрыты; 5 в ремедиации; цель T+15M = все гейты проходят audit dry-run.
  • Антипаттерны: постфактумные контракты, ревью одной командой, постфактумные CAB-тикеты, “тривиальный” обход — все паттерны проверяются ежеквартально Internal Audit.

В M8.2 разберём управление изменениями — оценку blast radius, freeze-периоды и протокол emergency change с инструментом ChangeClassifierTree.

Data Flow Lineage — impact analysis для SDLC gating dbt Quality Tests — CI/CD data quality gate

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 8