Deployment Pipeline Patterns for Multi-Workspace Environments in Microsoft Fabric

Description

Managing deployments across multiple workspaces per environment in Microsoft Fabric can be a challenge. Based on real projects, this session shows how to use Fabric Deployment Pipelines with proven patterns, tips, and best practices for handling cross workspace dependencies through autobinding and variable library strategies, supported by practical demos that highlight the most important concepts.

Key Takeaways

My Notes

Action Items

Slides

Agenda
• Introductions
• Problem overview
• Example architecture
• Autobinding & Variable Library review
• Running Fabric deployment pipelines from Azure DevOps
• Demo
• Limitations & considerations
Atte Sukari
Data enthusiast from Finland
Senior Data Engineer at Norrin
M.Sc. in Economics & Business
Favorite tools & technologies:
Azure • Fabric • Databricks • Data platforms
linkedin.com/in/attesukari
Aleksi Partanen
Microsoft MVP & YouTuber
Data Architect & Team Lead at Norrin
Founder at CertiAce (certiace.com)
Founder at Fabric Forge (skool.com/fabricforge)
Aleksi Partanen
All my links!
https://linktr.ee/aleksipartanen
Problem in a nutshell
• When doing this in one single
workspace thins are quite
straight forward and deploying
from one environment to
another is typically simple
Development
Test
Production
Development
Test
Production
• When having multiple
workspaces per environment
things start to get way more
complex
High-level example architecture
Extract Workspace
• Ingests data from source systems
• Central raw data landing zone
• Supplies data to domain workspaces
Microsoft Fabric
Core Data Platform
Common Workspace
ws_common_
Sales Workspace
ws_sales_
Extract Workspace
ws_extract_

Source
Systems
Finance Workspace
ws_finance_
MDM Workspace
ws_mdm_

Domain Workspaces
• Domain-specific transformations
and modeling
• Consume data from Extract
• Deliver curated data to business
Common Workspace
• Central orchestration layer
• Coordinates cross-workspace
pipelines
• Controls execution across domains
MDM Workspace
• Produces master data products
• Owned by a separate team with their
own CI/CD practices & setups
• External dependency to the core data
platform
Detailed example architecture
Microsoft Fabric
Core Data Platform
Common Workspace
ws_extract_
Extract Workspace
ws_extract_

Deployment Pipelines
Lakehouses
• Main datastore used in the platform
• Lakehouse Shortcuts are used to share
data across workspace
Pipelines
• Main orchestration tool
• Use for many data extractions as well
Domain Workspace
ws_
Notebooks
• Data transformation and data modelling
Power BI Reports
• Data is mainly used for Power BI
reporting via semantic models
Source
Systems
MDM Workspace
ws_mdm
Azure DevOps
CI/CD
• Repos in Azure DevOps
• Deployment done via Fabric
Deployment Pipelines
Challenges with deployments
Microsoft Fabric
Core Data Platform
Multiple cross-workspace dependencies
• Shortcuts and pipeline invokes
• Central orchestration layer
• Multiple deployment pipelines needed
Common Workspace
ws_common_

Sales Workspace
ws_sales_
Extract Workspace
ws_extract_

Source
Systems
Finance Workspace
ws_finance_
MDM Workspace
ws_mdm_

Deployment order matters
• Upstream first, then consumers
• Partial deployment risks
• Fails if dependencies missing
Dependencies to MDM workspaces
• Outside of core data platform CI/CD
processes & practices
Fabric uses internal ids rather than names
• Different IDs per item per environment
• Many things can’t be resolved using names
Autobinding
Microsoft Fabric
DEV
TEST
PROD
• Autobinding takes care of shortcuts across
workspaces when deploying
• Fabric knows that there is a relationship
between these workspace items
• If the relationship is not there => deployments
brakes
DEV
TEST
PROD
When not to use autobinding
Microsoft Fabric
DEV
TEST
PROD
You might have a case where you use
shortcut and pipelines to production in every
environment
• In this case you want all of your shortcuts
and pipelines to point to production
workspace

DEV
TEST
PROD
Variable Library
Multiple variable libraries
Generic environment variables
vl_environment_variables
Variable library for generic
environment variables
External connections
vl_external_connections
Variable library for managing
external connections and
dependencies to external
systems
Workspace references
vl_<workspace_without_env>
Variable library for (some)
cross-workspace item
references. One variable library
per referenced workspace
Workspace dependency handling
Microsoft Fabric
MDM DEV
ws_mdm_dev
Finance DEV
ws_finance_dev
MDM TEST
ws_mdm_test
Finance TEST
ws_finance_test
MDM PROD
ws_mdm_prod
Finance PROD
ws_finance_prod
• Variable libraries can be used to handle
cross-workspace dependencies
• Especially helpful when having dependencies
that you don’t control and deploy
• Can be also handy in feature branch
workflows
vl_ws_mdm
Variable Libraries or Autobinding
Autobinding is simple
• Rely on autobinding in simple scenarios
and when you are in control of the both
workspaces and using Fabric
deployment pipelines
No need to manage overhead
• Keeps the setup simpler since managing
a lot of variables in variable library can
become annoying
For more complex scenarios
• Use variable libraries for external
connections
Cross-environment references
• Consider using variable libraries for
shortcuts if you have multiple workspaces
per environment and there is a need to do
cross-environment references
Running deployments from Azure DevOps
Deployment steps
Azure DevOps
  1. Developer runs the deployment pipeline in
    Azure DevOps
    Pipeline
  2. Deployment pipeline acquires Microsoft Fabric
    access token using service connections with SPN
    identity
    2 Get Microsoft Fabric Access Token
    Developer
    Run Fabric Deployment Pipeline
  3. Deployment runs Fabric deployment triggers
    the Fabric deployment pipeline via Fabric API
    using the token
  4. Deployment pipeline deployment does the
    deployment from one environment to another
    Microsoft Fabric
    Fabric Deployment Pipeline
    Development
    Stage
    Extract DEV
    ws_extract_dev
    Test
    Stage
    Extract TEST
    ws_extract_test
    Production
    Stage
    Extract PROD
    ws_extract_prod
  5. DevOps deployment pipeline polls the Fabric
    API for deployment status
    Why run deployments from Azure DevOps?
    • Avoid personal user ownership in downstream
    environments
    • Ensure consistent release identity (Service
    Principal)
    Deploying multiple workspaces
    Single release pipeline
    • One DevOps pipeline triggers all Fabric
    deployments
    • Centralized promotion process
    Controlled order
    • Extract → Domains → Common
    • Upstream artifacts exist before
    downstream deploy
    Fail-safe execution
    • Each step waits for success
    • Prevents broken bindings and partial
    environments
    Microsoft Fabric
    Azure DevOps
    Pipeline
    Run Extract Deployment Pipeline
    Extract Deployment Pipeline
    Run Finance Deployment Pipeline
    Finance Deployment Pipeline
    Run Common Deployment Pipeline
    Common Deployment Pipeline
    DEMO
    DEMO
    TIME!
    Limitations & considerations
    Key limitations
    Other things to consider
    • Deployments are not selective
    • Dependencies
    • Which can make hot fixes problematic during
    testing cycles
    • Allow deployment via Fabric UI in some cases
    • SPN as supported item owner
    • Nowadays supported in most cases but some
    items might still have problems with SPN as the
    item owner
    • Try to have dependencies only to one direction
    • Otherwise, deployment can become very challenging
    • Nontechnical aspects
    • Like deployment cycles
    • Communication
    • Pull Requests reviews
    • Why not use Fabric CI/CD Python library?
    • Only until recently it became supported by
    Microsoft, and this setup was had been done before
    that and that point decision was made to use the
    “official” deployment methods
    Questions?
    Connect with us!
    linkedin.com/in/attesukari
    https://linktr.ee/aleksipartanen
    Sound off.
    The mic is all yours.
    Influence the product roadmap.
    Join the Fabric User Panel
    Join the SQL User Panel
    Share your feedback directly with our
    Fabric product group and researchers.
    Influence our SQL roadmap and ensure
    it meets your real-life needs
    https://aka.ms/JoinFabricUserPanel
    https://aka.ms/JoinSQLUserPanel