Stabilize Your Team's App Development Process With ALM
If you're using Power Apps at your organization with a large team, odds are bugs or bad changes to apps have gotten through cracks and into a production environment from time to time. That's is exactly why Microsoft developed an Application Lifecycle Management tool for Power Apps - so you can stabilize your development process and protect your codebase.
Intro
If you’ve entered the world of Power Platform development or maybe you’re considering it, you should know that there are now options to include some of the process that we are used to with other kinds of development. Microsoft recently introduced the Application Lifecycle Management Accelerator for Power Platform. It’s still in preview, but I wanted to give it a go and see how it works to add things like source code management, builds and deployment to projects.
In this post I’m simply going to walk through the components and get a feel for what it looks like to create, build and deploy a simple canvas app. I did find setting up and configuring the accelerator to be fairly straight forward. I’ll share some links that I found helpful at the end of this post.
What do we get?
So, let’s look at what we get with the Application Lifecycle Management (ALM) Accelerator.
The ALM Accelerator Apps
The first and most notable component are the Power Apps that are deployed. There is an Administration application as well as the Accelerator application itself.
These applications are deployed as part of the Center of Excellence – ALM Accelerator solution. It should be noted that in setting this up, you’ll need to create a separate dedicated Power Platform environment where this solution is deployed. I called mine Scabooch ALM.
If you’re using this for your team, you should plan on giving your dev team access to these apps as they will use them to manage the lifecycle of their power platform solutions.
Let’s walk through the main application that your team will use, which is the ALM Accelerator for Power Platform. This application is the place where “Makers” can come to Commit and Deploy their updates to the solution.
When in the app there are a few key things to take note of. First, in the upper right-hand corner, the developer has the option to select the target environment where they’ve done their work. They can select their development environment or any other environment where they’re working on a project.
Once selected, the items that appear in the list are any solutions that exist for the selected environments. Yes, that means you must have your application created as part of a solution in order to use the ALM Accelerator for Power Platform to manage or deploy it.
Next, notice the `Import Solution` option at the top. Clicking this will open a prompt that allows the developer to join the work stream for a given solution in Power Platform. This is being used to identify the project and repo from Azure DevOps and will import the solution from a selected branch of source control into the developer’s environment.
Next we have a `Commit Solution` button.
This does exactly what you would expect. This is where the developer will commit any changes they’ve made in their environment to source control.
The `Prepare` option will allow an opportunity to also specify any changes to the target deployment environment like connections or environment variables. Once you commit, it actually creates a pull request which can be reviewed, approved and completed according to your process.
Lastly, let’s look at the `Deploy Solution` button.
This button is used when you’re ready to deploy your changes for validation. This will create deployment pipelines for each of the environments specified in the solution profile you’re using.
It will deploy the solution to the validation environment and create a pull request which can then be approved and completed.
For those of us who have a traditional developer background this is actually pretty cool that we have the ability to join the work, do work, merge work, and deploy.
Is Team Communication Holding You Back?
Find Out in Just 2 Minutes.
Take our quick scorecard to uncover communication gaps and hidden barriers within your team.
The DevOps Components
Next let’s take a look at what’s created in DevOps. To get this all set up, the next thing you’ll need to have is your DevOps project. I created a sandbox project for putting this content together. I recommend doing something similar, rather than connecting it to an active project and repo immediately. It was helpful to see how it all worked before putting it to use. Once you have the accelerator set up and connected, you should see an additional repo added to your project for the build pipelines.
The first set of pipelines that you’ll see are for:
- Importing a solution
- Deleting a solution
- Export solution to Source Control
The second set of pipelines are for deploying to various environments. By default it’s geared for validation, test, and production environments.
A couple important things to note if you have not put it together yet. First, the ALM Accelerator created all of these pipelines for me. They’re sourced out of a Git repo for the Power Platform - Center of Excellence. Sourcing them from there, means we can easily keep our build pipelines up to date with the latest. The second thing, is these pipelines are the things that were running in the background that enabled the ALM Accelerator application to:
- Publish outstanding changes in our dev environment
- Check the solution in our dev environment
- Export the solution from our dev environment
- Unpack the solution and get the files into source control
- Get files from source control
- Pack the files into the solution
- Deploy the solution to a target environment
Quick Talk on Environments
Speaking of environments, let’s be a little more specific about what environments you’ll need to have for the ALM Accelerator to work. As I mentioned before, you should expect to have an environment created just for the ALM Accelerator. Depending on your tenant and your organization’s strategy, you may have just the ALM Accelerator or you may have the Center of Excellence in its entirety. Never the less, this is one environment.
Next, as part of this setup you will create an environment for validation, test, and production. That’s three more separate environments. I would point out that down the road, you may have many more of these environments. You may have one for each power platform project or solution, or you may have a single set where all of your solutions are validated, tested and deployed. It all depends on the strategy you’ve adopted for creating and deploying things in the Power Platform.
Finally, the other environments you should have in mind when working the the ALM Accelerator, are all of your developer environments. Indeed, it is one of the goals of this tool to allow your developers to collaborate on solutions. To that end, Microsoft recommends a strategy where each developer or “maker” has their own development environment where they can work independently.
Conclusion
Microsoft has been speaking pretty proudly about the Power Platform being a game changer for building business apps. One of the biggest reasons for push back was the difficulty of having a team of developers work together on a given application. Another big challenge has been figuring out how to manage and deploy apps for the enterprise. It is early, but the ALM Accelerator is definitely a great place to start. As with most tools like this one, it will take some effort to get it working for your organization. You’ll definitely want to understand Power Platform environments and how these should be used in your organization. That said, it’s really nice that this tool can be set up pretty quickly and works. In my experience, being able to work with a tool is the best way to learn how to apply it for myself.
I heard but I forgot. I saw and I remembered. I did it and now I understand.
Now for all those links I found helpful...
- Introducing the ALM Accelerator for Power Platform | Microsoft Power Apps
- Application lifecycle management (ALM) with Microsoft Power Platform - Power Platform | Microsoft Docs
- CoE ALM Accelerator for Power Platform before you start - Power Platform | Microsoft Docs
- Set up ALM Accelerator for Power Platform - Power Platform | Microsoft Docs
- Set up the ALM accelerator for Microsoft Power Platform components - Power Platform | Microsoft Docs
- Set up ALM accelerator for Microsoft Power Platform components manually - Power Platform | Microsoft Docs
- Center of Excellence (CoE) Command Line Interface (CLI) installation - Power Platform | Microsoft Docs
- CoE CLI ALM accelerator for Microsoft Power Platform - Power Platform | Microsoft Docs
- Manage app registration and API permission for Microsoft Graph notifications - Microsoft Graph | Microsoft Docs
- Microsoft Power Platform CLI - Power Apps | Microsoft Docs
- coe-starter-kit/install.md at main · microsoft/coe-starter-kit · GitHub