How Do I Choose Azure App Service?
Before Choosing any services it is very important to make a comparison among the services provided by different service providers. This what I do, Before I chose Azure App Service I compare the Azure App services and Cloud Services.
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 our applications. They both support web applications and background service type applications. In this article, I will provide a comparison of Azure App services versus Cloud Services, along with a quick overview of each.
Microsoft Azure App Services is 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:
- Web App – used for hosting websites and web applications (previously Azure Websites)
- API App – used for hosting the RESTful APIs
- Logic App – used for business process automation, system integration and sharing data across clouds
- Mobile App – used for hosting mobile app backends (previously delivered by Azure Mobile services)
- -- Very easy to deploy to deploys much faster than Cloud Services
- -- Deployment slots are free
- -- Built-in A/B testing features
- -- Can combine multiple applications together to save money
- -- Extendable with Site Extensions
- - No server access
- -- Cannot use all monitoring tools because you can’t install an agent
- -- Limited Windows performance counters
- -- Limited VM sizes and specs to pick from
App Services WebJobs
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.
- -- Easy to deploy
- -- No cost beyond App Service Plan costs
- -- Easy way to set up scheduled tasks
- -- Apps must work in a limited permission sandboxed environment
Cloud Services: Web & Worker Roles
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 hosting web applications. Worker Roles are used to hosting background services, similar to Windows Services.
- -- Can pick from several VM sizes
- -- Full server administrator access
- -- Can install a wide array of software on the server itself
- -- Full access to Windows performance counters and ETW
- -- Very slow to deploy to
- -- Staging slots cost money to use
- -- Can’t easily combine multiple apps together
- -- Can’t change the VM instance size without redeploying
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:
- -- Combine multiple applications together to save money
- -- Free deployment slots
- -- Faster deployments