Data, AI & Integration · Standard

DataOps CI/CD, Testing, and Schema Evolution Best Practices

Defines versioning, automated testing, promotion, schema compatibility, deployment evidence, and recovery practices for enterprise data systems.

Document class: Data, AI & Integration standard Normative terms: MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are requirements levels. Applicability: Versioned delivery of data pipelines, schemas, transformations, policies, notebooks, semantic models, and infrastructure. Exception process: Deviations require a documented risk assessment, compensating controls, named risk owner, and expiry date.

Control fieldValue
Document IDDAI-11
OwnerCloud Center of Excellence
Review cycleAt least annually and after material platform, provider, data, security, or operating-model changes
EvidenceRelease manifest, compatibility tests, deployment evidence, reconciliation results, and operational readiness evidence

Decision in brief: Treat data and schema changes as versioned releases with automated compatibility tests, immutable artifacts, controlled promotion, and reconciliation.

Purpose

This guide defines a repeatable delivery system for pipelines, schemas, transformations, policies, notebooks, semantic models, and infrastructure. Data changes are releases and require the same traceability as application code plus explicit data compatibility and reconciliation controls.

Delivery architecture

flowchart LR G[Git change] --> V[Lint, unit, schema, security tests] V --> B[Immutable release artifact] B --> D[Development deployment] D --> T[Integration and data-quality tests] T --> P[Production approval] P --> R[Production deployment] R --> O[Freshness, volume, quality, reconciliation] O -->|failure| X[Rollback, roll forward, or replay]

Source and artifact standard

Version pipeline code, infrastructure, schemas, contracts, transformation logic, tests, policy, configuration templates, and migration scripts. Environment values and secrets MUST remain outside reusable artifacts. A release record MUST bind source revision, artifact digest, test evidence, approver, target, migration, and outcome.

Test layers

LayerExamples
StaticSyntax, style, secret scan, policy, dependency scan
UnitTransformation functions, mappings, business rules
ContractSchema, nullability, semantic meaning, compatibility
IntegrationSource/target connectivity and representative execution
Data qualityFreshness, volume, validity, uniqueness, referential integrity
ReconciliationCounts, totals, checksums, control balances
PerformanceThroughput, partition behavior, concurrency, cost
RecoveryRetry, idempotency, replay, checkpoint restoration, rollback

Synthetic or masked test data MUST preserve relevant distributions and edge cases without exposing production records.

Schema evolution rules

  • Classify changes as backward compatible, forward compatible, breaking, or semantic-only.
  • Add optional fields before making producers depend on them.
  • Use expand-and-contract migrations for renamed, retyped, or removed fields.
  • Version events, APIs, tables, and data contracts independently when their consumers differ.
  • Discover consumers before destructive change and publish a deprecation deadline.
  • Never rely on a successful DDL statement as proof that downstream jobs and reports remain correct.
sequenceDiagram participant P as Producer participant C as Contract registry participant U as Consumers P->>C: Propose schema version C->>C: Compatibility and policy checks C->>U: Impact notification P->>U: Dual-write or additive release U->>C: Migration confirmation P->>C: Retire old version

Multi-cloud mapping

NeedAzureAWSGCPOCI
OrchestrationData Factory, Fabric, DatabricksGlue, Step Functions, MWAADataform, Workflows, ComposerData Integration, GoldenGate
CI/CDAzure DevOps/GitHub ActionsCodePipeline/GitHub ActionsCloud Build/GitHub ActionsDevOps service/GitHub Actions
Schema registryEvent Hubs/Kafka registry patternsGlue Schema RegistryPub/Sub schemasStreaming schema governance patterns
QualityFabric/Databricks/testsGlue Data Quality/testsDataplex data quality/testsData Integration/tests

Deployment and recovery

Promote the same immutable code artifact, but generate environment-specific plans and migration evidence. Production deployment MUST use least-privilege workload identity, protected environments, concurrency control, and a tested failure path. Choose rollback only when old code remains data-compatible; otherwise use roll-forward correction or restore-and-replay.

Validation

Prove that a compatible schema passes, a breaking schema fails, an interrupted pipeline resumes without duplication, replay produces the expected result, secrets are absent from artifacts, and release evidence resolves to the deployed revision. Track failed data tests, escaped schema changes, deployment failure rate, recovery time, reconciliation differences, and manual production changes.

Operational considerations

Pipeline owners own code and data outcomes; platform teams own runners, templates, identity, artifact retention, and policy gates. Coordinate changes across producer and consumer teams, freeze unsafe migrations during critical periods, and retain enough source data and checkpoints for the declared replay window.

Release Manifest and Evidence Bundle

Every production release SHOULD produce a machine-readable manifest that binds the deployed data-system state to its reviewed inputs.

release_id: data-orders-2026.08.04.3
source_revision: 8f4c2e1
artifact_digest: sha256:example
environment: production
schemas:
  - orders-event: 3.2.0
migrations:
  - 20260804_add_delivery_window
evidence:
  contract_tests: passed
  reconciliation: passed
  security_policy: passed
rollback_mode: roll-forward

The evidence bundle SHOULD retain rendered plans, schema diffs, test results, migration checksums, data-quality outcomes, deployment identity, approval, start and end time, and post-release reconciliation. Evidence must remain available even when the deployment failed partway through.

Test-Data Management

Test data is part of the delivery control. Teams MUST define whether each test uses synthetic, generated, masked, sampled, or production-like data and which statistical properties must be preserved.

Required controls include:

  • no direct production copy by default;
  • irreversible transformation where feasible;
  • deterministic seeds for reproducible generated datasets;
  • edge cases for nulls, duplicates, late data, invalid encodings, large values, and skew;
  • controlled golden datasets with expected outputs;
  • expiration and secure deletion of temporary test stores;
  • separate access for test-data generation and production data administration.

A test suite that validates only happy-path records is insufficient for schema and replay assurance.

Compatibility Decision Matrix

ChangeDefault decisionRequired evidence
Add nullable fieldCompatibleproducer and representative consumer tests
Add required field with defaultConditionally compatiblehistorical backfill and serializer validation
Rename fieldBreaking unless aliasing existsdual-publish period and consumer migration
Widen numeric typeConditionally compatibledownstream engine and semantic-model tests
Change meaning without type changeBreaking semantic changenew contract version and consumer approval
Remove field or tableBreakingconsumer inventory, retirement deadline, and final access evidence

Compatibility policy MUST include semantics, not only physical schema shape.

Environment Promotion Rules

Code artifacts MAY be promoted unchanged, but environment-specific connections, identities, data volumes, and policies require fresh validation at each boundary. A non-production data result is not production evidence.

Production promotion MUST confirm:

  1. The target schema and state have not changed since planning.
  2. The migration order is compatible with currently deployed producers and consumers.
  3. The replay window and source retention can support recovery.
  4. Required data-quality and reconciliation controls are active.
  5. The deployment identity cannot alter unrelated products.
  6. Concurrent releases to the same tables, streams, or semantic model are serialized.

References