Microsoft Azure provides multiple ways to deploy your applications to the Azure cloud. Azure App Services and Cloud Services are the two most popular, and easiest, ways to deploy your applications. They both support web applications and background service type applications. In this article, we will provide a comparison of Azure App services versus Cloud Services, along with a quick overview of each.
Microsoft Azure App Services are a platform as a service (PaaS) offering. Azure runs App Services on a fully managed set of virtual machines in either a dedicated or shared mode, based on your App Service Plan. There are 4 types of App Services:
Pros
Cons
Azure WebJobs provide an easy way to run background processes. These can be configured to run on a schedule, on demand or continuously. For example, Stackify’s Azure monitoring agent runs continuously in the background for every Azure App Service instance that you have. There is no additional cost associated with running WebJobs. You may have to scale your App Service Plan up or out a little to handle the extra resources utilized by the WebJobs.
Pros
Cons
Cloud services were the very first Microsoft Azure Platform as a service (PaaS) offering. They provide the ability to deploy web apps (web roles) and background services (worker roles) onto Azure virtual machines. Azure handles all of the initialization of the servers, deployment to them, Windows Updates, etc.
Web Roles are used to host web applications. Worker Roles are used to host background services, similar to Windows Services.
Pros
Cons
The table below compares common App Services and Cloud Services features:
Azure Web Apps | Cloud Services | |
Supported Platforms | Support for ASP.NET, Node.js, Java, PHP, or Python | Support for Java, Node.js, PHP, Python, .NET and Ruby |
URL | <AppName>.AzureWebSites.Net | <CloudServiceName>.CloudApp.Net |
DevOps | Supports CI, CD using Visual Studio Team Services, GitHub or BitBucket. | Supports CI, CD using Visual Studio Team Services, GitHub or BitBucket. |
Support for Multi-Tier architecture | Yes | Yes |
Swap build between staging and production environment | Yes (free) | Yes (additional cost) |
Access to server desktop | No control | Some control |
Webserver maintenance | Not required, Azure does OS patching and other activities. | Not required, Azure does OS patching and other activities. |
Visual studio integration | Yes | Yes |
Access to other services like storage, service bus | Yes | Yes |
Configure Start-Up tasks | No (must use WebJob) | Yes |
Deployment time | Fast | Very Slow |
Multiple applications on same servers | Yes | No |
Scale up without redeploy | Yes | No |
Auto-scaling | Yes | Yes |
Both App Services and Cloud Services provide a lot of good features and are a simple way to deploy your applications to the Microsoft Azure cloud. They are definitely much easier than setting up your own virtual machines! The primary differentiating factor is Cloud Services offers access to the underlying Azure VMs, and App Services do not.
In my opinion, I prefer App Services for these specific reasons:
Stackify Retrace works perfectly for monitoring App Services and Cloud Services.
Special thanks to Sanjeev Assudani who helped contribute to this article.
If you would like to be a guest contributor to the Stackify blog please reach out to [email protected]