๐Ÿ‘ค Who is this for?

IT Admin BI Developer Platform Owner โ€” This section covers CI/CD deployment patterns, Git integration, and step-by-step migration strategies from Synapse, ADF, Power BI Premium, and on-premises systems.

DevOps

Deployment Patterns

CI/CD, Git integration, and lifecycle management for Fabric artifacts.

๐Ÿ“– Deep Dive Available

For comprehensive CI/CD guidance โ€” including Git setup, branching strategies, deployment pipeline configuration, automation with REST APIs, and GitHub Actions examples โ€” see the dedicated CI/CD & Git Integration page.

Development Lifecycle

A well-structured deployment strategy ensures reliability and consistency across environments. Microsoft Fabric supports a full Dev โ†’ Test โ†’ Prod lifecycle with built-in tools.

Deployment Lifecycle
๐Ÿ’ป
Develop
Code, build, and test in dev workspace
โ†’
๐Ÿ”€
Git Commit
Push to feature branch, create pull request
โ†’
โœ…
Test / QA
Validate in staging workspace
โ†’
๐Ÿš€
Production
Deploy via pipeline to prod workspace

The Two Building Blocks

Fabric provides two complementary tools for lifecycle management. Understanding each one is key to choosing the right deployment pattern.

๐Ÿ”€ Git Integration

Connect your workspace to Azure DevOps or GitHub. Artifacts are serialized into JSON/PBIR definitions in the repo, enabling version control, branching, code review, and collaboration.

  • Feature branches for isolated development
  • Pull requests for code review
  • Auto-sync between workspace โ†” repo
  • Full audit trail of every change

๐Ÿš€ Deployment Pipelines

Fabric's built-in tool for promoting artifacts between stages (up to 10 stages). Compare differences, deploy selectively, and configure rules to parameterize connections per environment.

  • Visual diff comparison between stages
  • Selective or full deployment
  • Deployment rules for environment config
  • Backward deployment (rollback support)

Deployment Patterns

How you combine Git and Deployment Pipelines defines your CI/CD pattern. Microsoft documents three primary approaches โ€” choose based on your branching strategy, team maturity, and governance needs.

Pattern 1: Git-Based Deployments (Gitflow)

All deployments originate from the Git repository. Each stage has a dedicated primary branch (e.g., dev, test, prod) that feeds its workspace. Promotion happens via Pull Requests between branches.

Git-Based Deployment (Gitflow)
๐Ÿ”€
PR โ†’ Dev Branch
Merge feature branch into dev
โ†’
โš™๏ธ
Build + Release
Sync to Dev workspace via Git APIs
โ†’
๐Ÿ”€
PR โ†’ Test Branch
Cherry-pick / release branch to test
โ†’
๐Ÿ”€
PR โ†’ Prod Branch
Final promotion to production
๐Ÿ’ก How it works

Each stage triggers a Build pipeline (unit tests) and a Release pipeline (syncs content using Fabric Git APIs). Post-deployment APIs handle environment-specific configuration (connections, data ingestion).

Pattern 2: Git + Build Environments (Trunk-Based)

All deployments originate from a single main branch. Each stage has its own build pipeline that uses a build environment to transform configuration (connection IDs, lakehouse IDs, parameters) before deploying to each workspace.

Trunk-Based with Build Environments
๐Ÿ”€
PR โ†’ Main
Merge into single main branch
โ†’
๐Ÿ—๏ธ
Build Env (Dev)
Unit tests + config transform for Dev
โ†’
๐Ÿ—๏ธ
Build Env (Test)
Tests + config transform for Test
โ†’
๐Ÿ—๏ธ
Build Env (Prod)
Config transform + deploy to Prod
๐Ÿ”ง Implementation Tools

fabric-cicd โ€” Python library for code-first CI/CD automations (see detailed section below).
Bulk Import Item Definitions API โ€” Creates and updates items with built-in dependency handling for correct deployment order.

Pattern 3: Fabric Deployment Pipelines

Git is connected only to the Dev workspace. Promotion from Dev โ†’ Test โ†’ Prod happens through Fabric's native deployment pipelines, which can be orchestrated via APIs from Azure DevOps or GitHub Actions.

Deployment Pipelines Flow
๐Ÿ”€
PR โ†’ Main
Merge to main branch
โ†’
๐Ÿ’ป
Dev Workspace
Git sync via APIs
โ†’
๐Ÿ”„
Fabric Pipeline
Deploy Dev โ†’ Test (with tests)
โ†’
๐Ÿš€
Fabric Pipeline
Deploy Test โ†’ Prod (with approval)
โšก API Orchestration

Even with this approach, you can fully automate using Deployment Pipelines APIs from Azure DevOps or GitHub Actions โ€” adding automated tests, approval gates, and audit trails.

ISV / Multi-Tenant Pattern

For ISVs building SaaS on Fabric, a variant of Pattern 2 exists where Dev and Test are centralized, but Prod fans out to per-customer workspaces (potentially thousands). Each customer release runs in parallel with unique parameters. See the full ISV pattern โ†—

Which Pattern Should You Choose?

There's no one-size-fits-all โ€” many organizations use hybrid approaches. Use these scenarios to guide your decision:

๐ŸŽฏ If you're a small team getting started...

Use Pattern 3 (Deployment Pipelines). Connect Git to your Dev workspace for version control, then use Fabric's built-in pipelines to promote to Test and Prod. Minimal setup, visual diff view, no custom scripts needed.

๐ŸŽฏ If you need deterministic, automated deployments...

Use Pattern 2 (Build Environments). A single main branch with build pipelines that transform config per stage gives you full control and repeatability. Implement with fabric-cicd or the Bulk Import API.

๐ŸŽฏ If your team already uses Gitflow...

Use Pattern 1 (Git-Based). Each environment maps to a branch โ€” promotion happens via PRs, which fits naturally into your existing review workflow. No Fabric deployment pipelines needed.

๐ŸŽฏ If you want the best of both worlds...

Combine Git integration (for development and version control) with Deployment Pipelines (for promotion and rollback). This is the most common hybrid โ€” use Git for PRs and code review, and Fabric pipelines for the actual stage-to-stage deployment with visual comparison.

Pattern 1 (Gitflow) Pattern 2 (Build Envs) Pattern 3 (Pipelines)
Source of truth Git (all stages) Git (single branch) Git (dev) + Fabric (promotion)
Branching Multi-branch (Gitflow) Trunk-based Single branch typical
Config per env Post-deploy API calls Build-time scripts transform values Deployment rules + autobinding
Setup effort Medium High Low
Fabric UI features โŒ No diff view / history โŒ No diff view / history โœ… Full diff, history, selective deploy
Rollback Git revert + re-deploy Git revert + re-deploy Backward deployment in UI

Implementation: fabric-cicd Python SDK

The fabric-cicd library is Microsoft's open-source Python SDK for automating Fabric workspace deployments. It provides deterministic, code-first deployments that integrate seamlessly with GitHub Actions and Azure DevOps pipelines. Best suited for Pattern 2 but works with any Git-based approach.

Installation

Install via pip
pip install fabric-cicd

Key Capabilities

Deployment Example

Python โ€” Deploy Fabric items with fabric-cicd
from fabric_cicd import FabricWorkspace, publish_all_items
from azure.identity import ClientSecretCredential

# Authenticate with service principal
credential = ClientSecretCredential(
    tenant_id="your-tenant-id",
    client_id="your-client-id",
    client_secret="your-client-secret"
)

# Define the target workspace
workspace = FabricWorkspace(
    workspace_id="your-workspace-id",
    environment="PROD",                    # Maps to parameter.yml values
    repository_directory="./fabric-items", # Local repo directory with item definitions
    item_type_in_scope=["Notebook", "DataPipeline", "SemanticModel", "Report"],
    credential=credential
)

# Deploy all items
publish_all_items(workspace)

GitHub Actions Integration

YAML โ€” GitHub Actions workflow for Fabric deployment
name: Deploy to Fabric
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install fabric-cicd
        run: pip install fabric-cicd

      - name: Deploy to Production
        env:
          AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
          AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
          AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
        run: python scripts/deploy.py --env PROD

Environment Parameterization

YAML โ€” parameter.yml example
find_replace:
  - find: "your-dev-lakehouse-id"
    replace_with:
      DEV: "dev-lakehouse-id"
      TEST: "test-lakehouse-id"
      PROD: "prod-lakehouse-id"
  - find: "your-dev-connection"
    replace_with:
      DEV: "dev-connection-string"
      TEST: "test-connection-string"
      PROD: "prod-connection-string"

CI/CD Best Practices

Migration

Migration Strategies

Moving from existing platforms to Microsoft Fabric with minimal risk.

๐Ÿ“– Synapse-to-Fabric Deep Dive Available

For a comprehensive guide on migrating from Azure Synapse Analytics โ€” including the evolution story, Migration Assistant tools, Spark migration phases, data type mapping, and decision frameworks โ€” see the dedicated Synapse to Fabric Migration page.

Migration Decision Framework

Migration is not one-size-fits-all. Use a phased approach to reduce risk and ensure continuity:

๐Ÿ”„ Interactive Migration Path Recommender

Select your current platform to see a step-by-step tailored migration path to Fabric.

What are you migrating from?
๐Ÿ”ท
Azure Synapse Analytics
Dedicated SQL pools, Spark pools, Synapse pipelines
๐Ÿ”ถ
Azure Data Factory
ADF pipelines, linked services, data flows
๐Ÿ“Š
Power BI Premium / Fabric Capacity
Existing P1โ€“P5 (now F64โ€“F2048) capacity with reports & datasets
๐Ÿงฑ
Databricks
Spark workspaces, Delta tables, MLflow
๐Ÿข
On-Premises (SQL Server / SSIS)
SQL Server databases, SSIS packages, SSRS reports
Phased Migration Approach
๐Ÿ”
Assess
Inventory current workloads, dependencies, costs
โ†’
๐Ÿงช
Pilot
Migrate 1-2 non-critical workloads to validate
โ†’
๐Ÿ”„
Migrate
Iteratively move workloads in priority order
โ†’
๐Ÿ“ˆ
Optimize
Tune performance, retire legacy services

Migration Paths

From Azure Synapse Analytics

From Azure Data Factory (ADF)

From Power BI Premium

From On-Premises (SQL Server / SSIS)

๐Ÿ› ๏ธ Official Migration Tools & Resources

Select your source platform to see the official Microsoft tools, step-by-step guidance, and current migration support status.

๐Ÿ”ท

Azure Synapse Analytics

Dedicated SQL pools, Spark pools, Synapse pipelines

Official Tools Available
๐Ÿ”ถ

Azure Data Factory

ADF pipelines, linked services, data flows

Migration Assistant Available
๐Ÿ“Š

Power BI Premium / Fabric Capacity

Legacy P1โ€“P5 (now F64โ€“F2048) with reports, datasets, dashboards

Guided Migration Path
๐Ÿข

On-Premises SQL / SSIS

SQL Server databases, SSIS packages, SSRS reports

Partial Tooling
๐Ÿงฑ

Databricks

Spark workspaces, Delta tables, MLflow experiments

Manual Migration
โ„๏ธ

Snowflake

Snowflake warehouses, stages, stored procedures

Mirroring + Manual
โš ๏ธ Common Migration Pitfalls

1. Doing a "big bang" migration โ€” always migrate incrementally. 2. Ignoring data quality issues in the source โ€” clean data before or during migration. 3. Not testing performance with production-scale data. 4. Forgetting to migrate security policies and access controls. 5. Underestimating change management โ€” train your team!

๐Ÿ“Š Looking for capacity sizing?

Capacity planning, SKU selection, cost optimization, and TCO/ROI calculator have moved to the Capacity Planning page.