Events
Power BI DataViz World Championships
Feb 14, 4 PM - Mar 31, 4 PM
With 4 chances to enter, you could win a conference package and make it to the LIVE Grand Finale in Las Vegas
Learn moreThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
This article forms part of the Power BI implementation planning series of articles. This series focuses primarily on the Power BI experience within Microsoft Fabric. For an introduction to the series, see Power BI implementation planning.
This article helps you to develop content and manage changes as part of managing the content lifecycle. It's primarily targeted at:
Lifecycle management is the processes and practices you use to handle content from its creation to its eventual retirement. In the first stage of lifecycle management, you plan and design content, which involves solution planning and making key decisions that affect your approach to lifecycle management. In the second stage, you develop content and manage changes.
Managing content changes during its lifecycle is important to ensure effective collaboration among content creators and stable and consistent delivery of content to consumers.
The following image depicts the lifecycle of Power BI content, highlighting stage two, where you develop content and manage changes.
Note
For an overview of content lifecycle management, see the first article in this series.
Tip
This article focuses on key decisions and considerations to help you develop content and manage changes throughout its lifecycle. For more guidance about how to develop content and manage changes, see:
Content creators and owners should manage content changes by using version control. Version control is the practice of managing changes to files or code in a central repository. This practice facilitates more effective collaboration and content management.
Other benefits of version control include the ability to:
Tip
We recommend that you use version control for all content that you create, where possible. Using version control has significant benefits both for content creators and consumers and reduces the risk of disruption due to file loss or the inability to roll back changes.
The first step to set up version control is to decide how you'll develop content.
Depending on how you author content, you'll make different decisions about how to manage it. For instance, for Power BI reports and semantic models, a Power BI Desktop (.pbix) file has fewer options for version control compared to the Power BI Desktop project (.pbip) format. That's because a .pbix file is a binary format, whereas the .pbip format contains text-based human-readable content and metadata. Having human-readable content and metadata allows for easier tracking of model and report changes by using source control. Source control is when you view and manage changes within content to its code and metadata.
Tip
When developing semantic models and reports by using Power BI Desktop, we recommend that you use .pbip files instead of .pbix files. When developing semantic models by using XMLA tools, we recommend that you use the Tabular Model Definition Language (TMDL) format, instead of .bim files.
The .pbip and TMDL formats support easier tracking and merging of object-level changes. This means that you can view and manage changes to individual objects, like DAX measures or tables.
You can use Power BI Desktop to create semantic models or reports, which you can save as either .pbix or .pbip files. There are additional custom content files that you also may use when you use Power BI Desktop.When using Power BI Desktop to create content, some key decisions you should make include:
Certain content—such as dataflows, dashboards, and scorecards—can only be created in the Fabric portal. You can also create or modify some content—such as semantic models, reports, and paginated reports—in both the Fabric portal or by using local tools. When creating content by using web authoring, some key decisions you should make include:
Tip
When developing dataflows and scorecards, we recommend that you retrieve the item definitions to manage changes and store a backup. You can automate dataflow and scorecard retrieval by using the Fabric REST APIs. Specifically, you can use the Get Dataflow and Get Scorecards endpoints, respectively.
Caution
Some content—like dashboards—doesn't have the option to retrieve a definition. For this content, you can't easily track changes or retrieve a backup.
You can use other tools to create or manage certain types of content. These tools may provide added benefits, better suit your workflow, or be required to manage specific features or content types. You can use both other Microsoft tools or third-party tools to create and manage content. Other tools you can use to create or manage content are as follows.
When creating content by using other tools, some key decisions you should make include:
Once you decide how you'll create content, you next need to choose where you'll publish and test content while you develop it.
When developing content, you should use multiple workspaces (or stages) to separate production content used by the organization from content being developed or validated. There are several advantages to using separate workspaces for your content:
In Fabric and Power BI, we recommend that you use separate Fabric workspaces, as described in the tenant-level and workspace-level planning articles.
Important
Using separate environments is an essential step to ensure the success of your content lifecycle management approach.
There's multiple ways to use Fabric workspaces to separate environments. Typically, in addition to your local environment, you use two or more workspaces to manage content during its lifecycle.
Answer the following questions as you plan how you'll use separate workspaces throughout the lifecycle of this content:
The following sections provide a high-level overview of the different approaches you can take to separate workspaces to facilitate lifecycle management.
Note
The following sections focus on how you can set up and use separate workspaces. You can deploy content to these workspaces by using one of the following four approaches:
For more information about these approaches to deploy content, see Stage 4: Deploy content later in this series.
When you deliver simpler content that's not critical for the organization, two workspaces can often suffice. In this scenario, content creators typically have limited collaboration on the same items, and develop content locally.
The following diagram depicts a high-level example of how you might use separate environments with only a test and production workspace.
The diagram depicts the following processes and components to separate workspaces in this approach.
Item | Description |
---|---|
Content creators develop content in their local environment. | |
When ready, content creators publish content to a test workspace. Content creators can develop content that can only be produced with web authoring and perform content validation in the test workspace. | |
When ready, content creators deploy content to a production workspace. In the production workspace, content creators distribute content by publishing a Power BI app or sharing content from the workspace. |
Note
There are many different ways to set up and use separate workspaces, and deploy content between these workspaces. However, we recommend that you don't perform local development, then publish content directly to a production workspace. This can lead to preventable disruptions and errors.
When delivering business-critical content, you typically use three or more separate workspaces. In this scenario, content creators often collaborate in an additional, development workspace that contains the latest version of the solution.
The following diagram depicts a high-level example of how you might use separate environments with a development, test, and production workspace.
The diagram depicts the following processes and components to separate workspaces in this approach.
Item | Description |
---|---|
Content creators develop content in their local environment. | |
When ready, content creators publish content to a development workspace. In the development workspace, content creators can develop content that can only be produced with web authoring. Content creators can also validate content in the development workspace. | |
When ready, content creators deploy content to a test workspace. In the test workspace, users validate content, either in the workspace or an app. | |
When ready, content creators deploy content to a production workspace. In the production workspace, content creators distribute content by publishing a Power BI app or sharing content from the workspace. |
Note
You can use up to ten different environments with deployment pipelines. For instance, you might want to have a pre-production environment between test and production that's specifically for special types of validation, like performance testing.
When delivering business-critical content, each developer can also use their own, private workspace for development. In this scenario, a private workspace allows content creators to test content in the Fabric portal, or use features like scheduled refresh without risking disruption to others in the development team. Content creators can also develop content in the Fabric portal here, such as dataflows. Private workspaces can be a good choice when you are managing content changes by using Git integration together with Azure DevOps.
Note
Azure DevOps is a suite of services that integrate with Power BI and Fabric to help you plan and orchestrate content lifecycle management. When you use Azure DevOps this way, you typically leverage the following services:
The following diagram depicts a high-level example of how you might use separate environments by using a private workspace with Git integration.
Note
The diagram depicts separate developers working on separate branches of a solution (branch one and branch two) before merging their changes into a main branch. This is a simplified depiction of a Git branching strategy to illustrate how developers can integrate their changes with a remote Git repository and benefit from Git integration in Fabric.
The diagram depicts the following processes and components to separate workspaces in this approach.
Item | Description |
---|---|
Each content creator develops content in their own local environment. | |
When ready, content creators commit and push their changes to a remote repository, such as an Azure Repos Git repository. | |
In the remote Git repository, content creators track and manage content changes by using source control, and branch and merge content to facilitate collaboration. | |
Content creators sync a branch of the remote repository with a private workspace. After syncing, the latest changes that a creator commits and pushes to the branch are visible in that private workspace. Different content creators work on their own, separate branches as they make changes. | |
In the private workspaces, content creators can develop content by using web authoring, and validate their own changes. Changes to content made by web authoring can sync with the branch in the Git repository when the content creator commits and pushes these changes from the workspace. Different content creators work in their own, separate private workspaces. | |
When ready, content creators perform a pull request to merge their changes into the main branch of the solution. | |
After merging changes, the main branch syncs with the development workspace. | |
In the development workspace, content creators can develop content that isn't supported by Fabric Git integration, such as dashboards. Content creators also validate the integrated solution that contains all of the latest changes. | |
When ready, content creators deploy content to a test workspace. In the test workspace, users perform user acceptance testing of content. | |
When ready, content creators deploy content to a production workspace. In the production workspace, content creators distribute content by publishing a Power BI app or sharing content from the workspace. |
When you use separate environments, you should also consider how this will impact various supporting resources that you use in these environments. For these supporting resources, consider whether you also need to separate them into the same number of stages, or else how you'll coordinate their use across these environments.
Once you've decided how you'll set up and use workspaces, the next step is to decide how you'll perform version control to track and manage content changes.
In Power BI, you can perform version control either by using SharePoint/OneDrive, or by using a remote Git repository, such as Azure Repos, which is a component of Azure DevOps. In both approaches, you add local content files to a remote storage location to help track and manage changes. We recommend that you use SharePoint or OneDrive only for smaller and simpler projects, as it lacks the features and robustness to support larger or more complicated scenarios.
Here are some general considerations to help you set up and use version control.
The following sections describe each approach and key considerations to decide which one you should use.
SharePoint has built-in version control for files. Content creators can develop semantic models or reports locally, and their changes are synchronized to a SharePoint or OneDrive for Work and School document library.
Tip
Use SharePoint or OneDrive only for version control in simpler, smaller scenarios, like self-service content publishing. For larger or more complicated scenarios, you should consider performing source control by using a remote Git repository.
The following diagram depicts a high-level overview of how you perform version control by using SharePoint or OneDrive.
The diagram describes the following processes and components.
Item | Description |
---|---|
Content creators develop semantic models and reports in their local environment and save these models and reports as .pbix files. | |
When ready, content creators save their changes, which they sync to a remote SharePoint or OneDrive for Work and School library. | |
In the remote library, content creators track file-level changes which facilitates version control. | |
Content creators can link a published semantic model or report to a .pbix file to facilitate OneDrive refresh. OneDrive refresh automatically publishes content changes every hour. | |
In the Fabric workspace, content creators see the changes to Power BI content after OneDrive refresh completes. |
Important
You can only perform version control by using SharePoint or OneDrive for Power BI Desktop files that contain semantic models or reports. You can't easily perform version control by using SharePoint or OneDrive for other Power BI item types like dataflows, or for Fabric item types like notebooks. For these other item types, you should perform version control by using a remote Git repository, like Azure Repos.
To summarize, content creators can link a published semantic model or report to a .pbix file that's stored in a SharePoint or OneDrive for Work and School library. With this approach, content creators no longer have to publish the semantic model to see changes. Instead, the changes are visible after an automatic OneDrive refresh, which occurs hourly. While convenient, this approach comes with some considerations, and it can't be easily reversed.
While easy to set up and manage, version control with SharePoint or OneDrive has more limitations. For example, it's not possible to view changes within the content, and it's also not possible to compare versions. Additionally, it's not possible to set up more sophisticated processes to manage these changes (like branching or pull requests, described later in this article).
Consider using SharePoint or OneDrive to track and manage changes in the following scenarios:
Note
OneDrive and SharePoint support content that has sensitivity labels applied, except for some limited scenarios. In contrast, Fabric Git integration doesn't support sensitivity labels.
Avoid using SharePoint or OneDrive to track and manage changes in the following scenarios:
The following sections describe additional considerations to effectively use version control by using SharePoint or OneDrive with Power BI.
You might use the document libraries from Microsoft Teams if content creators use it for their collaboration. Document libraries are SharePoint sites, and using the document libraries (instead of a separate SharePoint site or OneDrive folder) ensures centralization of content, files, and collaboration.
You should check-out files that you're working on to avoid possible change conflicts. Once changes are complete, check-in the files with comments that describe the change. Checking-in and checking-out files helps you to improve collaboration between content creators when you use SharePoint or OneDrive for Work and School for version control. If you check-in and check-out files with multiple content creators, you can modify the SharePoint site library to view the last update and the comments of the last check-in.
Ensure that you back up content to a separate location in case of unexpected disruptions to your SharePoint site document library. You should also set limits to the number of versions kept in the SharePoint site and delete old versions. This ensures that version history remains meaningful and doesn't take up too much space.
For more sophisticated version control, you can store files in a remote repository like Azure Repos and manage changes by using source control.
A remote Git repository facilitates source control of files, which allows content creators more options to track and manage changes. In brief, content creators can develop content either locally or in the Power BI service, then commit and push those changes to a remote Git repository like Azure Repos
Note
You can also perform source control of your content without using Git integration. In this scenario, you still track and manage content changes in a remote Git repository, but you deploy content using either the REST APIs or XMLA read/write endpoints. For more information about these methods of deploying content, see Stage 4: Deploy content.
The following diagram depicts a high-level overview of how you perform source control by
The diagram describes the following processes and components.
Item | Description |
---|---|
Content creators develop semantic models and reports in their local environment and save these models and reports as .pbip files. Content creators can also develop semantic models and save model metadata. | |
When ready, content creators save their changes, which they commit and push to a remote Git repository at regular intervals. | |
In the remote Git repository, content creators track object-level changes, which facilitates version control. Content creators can also create branches to work on content, and merge their changes into a single branch by using pull requests. | |
Content creators can sync content from the remote repository by using Git integration. They can also deploy content by using other approaches, such as Azure Pipelines together with the REST APIs. | |
In the Fabric workspace, content creators see the changes to Power BI content after sync or deployment completes. Content creators can author content like dataflows or notebooks in the workspace. If they use Git integration, content creators link this workspace to a specific branch of the remote repository. | |
Content creators can commit and push changes from a workspace to the remote repository by using Git integration. These changes can import item definitions for supported content authored in the workspace, like dataflows and notebooks. |
In summary, content creators store .pbip files, metadata files, and documentation in a central Azure Repos remote repository. These files are curated by a technical owner. While a content creator develops a solution, a technical owner is responsible for managing the solution and reviewing the changes, and merging them into a single solution. Azure Repos provides more sophisticated options for tracking and managing changes compared to SharePoint and OneDrive. Maintaining a well-curated, documented repository is essential because it's the foundation of all content and collaboration.
Consider using source control to track and manage changes in the following scenarios:
Here are some pre-requisites and considerations to help you effectively use source control with Azure DevOps.
Tip
To facilitate source control with local development, we recommend using a client application like Visual Studio Code. You use Power BI Desktop to develop content, then you can use Visual Studio Code to perform source control management of that content, by staging, committing, and pushing changes to your remote repository.
Warning
Fabric Git integration has some limitations with the supported items and scenarios. Ensure that you first validate whether Fabric Git integration best suits your specific scenario, or whether you should take a different approach to implement source control.
Additionally, sensitivity labels aren't supported with Fabric Git integration, and exporting items with sensitivity labels might be disabled. If your content has sensitivity labels, you should plan how you can achieve version control while still honoring your data loss prevention policies.
A key benefit of using source control with Azure Repos is improved collaboration between content creators and more customization and oversight regarding content changes and deployment.
The following diagram depicts a high-level overview of how Azure DevOps enables collaboration with source control.
Note
The previous diagram depicts one example of how to collaborate by using Azure DevOps. Choose an approach that best fits the needs and the way of working of your team.
The diagram depicts the following user actions, processes, and features.
Item | Description |
---|---|
A content creator makes a new, short-lived branch by cloning the main branch, which contains the latest version of the content. The new branch is often referred to as the feature branch, as it's used to develop a specific feature or fix a specific issue. | |
The content creator commits their changes to a local repository during development. | |
The content creator links their changes to work items that are managed in Azure Boards. Works items describe specific developments, improvements, or bug fixes scoped to their branch. | |
The content creator regularly commits their changes. When ready, the content creator publishes their branch to the remote repository. | |
To test their changes, the content creator deploys their solution to an isolated workspace for their development (not shown in this diagram). The content creator can also sync the feature branch to the workspace by using Fabric Git integration. | |
Content creators and content owners document the solution and its processes in an Azure Wiki, which is available to the entire development team. | |
When ready, the content creator opens a pull request to merge the feature branch into the main branch. | |
A technical owner is responsible for reviewing the pull request and merging changes. When they approve the pull request, they merge the feature branch into the main branch. | |
A successful merge triggers deployment of the solution to a development workspace by using an Azure Pipeline (not shown in this diagram). When using Fabric Git integration, the main branch syncs to the development workspace. | |
The release manager performs a final review and approval of the solution. This release approval prevents the solution from being published before it's ready. In enterprise content publishing, a release manager typically plans and coordinates the content release to test and production workspaces. They coordinate and communicate with content creators, stakeholders, and users. | |
When the release manager approves the release, Azure Pipelines automatically prepare the solution for deployment. Alternatively, an Azure Pipeline can also trigger a deployment pipeline to promote content between workspaces. | |
Users test and validate content in the test workspace. When using Git integration with Azure Pipelines for deployment, the test workspace doesn't sync with any branch. | |
After users accept and validate changes, the release manager performs a final review and approval of the solution to deploy to the production workspace. | |
Users view content that's published to the production workspace. When using Git integration with Azure Pipelines for deployment, the production workspace doesn't sync with any branch. |
The following sections describe additional considerations to effectively use source control by using Azure DevOps and Power BI.
Important
Effective use of branching, commits, pull requests, and merges are essential to most benefit from source control when you manage the lifecycle of your Power BI content.
Content creators achieve collaboration by using a branching strategy. A branching strategy allows individual content creators to work in isolation in their local repository. When ready, they combine their changes as a single solution in the remote repository. Content creators should scope their work to branches by linking them to work items for specific developments, improvements, or bug fixes. Each content creator creates their own branch of the remote repository for their scope of work. Work done on their local solution is committed and pushed to a version of the branch in the remote repository with a descriptive commit message. A commit message describes the changes made in that commit.
When you use a branching strategy to manage Fabric content, consider the following factors.
Tip
See Adopt a Git branching strategy for specific guidance and recommendations about how to best use a branching strategy to effectively facilitate collaboration.
While developing content, creators should regularly stage changes into batches (or groups). These changes should address a specific work item for the solution (such as a feature or issue). When ready, content creators commit these staged changes.
Batching changes this way has several benefits.
When you stage and commit changes to Power BI content, consider the following factors.
Tip
See Save your work with commits for specific guidance and recommendations about how to stage and commit your work to a Git repository.
To merge the changes, a content creator opens a pull request. A pull request is a submission for peer review that can lead to the merge of the work done into a single solution. Merging can result in conflicts, which must be resolved before the branch can be merged. Pull request reviews are important to ensure creators adhere to organizational standards and practices for development, quality, and compliance.
When you use pull requests to merge changes to Power BI content, consider the following factors.
Tip
See About pull requests and Merge strategies and squash merge for specific guidance and recommendations about how to best use pull requests to facilitate collaboration by merging changes to content.
Checklist - When planning where you'll store files, key decisions and actions include:
In the next article in this series, learn how to validate content as part of managing the content lifecycle.
Events
Power BI DataViz World Championships
Feb 14, 4 PM - Mar 31, 4 PM
With 4 chances to enter, you could win a conference package and make it to the LIVE Grand Finale in Las Vegas
Learn moreTraining
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization