Azure Web App
Cloud is the current "buzz" word of the town. Cloud computing means delivering the computing services like servers, database, software, network, analytics over cloud. This had drastically removed the dependency of organization maintaining their own infra. For many new startups, they do not have to pay a upfront cost of setting up their infra before they launch their application, and they currently use cloud, where you pay as you go. The initial investment required to launch a product has reduced with cloud.
There are different different cloud vendors in the market now, and in this article we will look into one of the PaaS (Platform as a service) offerings by Microsoft Azure - Azure Web App.
What is Azure Web App ?
Azure Web App, one of the fully managed platform as a service offering from Azure. This service helps us in developing and deploying mission critical web applications, mobile app or API services like rest or soap. Apart from developing and deploying, it also provide other powerful features such as CI/CD, Scaling, load balancing, monitoring, high availability and security.
Azure Web App - Architecture
When you say cloud, the first thing that comes to our mind is endless scaling. Cloud comprises of N number of servers that is allotted to the consumers based on the consumers computing requirement.
Azure Web App is a cluster of servers which we call it as Scale Unit. There can be many scale units in azure data centers globally, to understand better lets take a look at the following diagram.
You can have your app run in a single scale unit or in multiple scale unit across azure region for high availability. However, from the individual scale unit point of view, your app is constrained to a single scale unit.
Now that we know what scale unit, lets microscope if further. As we know scale unit is collection of servers, each server that host the customer application is called web workers or workers. The majority of the server in a given scale unit are workers. Scale unit can also have additional support servers required to achieve the functionality of azure web app.
With App Service, you can choose how you want to run your application. You can select running your application on shared or dedicated workers. You do so by selecting an App Service Plan. An App Service Plan defines a set of capabilities, features and server allocations, following are the offering by app service plan
Recommended by LinkedIn
An App Service scale unit has several pools of Workers pre-provisioned and ready to host your applications, as illustrated in image, Section 1. When you define your dedicated App Service Plan to a size of two servers, App Service allocates two servers, as illustrated in image, Section 2. Next, when you scale out your App Service Plan—for example, adding two more Workers—available Workers are allocated from a pool of ready-to-go Workers, as illustrated in image, Section 3. Because Workers are already pre-provisioned and warm, all that needs to happen is for your application to get deployed on the Worker. Once the app is deployed, the Worker is inserted into the rotation and the front end can allocate traffic to it. This whole process usually takes a few seconds. Section 4 shows multiple App Service Plans, identified as multi-colored rectangles, each representing an App Service Plan that can belong to multiple customers.
High-level Architecture
As we now seen how the internal architecture of Azure web apps works, now lets take a look at the high level architecture for an application.
Hope this makes sense on how the workers are getting mapped behind.
When to choose Azure Web App ?
The following decision tree from Microsoft will help you decide when to choose azure web/app service.
You notice that the decision tree only have Azure App Service. The core ability of azure web app and azure app service are same, but there are few difference. This link here will explain the difference.
Conclusion
Azure Web App is a great tool by Microsoft, which had reduced the dependency of hosting and scaling, and it had made development easier. This article only gives a crust of what azure web app is and how it works internally, but there are other interesting features of azure web app that I have not talked about. Hope this article gave you some understanding to begin with, feel free to comment if any feedback !!!