Azure App Services vs Azure Cloud Services

Microsoft Azure provides a lot of options to deploy your applications to Cloud. In this article we will discuss about two of the hosting options provided by Azure:
  • Azure App Services
  • Azure Cloud Services
Both of the options supports web applications and background service type applications. We will discuss about both of the options and then sum up with comparison between two.
Azure App Services (or just Web Apps)
Azure app service is a PAAS offering from Microsoft to host your web applications in fully managed set of VM's in a dedicated or Shared mode. There are 4 types of App services:-
  • Web App - used for hosting websites and web applications (previously Azure Websites)
  • API App - used  for hosting REST APIs
  • Logic App – used to build automated scalable workflows that integrate apps and data across cloud services and on-premises systems.
  • Mobile Backends - used for hosting mobile app back ends (previously delivered by Azure Mobile services)
Azure Cloud Services
Cloud services were the very first Microsoft Azure PAAS offering that provided the ability to deploy web applications (using web roles) and background tasks (using worker roles) on azure VM’s. Similar to Azure App services Microsoft with handle all the server updates, patching etc. With Azure cloud services you get an additional benefit of having control over the VMs. You can install your own software on VMs that use Azure Cloud Services, and you can access them remotely. There are two types of Azure Cloud Services roles. The only difference between the two is how your role is hosted on the VMs:
  • Web role: Automatically deploys and hosts your app through IIS.
  • Worker role: Does not use IIS, and runs your app standalone as a background process.



Now that we have a knowledge of both service offerings lets see the differences between the two:-





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
Conclusion

Both App Services and Cloud Services offerings from Azure provides 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.
Although it depends on the requirement when to use what. If you want to have access to the server and wants to configure some server tasks then Azure Cloud services is an option. But if you do not bother about underlying hardware then Azure App Service is a the right choice for you. 
Hope this helped in understanding the two.

Comments

Popular posts from this blog

Read all lists/views/fields using pnpjs in spfx webpart

Deploy artifacts with spfx webparts