Medallion Architecture Meets Microsoft Fabric: Insights and Fiction
Microsoft wants to recreate the undeniable success of Power BI but with a wider data remit by including Data Engineering, Data Warehousing and Data...
3 min read
Cyril Gagnaire
:
Jul 6, 2025 1:49:52 PM
As Microsoft Fabric matures into a powerful unified analytics platform, more organisations are asking how to manage it at scale. The Fabric UI is great for hands-on work, but managing dozens of workspaces, users, and capacities manually can get messy fast.
In this post, we’ll explore why this industry-standard Infrastructure as Code (IaC) tool is a valuable addition to your Fabric environment management strategy, where it fits into the broader Fabric ecosystem, and how it complements rather than replaces tools like Fabric Deployment Pipelines.
Microsoft Fabric is a powerful platform, but provisioning and configuring it manually via the UI becomes error-prone and time-consuming as you scale. Terraform brings Infrastructure as Code (IaC) to Fabric, letting you define your environment in code that can be versioned, reused, and automatically deployed.
Here’s why Terraform makes sense for managing your Fabric environment:
Standardise and Automate:
Define Fabric workspaces, assign capacities, and configure roles consistently → no more manual errors.
Version Control Your Environment:
Track changes in Git, collaborate with others, and audit every modification.
Scale with Confidence:
Spin up dozens of workspaces or assign roles in seconds.
Enable CI/CD:
Automate provisioning and plug Fabric into your DevOps pipelines.
The official Microsoft Fabric Terraform provider is actively evolving, and currently supports key components such as:
Workspaces (including Fabric capacity assignment)
Lakehouses
Notebooks
Data pipelines
Workspace permissions
Deployment pipelines
Power BI items (where applicable)
For example, here’s how you might create a workspace with Terraform:
resource "fabric_workspace" "sales_workspace" {
name = "Sales Analytics"
capacity = "prod-capacity"
description = "Workspace for Sales Analytics team"
}
While not every component is configurable yet, Terraform is already powerful for laying down your foundational structure.
The Fabric Terraform provider is actively being developed with new features being shipped regularly. I’m keeping an eye on their GitHub repo to see what’s coming soon.
At the time of writing, I am keeping my eyes on these upcoming features:
While Terraform shines in provisioning environments, it doesn’t replace the need for the Fabric UI or the authoring experience.
Use the Fabric UI when you need to:
Build or edit notebooks, pipelines, and semantic models
Configure data transformations and relationships visually
Perform ad-hoc troubleshooting or data inspection
Fine-tune Power BI visuals and dashboards
Terraform is excellent for infrastructure, but Fabric’s UI and authoring tools remain essential for day-to-day content creation and exploration.
Not sure when to use Terraform vs the Fabric UI? Here's a quick guide to what each is best at:
Task |
Use Terraform |
Use Fabric UI |
---|---|---|
Create workspace |
✔️ |
✔️ |
Assign workspace roles |
✔️ |
✔️ |
Build semantic models |
❌ |
✔️ |
Create reports or dashboards |
❌ |
✔️ |
Design pipelines or notebooks |
❌ |
✔️ |
Upload files to a Lakehouse |
❌ |
✔️ |
Terraform and Deployment Pipelines solve different problems, here’s how they complement each other:
Tool |
What it does |
---|---|
Terraform |
|
Deployment Pipelines |
|
Think of Terraform as setting up the stage, and Deployment Pipelines as managing the play.
You might use Terraform to:
Set up a new dev/test/prod environment with identical structure
Assign workspace admins or viewer roles
Connect a workspace to a dedicated capacity
Deploy boilerplate artefacts
Then use Deployment Pipelines to:
Promote reports and datasets from development to production
Compare and validate changes across environments
Control content lifecycle
Terraform is great at setting up development, testing, and production environments. It automates user and group permissions while efficiently managing large-scale workspace deployments.
On the other hand, the Fabric UI is the best experience for developing data artefacts, creating visual representations, adjusting data flows, and promoting content effectively.
Here’s how we typically decide what to use, and when:
Use Case |
Use Terraform? |
Use Fabric Deployment Pipeline? |
---|---|---|
Provision new workspaces |
✔️ Yes |
🚫 No |
Assign workspace permissions |
✔️ Yes |
🚫 No |
Create lakehouses and notebooks |
✔️ (basic setup) |
✔️ (for editing) |
Build DAX models and visuals |
🚫 No |
✔️ Yes |
Promote a dataset to production |
🚫 No |
✔️ Yes (Deployment Pipeline) |
While the Terraform provider for Fabric allows us to manage quite a lot today, here are a few things to keep in mind:
Most new Fabric features land in Preview, which may limit production use.
Terraform support often lags behind new Fabric releases by a few months.
Development of the Terraform provider is mostly community-driven, but Microsoft is actively triaging issues on GitHub.
For full IaC, you’ll likely need to combine:
azurerm/fabric_capacity for capacity deployment
azuread/azuread_group for Entra ID group management
Using Terraform to manage your Microsoft Fabric tenant isn’t a one-size-fits-all decision. It depends on where your organisation is in its data journey.
If you’re just getting started, Terraform might feel like overkill. But setting it up early builds a solid foundation for scale, governance, and repeatability.
If you’re managing multiple environments, teams, or workloads, it’s time to consider Terraform seriously. It helps you bring order, consistency, and automation to an otherwise manual setup.
At Arkahna, we work with organisations to map out their current state, design future-ready Fabric architectures, and implement scalable, code-based solutions to manage them.
This post is part of a short series on managing Fabric environments at scale, in the next one, I’ll dive into how we use Terraform alongside Deployment Pipelines to support CI/CD for content promotion.
If you're exploring Terraform or rethinking your Fabric governance approach, reach out, we'd love to help.
Microsoft wants to recreate the undeniable success of Power BI but with a wider data remit by including Data Engineering, Data Warehousing and Data...
This article is a direct follow up from my previous blog post where I laid out my approach to the Medallion Architecture and how I see it fit in...
Howdy! In my previous article about Getting Started with Terraform I talked about what Terraform is, why it's neat-o, and a small example on getting...