Can you deploy Platform as a Service (PaaS) components to Azure using Visual Studio Release Management? I get this question quite often lately.
Short answer: yes you can. And how? Via a virtual machine. Yes – this is Infrastructure as a Service (IaaS) and not PaaS. Yes – this is not what you expected. Me neither. But it’s the only supported way right now. I hope this will change in future versions and that we get a “Azure PowerShell” like we have in Build.VNext. But right now this is the way to go.
If you watch BREAKPOINT: Release Management and PaaS Deployments the title and the first minutes make you think you can directly deploy PaaS components. But it only refers to How to use VSO and RMO to deploy an Azure Website from Donovan Brown. He does the same thing that I did in my demo on the alm days 2015. He uses a deployment machine to execute the scripts.
The good thing is, that this scales quite well if you host you machine in azure and connect it with Visual Studio Release Management. If you only a have few projects and do not deploy very often you can start and shutdown the machine during you deployment. So you don’t have to pay a machine that runs all the time. If you have a lot of projects and release very frequent you can have one machine deploy a lot of projects to a lot of stages. You don’t have to host a machine for every project because the RM Server only pushes the PowerShell scripts to the machine and executes them.
EDIT: I was a too quick on this. I just tried it and you can’t use the same machine for all deployments. You need at least one machine for every stage because you can’t reuse environments in different stages. So the minimum is one machine per stage.
So I hope Microsoft will add the capability as a hosted service in future versions, Until then we have to stick with deployments machines (IaaS) if we want to use Release Management to release PaaS components.