Forum Discussion
Best Practices for continuous deployments
- 10 months ago
Thanks GeraldGEmerick ,
Following your recommendation I ended up with this flow:
Sandbox Workspace ==> GitHub ==> Dev Workspace ==> QA Workspace ==> Prod Workspace ==> AppSandbox Workspace: Will serve for any development that we're not sure will make it to production and will serve as a beta testing because I will create an app and publish it only to users enrolled in beta testing and it will contain only the elements we wan't to test. Once tests are done and we want to publish teh results, we will use the git Integration to export the artefacts to Github, in the same repo the Dev Workspace is connected to.
Github: We will be able to export anything done in the Sandbox Workspace to github and then import it in the Dev Workspace when we're ready to roll it out to QA & Prod.
Dev Workspace: Used to support and create artefacts that are to be deployed in QA & Prod. Artefacts are updated using Git Integration, with the exception of Dataflows, which will be developped and maintained here, then exported to Github through Git integration for Gen2 and JSON files for Gen1.
QA Workspace: Used to test deployments before going to production. We will do functional testing there to make sure we have not missed anything during deployment.
Prod Workspace: Closed and protected environment. Nothing maintained here except through deployment pipelines
App: General access to artefacts for end users.
Let me know what you think.
- Workspaces separation → Dev → QA → Prod.
- Deployment Pipelines → promote content with rules & rollback support.
- Git branching → feature branches for new pages, hotfix branches for urgent fixes, main = Prod.
- Beta testing → QA app for test users or use App audiences to show new pages only to pilots.
- Version control → use Tabular Editor / pbi-tools, not just PBIX files.
- No direct Prod publish → always deploy via pipeline/Git for rollback.