Thursday, 28 April 2016

Microsoft Azure: Differentiating IaaS, PaaS and Cloud Services

I recently realised that there can be some confusion over how an Azure "Cloud Service" can be interpreted in the as-a-service world we now live in.

When you create a VM in the Azure classic deployment model, they are added to a cloud service. A cloud service “acts as a container and provides a unique public DNS name, a public IP address, and a set of endpoints to access the virtual machine over the Internet”.
A VM in this sense can be considered IaaS, the VM being a server in Azure that you have complete control over. The VM just happens to sit in a container called a “cloud service”.

However, you can also create a “Cloud Service” in Azure which results in something different to the above. An Azure Cloud Service consists of 2 components, config files and application files which together result in Web or Worker roles being spun up to execute an application. These roles are effectively VMs, a Web Role is an Azure VM pre-configured to run IIS and worker roles carry out other processing tasks. A Cloud Service in this sense is PaaS, as Azure is managing the VMs for you and you only have limited control over them.