Personal Power Platform Pipelines - Are they worth it?
Great addition for makers or a governance nightmare 🤷
A couple of weeks ago we started seeing people report a new environment in the Power Platform Admin Centre, of type "Platform". This environment is provisioned the first time someone tries to deploy a solution using a pipeline when it is not already associated with a Custom Host.
We now have 2 types of Pipelines and 2 types of "hosts", let's break these down a bit.
A personal pipeline exists only inside an environment of type Platform while, what we will call Full Pipelines only exist in Custom Host environments. Custom Host environments are environments where the Power Platform Pipelines application has been installed from the Power Platform Admin Centre.
What is personal pipeline?
A personal pipeline is a pipeline you can create directly from a solution, in the pipeline section. You can specify a target environment to deploy to and the pipeline experience is much like the full pipeline experience. You press deploy, it runs solution checker, checks for dependencies, lets you update environment variables and update/check connections in the target environment and exports both the managed and unmanaged solutions.
Let's take a look at the positives of a personal pipeline
Lower barrier for entry to get started with pipelines
If a platform environment doesn't exist, it is created in seconds
Exports managed and unmanaged solutions
Keeps solution run history
Takes up zero space in a tenant (there is a bug where it's incorrectly reporting it is taking up capacity, this will be fixed soon)
Now let's take a look at the negatives
Limited to only 2 environments, a development and a target
Cannot share pipelines
Hard to access pipeline environment for administration
Lack of visibility for admins for governance purposes
Users cannot access solution files
If a user deleted the pipelines, the solution files are not deleted, neither are the environments, so an admin has to go in and clean up the personal pipeline environment
Pipelines could be duplicated
Personal pipelines prevent full pipelines from being created
Personal pipelines cannot be extended to include approvals, exporting to external source control etc.
Can't redeploy older solutions
There are a couple more negatives than positives, but surely they are worth it? Well, a couple of the negatives are actually pretty bad when you think about them.
As you can only have 2 environments a development and a target, to do a full ALM lifecycle, where you, at a minimum want 3 environments, maybe more, this means you would be setting up multiple pipelines:
Dev-> UAT
Dev -> Test
Dev-> Pre-Prod
Dev->Prod
OK, so that's a few extra pipelines, what's the big deal? Well, after you do that first deployment to UAT, there is no mechanism to send that solution to Test, then to pre-prod, meaning if you make any sort of change to the solution in Dev, even unintentional, your testing is now wasted. You have to go back and UAT/Test again. This is extremely dangerous when moving solutions into production, as a change or any partially completed work, could have impacts on your production environment.
Furthermore, as you don't have access to the solution files, it means you can't take the file and import them manually. You can get access if you are a Power Platform Admin, there is a button for manage pipelines, that is only clickable for admins. But this means you need an admin to go in, download the solution and then you need to deploy manually...
I mean...what is the point???
Pipelines are a feature of Managed Environment, meaning environments, at least Production ones, need to be Managed Environments. However, pipelines aren't actually enforced as managed environment features. D'oh! I hoped they wouldn't be an issue for organisations who haven't fully adopted managed environments yet, but as they are not enforced, anyone can create a personal pipeline in any environment, managed or not. 😒 This does mean, enforcement, just like Power Automate Licensing enforcement, will probably come in time, but for now, no enforcement. But you still need to make sure you are compliant with licensing, ignorance is not an excuse.
How to access the personal pipeline environment
To get access to the Platform Environment to administer it, it's a little tricky. Essentially the easiest method is to go to an environment where you can create a personal pipeline, go into a solution file, go to the pipeline icon and and then go to manage pipeline
From here, we can use an old school Model-driven App trick of selecting a record and choosing "Share" (the right share not the wrong share 😅)
Then you can get a link to copy.
This will allow you to pull out the URL and give you access to the full Pipeline application. Bookmark it to make your life a lot easier.
Why use personal pipelines?
Personal pipelines are good for those smaller situations, where you may have a single developer and you are developing a non-critical app for a small team. Keeping the development team tighter, means less chance to make mistakes changing a solution in dev before deploying to production. It can really speed up those situations and promotes healthy ALM as one of the most common mistakes for Makers is forgetting to export the unmanaged solution and therefore, you cannot rebuild a development environments correctly.
And showing who did a deployment by looking at the solution run history is great. Also the Platform environment taking no storage is good for smaller organisations who don't have the space to spare or the money to provision an environment specifically as a deployment host. And those who don't have an entire team of people to create Azure Dev Ops, or the skills to use the Pac CLI fully.
But outside of those scenarios, I cannot recommend personal pipelines, especially in large organisation who care about governance, as these are nearly ungovernable. They also cannot be switched off 😲 but I've got a fix for that which I will post in another blog post. Full Pipelines in a Custom Host offer a better experience and better governance.
Also, you may see these pop up rather quickly, because, although this is a preview feature, if you go to export a solution file today, you will see a popup for this feature 😬 Preview features in Production is a big no no and Microsoft warn you not to use them...so I don't know why they are there 🤷♂️
There is some light at the end of the tunnel, this is just the initial release and with how well full pipelines have gone down, I'd expect there would multiple improvements in the near future.
I really want personal pipelines to be something really great for makers, healthy ALM is something we all need to work towards and this for smaller organisations will be really useful, once we get a few more features added in. For larger or enterprise organisations, a way to switch these off would be ideal.
Ciao for now!
MCJ
Comments