Learning Platform
Глоссарий Troubleshooting
Урок 10.04 · 25 мин
Продвинутый
Governance Tech StackDocker ComposeDataOpsIntegration Patterns

Развёртывание governance tech stack

Введение

В уроках 1-3 мы изучили отдельные категории инструментов: каталоги, quality, observability. Теперь вопрос: как собрать их в единый governance tech stack? Этот урок покрывает deployment-паттерны, интеграцию между инструментами, и роль CDC/streaming в governance-инфраструктуре.

Слоёная архитектура governance stack

Governance tech stack строится послойно — каждый слой зависит от предыдущего:

Layer 1: MetadataData Catalog (OpenMetadata/DataHub): foundation layer. Все остальные инструменты отправляют метаданные сюда.
Layer 2: QualityGE/Soda/dbt tests: validation results -> Catalog. Quality metrics отображаются в каталоге.
Layer 3: ObservabilityMonte Carlo/Datafold: anomaly detection -> Catalog + Alerting. Обнаруживает проблемы, которые quality не покрыл.
Layer 4: Access ControlRanger/OPA/Vault: policies enforced based on Classification from Catalog. Catalog -> Policy Engine -> Enforcement.
Layer 5: OrchestrationAirflow/Dagster: coordinates all layers. Quality checks в DAGs, results -> Catalog, alerts -> Slack/PagerDuty.

Deployment-паттерны

Docker Compose: dev/test и малые команды

Docker Compose — стандарт для dev/test environments и команд до 20 человек:

# Governance stack: simplified architecture
# Catalog (OpenMetadata) + Quality (GE) + Orchestration (Airflow)
services:
  postgresql:
    image: postgres:15
    environment:
      POSTGRES_DB: governance_db
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready"]
      interval: 10s

  elasticsearch:
    image: elasticsearch:7.17.15
    environment:
      discovery.type: single-node
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"

  openmetadata:
    image: openmetadata/server:1.5.15
    depends_on:
      postgresql:
        condition: service_healthy
      elasticsearch:
        condition: service_started
    ports:
      - "8585:8585"

  airflow:
    image: apache/airflow:2.7.3
    environment:
      AIRFLOW__CORE__EXECUTOR: LocalExecutor
    ports:
      - "8080:8080"
    depends_on:
      postgresql:
        condition: service_healthy

volumes:
  pg_data:

Ключевые правила Docker Compose для governance:

  1. Healthchecks обязательны — depends_on без healthcheck не гарантирует готовность сервиса
  2. Named volumes — данные каталога, quality results, Airflow DAGs должны переживать перезапуск
  3. Network isolation — governance stack в отдельной Docker network от application stack
  4. Environment variables — credentials через .env file, не hardcoded в compose

Kubernetes: production и масштабирование

Для production environments (50+ пользователей, HA requirements):

КомпонентKubernetes resourceNotes
OpenMetadataHelm chart (official)StatefulSet для server, PersistentVolume для DB
ElasticsearchECK operatorManaged ES cluster, auto-scaling
PostgreSQLCloudNativePG operatorHA PostgreSQL, automated backups
AirflowHelm chart (official)KubernetesExecutor для isolation

Интеграционные паттерны

Паттерн 1: Quality Results -> Catalog

GE Checkpoint -> validation_result.json -> OpenMetadata Ingestion API
                                           -> Quality tab на dataset page

OpenMetadata поддерживает native ingestion quality results из GE, Soda, dbt tests. Результаты отображаются рядом с метаданными таблицы.

Паттерн 2: Catalog Classification -> Access Control

Catalog (PII tag) -> Policy Engine (OPA) -> DB Proxy (row-level filtering)

Классификация данных в каталоге (PII, Confidential, Public) используется policy engine для enforcement access control. Когда Data Steward помечает столбец как PII в каталоге — policy engine автоматически применяет masking.

Паттерн 3: Orchestrator -> Quality -> Catalog -> Alert

Airflow DAG -> dbt run + dbt test -> results -> OpenMetadata API
                                               -> Slack/PagerDuty alert

Типичный governance pipeline: orchestrator запускает трансформацию, затем quality checks, результаты отправляются в каталог, при failure — alert.

DataOps toolchain и CDC/streaming

Governance tech stack работает не в изоляции — он интегрируется с DataOps toolchain: инструментами для CI/CD, version control, deployment данных.

Компонент DataOpsGovernance-интеграцияПример
GitVersion control для dbt models, policies, expectationsdbt models в Git -> PR review -> quality gate
CI/CDQuality gates в pipelineGitHub Actions: dbt test + soda scan before merge
CDCReal-time data propagationDebezium -> Kafka -> качество в streaming
IaCInfrastructure as Code для governance stackTerraform/Pulumi для Kubernetes deployment

Cross-course reference: CDC в governance

Change Data Capture (CDC) играет критическую роль в governance: real-time propagation изменений данных позволяет quality checks в streaming mode, а не только в batch.

Debezium CDC — open-source CDC platform для PostgreSQL, MySQL, MongoDB. В governance контексте: Debezium captures changes -> Kafka -> GE/Soda validates in near-real-time -> alert на quality violation.

Подробнее о CDC-паттернах и интеграции с data pipelines: CDC и паттерны data pipeline

Сценарий: DataTech deploys first governance stack

Сценарий: DataTech Solutions (ДатаТех Солюшенз)

DataTech развёртывает governance stack в Docker Compose на одном сервере (16 GB RAM):

СервисRAMПортНазначение
PostgreSQL 152 GB5432Metadata store + application DB
Elasticsearch 7.172 GB9200Search index для каталога
OpenMetadata 1.5.x2 GB8585Data catalog + quality
Airflow 2.72 GB8080Orchestration
Total8 GBОставляет 8 GB для OS + future services

Порядок deployment:

  1. PostgreSQL + Elasticsearch (infrastructure)
  2. OpenMetadata (catalog — Layer 1)
  3. Airflow (orchestration — Layer 5, но нужен рано для ingestion scheduling)
  4. GE (quality — Layer 2) — как Python package в Airflow container
  5. Ingestion connectors: PostgreSQL -> OpenMetadata, Airflow lineage -> OpenMetadata

Результат за 2 недели: каталог с 200+ таблицами, автоматический lineage из 45 DAGs, quality checks на 10 critical datasets.

Проверка знанийKnowledge check
DataTech развёртывает OpenMetadata + Airflow + GE на сервере с 16 GB RAM. После добавления Elasticsearch для поиска и PostgreSQL для metadata -- остаётся 8 GB свободных. CTO хочет добавить Monte Carlo для observability. Реалистично ли это?
ОтветAnswer
Нет. Monte Carlo -- SaaS-продукт ($50K+/год), не self-hosted. Для self-hosted observability потребуется alternative: Elementary (open-source для dbt) или custom Grafana dashboards. Но даже self-hosted observability потребует дополнительные ресурсы. Рекомендация: начать с GE/dbt quality checks (уже в стеке, zero additional RAM), добавить observability через Elementary (dbt package, runs внутри dbt -- zero new containers) или мониторинг через Airflow SLA alerting.
Проверка знанийKnowledge check
Почему healthchecks в Docker Compose критичны для governance stack?
ОтветAnswer
Governance-сервисы имеют зависимости: OpenMetadata зависит от PostgreSQL (metadata store) и Elasticsearch (search index). Без healthcheck depends_on гарантирует только запуск контейнера, но не готовность сервиса. PostgreSQL может стартовать за 5 секунд, а OpenMetadata попытается подключиться через 1 секунду -- connection refused, crash, restart loop. Healthcheck (pg_isready, curl ES _cluster/health) гарантирует, что dependent service стартует только когда dependency действительно готова принимать подключения.

Итоги

  • Governance stack строится послойно: Metadata -> Quality -> Observability -> Access Control -> Orchestration
  • Docker Compose — стандарт для dev/test и команд до 20 человек; healthchecks и named volumes обязательны
  • Kubernetes — production: Helm charts, operators, HA
  • Интеграционные паттерны: Quality -> Catalog, Classification -> Access Control, Orchestrator -> Quality -> Catalog -> Alert
  • CDC/streaming (Debezium) расширяет governance в real-time: quality checks на streaming data
  • DataOps интегрирует governance в CI/CD: quality gates, version control для policies

В следующем уроке — оценка и выбор инструментов: structured evaluation, TCO analysis, scoring matrices, stakeholder alignment.

Проверьте понимание

Результат: 0 из 0
Прикладной
Вопрос 1 из 5. DataTech развёртывает governance stack в Docker Compose: PostgreSQL + Elasticsearch + OpenMetadata + Airflow. OpenMetadata стартует раньше PostgreSQL и падает с 'connection refused'. Что не хватает в docker-compose.yml?

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

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

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

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