Before hosting your first web application in Windows Azure, the first decision that you have to make is to which hosting service type to deploy your application on. In this article I have summarized the details that helps you to choose the hosting service type for your application on cloud.
The different options that Azure offers for hosting your applications or services are:
- App Services
- Cloud Services
- Virtual Machines
- Service Fabric (new)
You can think of App Services like a managed hosting platform. Most of your web applications can be hosted using this service and azure takes care of the management of resources and load balancing. Deployment and management are integrated to the platform and your application’s scaling is automatically taken care by Azure. In other words, it is the fully managed hosting platform that you have where you focus on your application code, and Azure App Service manage the infrastructure to scale and run your apps and services. So it is a fully managed PaaS (Platform as a Service) and cheaper hosting option for that reason. Technologies supported are ASP.NET, PHP, Node.js and Python.
Similar to App Services, Cloud Services also provide managed platform (Platform as a Service, PaaS), but here we have more control over the VMs. The platform allows you to install your own software and remote to the VMs. Cloud Services provides two different types of VM options – (1) Windows Server with IIS, where applications are automatically deployed in IIS. This is called ‘Web Role’ (2) Windows Server without IIS, called ‘Worker Role’.
When I mention about VMs here, it doesn’t mean that you have the control to create the VMs. Instead, you can configure the VM instances and the Azure platform creates and manages it accordingly. This provides you greater control over the number of VMs required when your application scales up or down. With cloud service, you get different deployment stages to upload your application – a) A Staging are for uploading and testing b) A production area for deploying your application to production.
Virtual Machines provide you complete control over the web server where you want to host your application. In other words, you create your customized virtual machines on the cloud (Windows Server, Linux etc ) to deploy your application. Azure Virtual Machines provide IaaS (Infrastructure as a Service). Virtual Machines are created as .vhd files where you have to manage entire host VM resources including the OS updates. Azure provides backup copies and disaster recovery of the VMs in case of failure.
Azure Service Fabric
This is relatively new sevice rolled out under Windows Azure platform in April 2015. This new Platform as a Service (PaaS) technology is based on microservices that allows you to build highly scalable and available cloud applications. This is in line with the evolution of the Hyper-V containers in Windows Server. Read whats new in next version of Windows Server.
In Fabric Service platform, you build and manage scalable applications built on microservices running at very high density on a shared pool of machines (Service Fabric Clusters). The micro services model lets you to selectively scale different parts of the application based on requirement. Another advantage is that updates and deployment of “parts” of your application can be more agile without impacting the overall application or service. There is much more to talk about Service Fabric; which we will go over in another article.