Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
joakimfenno
Helper V
Helper V

How to separate dev, test, prod in fabric

Can anyone share experience, pros/cons on how to separate enviroments (dev, test, prod) in fabric?

 

Are you separating environments by workspace, capacity or anything else?

I have been thinking of separate capacities for each environment. This gives each environment seperate resources (dev/test will not eat on prod resources). It is also a good practise to save cost by pausing dev/test capacities while prod i running 24/7.

However I am worried that by prod cpacity/workspace is bot guarded. What security mechanisms are available? separetae accounts? Only alowwing certain deployments (depolyment pipelines etc.)?

 

appriciate any feedback

1 ACCEPTED SOLUTION

Hi @joakimfenno,

You can assign required users the permission of the prod workspace.

BTW, fabric items also has their own security settings except workspace member permissions, you can setting on these to help increase the security of product usages.

Fabric security :

Security in Microsoft Fabric - Microsoft Fabric | Microsoft Learn

Lakehouse security:

Lakehouse sharing and permission management - Microsoft Fabric | Microsoft Learn

data warehouse security:

Security for data warehousing - Microsoft Fabric | Microsoft Learn

Regards,

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

7 REPLIES 7
hernandezpaulms
Microsoft Employee
Microsoft Employee

Hi everyone, 

 

I would like to add to the discussion the topic Fabric Domains. 

A customer asked me to review its idea about using Fabric Domains to layout different environment:

  • Domain Dev: sub-domain technical users, sub-domain business users
  • Domain Test: sub-domain technical users, sub-domain business users
  • Domain Prod: sub-domain technical users, sub-domain business users

    I know domains suppose to be use for a decentralized architecture and usually a domain group together a business department, for example, sales or hr. Nevertheless, sometime customer got creative with usage of features and that could be a good idea (or not).

     

    Do you see any advantage of this approach?

JCFAF
New Member

Hi, did you manage to get your question clarified? Nobody who replied answered the question. I am facing the same challenge here. Is there an advantage of using distinct capacities to host dev, test and prod? Or is it good practive to share the same capacity? Looking for insights or documentation about it

no -  not yet

just asked my Microsoft support. let's see what they say. happy to share here afterwards.

joakimfenno
Helper V
Helper V

deployment pipeline is ok - assumimg that you mean that environments are swparates by workspace

but I wonder if there is a way to secure the prod workspace?

Hi @joakimfenno,

You can assign required users the permission of the prod workspace.

BTW, fabric items also has their own security settings except workspace member permissions, you can setting on these to help increase the security of product usages.

Fabric security :

Security in Microsoft Fabric - Microsoft Fabric | Microsoft Learn

Lakehouse security:

Lakehouse sharing and permission management - Microsoft Fabric | Microsoft Learn

data warehouse security:

Security for data warehousing - Microsoft Fabric | Microsoft Learn

Regards,

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
v-shex-msft
Community Support
Community Support

HI @joakimfenno,

For separate the different model in fabric, current you can consider two methods: Deployment pipeline and Medallion structure Lakehouse.

For the deployment pipeline, it copies the full workflow stored in three different workspaces to simulate the dev, test, fact tier of environments.

According to the above definition, you can easily to publish and cancel between these tiers, but they will spend more resources due to each tier required to store their own resource.

Overview of Fabric deployment pipelines - Microsoft Fabric | Microsoft Learn

For the 'medallion structure' Lakehouse, it is focused on the data itself instead of full workflow.

It separates the one Lakehouse workflow to three Lakehouse(they can be assign in different workspaces), then remark them as bronze, silver, gold tiers based on their business logic.

For example:

The bronze tier is used to ingest data and apply some basic data shaping operations.

The silver tier getting data from bronze and used to prepare and apply complex transform operation on the data which getting from the previous tier.

The gold tier getting the silver tier data, and it will be more focused on consume, analyze and expose result.

Implement medallion lakehouse architecture in Fabric - Microsoft Fabric | Microsoft Learn

Regards,

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

Helpful resources

Announcements
MarchFBCvideo - carousel

Fabric Monthly Update - March 2025

Check out the March 2025 Fabric update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082