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
Post a Comment