An Introduction to Azure App Service

Introduction

 
We can develop an application in any language or framework, such as .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python. Applications run and scale as per our need with complex architecture on both Windows and Linux-based environments. The App service has added the power of Azure to our application, such as security, load balancing, scaling, and automated management. We can also develop capabilities such as continuous deployment from GitHub, Docker Hub, Azure DevOps, and other sources, staging environments, SSL certificates, etc.
 
An Azure App Service is a managed serice of Azure that enables us to create web, mobile, logic and API apps very easily in Azure. We can run any number of these apps within a single Azure App service deployment. Our apps are automatically managed by Azure App Service and run in managed VMs isolated from other customers. We can also use built-in auto-scaling feature supported within Azure App Service that automatically increase and decrease the number of VMs based on consumption resources.
 
 
Following are additional on the different app types supported by Azure App service.
 

Web Apps

 
It enables us to deploy our web application without any worry about the infrastructure that is required. In the traditional way of deployment, we need to set up the Server with appropriate OS and IIS versions, and we also need to monitor if the server is up and running. The Azure Web App Service is removing all these burdens. This service includes the following features
  • Support for .NET, .NET Core, PHP, JAVA and Python code
  • Built-in support for auto-scaling based on load
  • Continuous integration and deployment support with Visual Studio Online, GitHub, and BitBucket
  • Support staged deployment
  • Support virtual networking and hybrid network
  • Provide functionality of WebJobs that used for long running background tasks

Mobile Apps

 
It enables us to create back-end for mobile applications. In modern mobile apps, apps might run on Android, iOS or UWP and in the background, the application will request the back-end for any kind of transaction. This is nearly the same as web services supporting a mobile client. This service provides almost all of the features provided by Web Apps. Additionally, it provides features like offline syncing and push notifications.
 

Logic Apps

 
It helps us to create functional workflows by orchestrating tasks and business processes. It simplifies how we can design and build scalable solutions for integration. It also allows us to manage large workflows. For example, Azure logic Apps can be used to send the email notification to admin with Office 365 when user upload invalid file to the application or monitor tweets for a specific subject or word in the statement. There are around 200+ connectors that used to build enterprise integration solution with Logic App, such as functions, Service bus, SQL, Office 365, BizTalk, Azure blob storage, FTP, Twitter, etc.
 
A Logic App workflow starts with a trigger that fires on a specific event or at any scheduled time. When trigger fires, the Logic Apps engine creates the instance of Logic Apps that runs the actions in the workflow. The workflow includes flow controls such as conditional statements, branches, and loops.
 

API Apps

 
It helps to deploy Web APIs. We can create and deploy APIs using ASP.net Web API or the equivalent in other languages. This API can be accessed internally (for example an API call from Logic Apps) as well as exposed to the outer world. It supports identity to secure the APIs. It comes with a built-in swagger implementation that helps us to test API.
 

Azure Functions

 
It is an event-driven component that enables us to host a piece of logical code and process it without any server. It is also known as server-less computing. We can use Azure function to execute a script or piece of code in response to a variety of events such as events occurring in any Azure service or third-party service. The Azure Function supports multiple languages such as C#, F#, PHP, Python, etc. We can also secure Azure function using OAuth or other identity providers such as Azure AD.
 
App Service Scaling
 
Azure App Service provides two types of scaling and based on our requirement, we can select any one: Vertical Scaling and Horizontal Scaling.
 
Vertical scaling
 
It means adding more power to your application or VM. In vertical scaling, we have a single instance and we have updated the configuration VM such as CPU, RAM, storage capacity, etc. based on our need. We can either scale-up or scale-down.
 
Horizontal scaling
 
In horizontal scaling, we add more machines (VMs) with the same configuration. Horizontal scaling requires more complicated structure such as load balancer, and we must ensure all resources are in sync. Using this scaling method, we can increase the availability of websites and also, we can create a failover region (setting up resource which hosted in a different region). We can either scale-up or scale-down based on the traffic on the web app.
 
 

Limitations of Azure App Service

 
There are three key limitations of Azure App Service,
  • Remote Desktop is not available
    The App Services is part of PaaS (Platform as a Service) model and we have very limited access to infrastructure. So, we cannot troubleshoot application problems by viewing log files or reviewing IIS settings and event logs.

  • Third party software management tools are not supported
    We cannot manage the server, so we cannot install any monitoring/management tool for third-party software.

  • Performance counter is not visible
    As we do not have access to the app server, we cannot see performance indexes such as IIS queues.

App Service pricing

 
Azure App service brings everything together that we require, create websites, web APIs, and mobile back-end for any platform or device. It provides a very cheap rate and enables us to select any plan as per requirement. The free and shared plans provide options to test our application within our budget. A dedicated Virtual Machine plan is also available. It contains three sub-categories: Basic, Standard, and Premium. The isolated plan hosts our application in a private and dedicated Azure environment. You can also check App Service pricing on Azure Portal,
 
 

Summary

 
Azure App Service is PaaS (Platform as a Service) offered by the Microsoft Azure that used to develop and deploy an application on Azure. It comes with many features such as auto-scaling, IDE integration, no server maintenance, etc. It also provides multiple deployment slots such as staging and production. We can switch to another slot within a couple of seconds.