Comparison of App Service, Cloud Services, Virtual Machines, and Service Fabric

As part of my learning, I keep looking out for info presented through tables & comparison charts as they summarize lengthy topics & are useful to review what I learn. I post them with the tag ComparisonChart to revisit occasionally.

The following table compares the capabilities of App Service, Cloud Services, Virtual Machines, and Service Fabric (follow the link for any updated info):

Feature App Service (web apps) Cloud Services (web roles) Virtual Machines Service Fabric Notes
Near-instant deployment X X Deploying an application or an application update to a Cloud Service, or creating a VM, takes several minutes at least; deploying an application to a web app takes seconds.
Scale up to larger machines without redeploy X X
Scale out to multiple instances without redeploy X X X X Virtual Machines can scale out to multiple instances, but the services running on them must be written to handle this scale-out. You have to configure a load balancer to route requests across the machines, and create an Availability Group to prevent simultaneous restarts of all instances due to maintenance or hardware failures.
Web server instances share content and configuration, which means you don't have to redeploy or reconfigure as you scale. X X
Multiple deployment environments (production and staging) X X X Service Fabric allows you to have multiple environments for your apps or to deploy different versions of your app side-by-side.
Automatic OS update management X X Automatic OS updates are planned for a future Service Fabric release.
Seamless platform switching (easily move between 32 bit and 64 bit) X X
Deploy code with GIT, FTP X X
Deploy code with Web Deploy X X Cloud Services supports the use of Web Deploy to deploy updates to individual role instances. However, you can't use it for initial deployment of a role, and if you use Web Deploy for an update you have to deploy separately to each instance of a role. Multiple instances are required in order to qualify for the Cloud Service SLA for production environments.
WebMatrix support X X
Access to services like Service Bus, Storage, SQL Database X X X X
Host web or web services tier of a multi-tier architecture X X X X
Host middle tier of a multi-tier architecture X X X X App Service web apps can easily host a REST API middle tier, and the WebJobs feature can host background processing jobs. You can run WebJobs in a dedicated website to achieve independent scalability for the tier. The preview API apps feature provides even more features for hosting REST services.
Integrated MySQL-as-a-service support X X X Cloud Services can integrate MySQL-as-a-service through ClearDB's offerings, but not as part of the Azure Portal workflow.
Support for ASP.NET, classic ASP, Node.js, PHP, Python X X X X Service Fabric supports the creation of a web front-end using ASP.NET 5 or you can deploy any type of application (Node.js, Java, etc) as a guest executable.
Support for SSL X X X X For App Service web apps, SSL for custom domain names is only supported for Basic and Standard mode. For information about using SSL with web apps, see Configuring an SSL certificate for an Azure Website.
Visual Studio integration X X X X
Remote Debugging X X X
Deploy code with TFS X X X X
Network isolation with Azure Virtual Network X X X X See also Azure Websites Virtual Network Integration
Support for Azure Traffic Manager X X X X
Integrated Endpoint Monitoring X X X
Remote desktop access to servers X X X
Install any custom MSI X X X Service Fabric allows you to host any executable file as a guest executable or you can install any app on the VMs.
Ability to define/execute start-up tasks X X X
Can listen to ETW events X X X

* Cloud Services do not exist in the Azure Resource Manager
-

Comments