Figure 1: Global Distribution of App Service Scale Units
source: Microsoft
Azure App Service is a platform as a service (PaaS) solution designed to help developers build and deploy applications at scale with ease. It offers a range of features and tools that make it easy to develop and manage web applications without having to worry about the underlying infrastructure. In this post, I will explore some of the key features and benefits of Azure App Service, including its supported runtimes and languages, deployment options, scalability and resiliency options.
Runtimes and Languages
Azure App service supports a long list of runtimes & development languages. This is to accommodate developers with different needs. The list includes: Python, Ruby, PHP, .NET, and Java to name a few. In addition to this, the platform support a range of frameworks and libraries, these include: ASP.NET, Django, and Flask, amongst others.
Deployment Options
Azure is a platform that accommodates developers from different backgrounds, with different preference. This is also reflected when it comes to deployment options for the App service. Developers have the flexibility to deploy code from a wide range of supported source control systems: Azure Repos, GitHub, Bitbucket, local Git, and many more, see figure 2 for reference.
Figure 2: Azure App Service Deployment Center.
You can also enable Enable GitHub Actions to continuously deploy your app. GitHub Actions is an automation framework that can build, test, and deploy your app whenever a new commit is made in your repository. You can also choose to deploy natively via Azure DevOps. Additionally developers can use the Azure App Service plugin for Visual Studio, to deploy their code directly from their visual studio editor.
App Service offers deployment slots. A deployment slot is essentially a separate instance of your application running in the same App service plan, but with a different URL and environment. You can use these to run your QA & Production environment in the same plan. Deployment slots offers seamless transition from one environment to the other, at the push of the swap button. You can deploy your newly build and quality controlled environment to production without taking your production down. See figure 3 for how this looks like in the Azure portal:
Figure 3: App service deployment slots
Scalability and Resiliency options
Azure App Service has automatic scaling capabilities to allow for best user experience even in times of high traffic/demand. Autoscaling is the process of dynamically allocating resources to match performance requirements. There are two scaling options accommodated by Azure App service, and they are: vertical and horizontal scaling.
Vertical scaling means changing the capacity of a resource either from large instance to small, or vice versa.
Horizontal scaling, also called scaling out and in, means adding or removing instances of a resource.
Azure App service plan is a logical definition which allocates resources available for your web app instances. This influences your application performance and resilience. The App service has six (6) service tiers, namely:
Free - ideal for those trying the product
Shared - ideal for Dev/Test
Basic - ideal for dedicated environment at Dev/Test stage
Standard - ideal for Production
Premium - ideal for those seeking enhanced performance and scale
Isolated - ideal for those seeking high performance, security and Isolation.
The basic tier and higher App Service Plans have a 99.95% availability SLA. If you are running a critical environment, it is recommended you take further actions to making sure your application has higher availability. furthermore, note that there is no SLA provided for those using the Free or Shared App Service tiers.
As of 31 March 2025, Microsoft will no longer place Azure App Service web applications in disaster recovery mode, in the event of a disaster in an Azure region. It will now be the responsibility of architects and engineers to design for resiliency.
Networking fun facts about Azure App service
Azure App Service supports Network Injection. This feature integrates your App service with a virtual network of your choice, in the same region as the App service. This then gives your app access to:
Resources in the virtual network you're integrated with.
Resources across Azure ExpressRoute connections.
Service endpoint-secured services.
Private endpoint-enabled services.
To summarise, the Azure App service has eliminated cross functional worries developers had, allowing them to fully focus on development. Organizations can now rely on a lightweight enterprise grade solution for deploying their most critical workloads.
Comments