
close
close
Upcoming FREE Conference on Identity Management and Privileged Access Management
In this post, I will discuss App Services on Linux, what this service is, how it differs to the Windows Server offering, and what you can do with the Linux alternative.
In a previous post, I explained that Azure offers an alternative to the legacy way of deploying web applications on virtual machines. Instead, one can focus on the application by using Web Apps on Azure Application Services. Up until recently, this was a Windows Server-only offering. By that, I mean that the virtual machines, hidden away by Azure and completely managed by Microsoft, that made up your app service used Windows Server (today it is Windows Server 2016) as its guest OS and IIS as the web server. Every Web App that you deployed on an App Service plan (a deployment of Application Services) was an application pool on each load balanced instance.
However, not everyone wants to use Windows Server. Some people just prefer Linux and because of that, and a few other reasons that I’ll mention, Microsoft has offered a Linux option for customers that want to deploy Web Apps in Azure.
As I mentioned before, when you deploy an App Service plan for a Windows based Web App, you are getting one or more abstracted virtual machines that Microsoft will manage. The build and configuration of this virtual machine is completely managed by Microsoft.
If you choose to deploy a Linux-based App Service plan, then things change … quite a bit, actually. Instead of a virtual machine, your Linux-based App Service plan will be based on Docker containers. That’s the first big difference with the Linux option.
The second difference is that when you deploy your new App Service plan, via the wizard for creating a new web app, you can choose the Docker container image from the Microsoft-managed image repository.
Choosing the Container Image for a New Linux App Service Plan [Image Credit: Aidan Finn]
You Can Use SSH via Kudu to Get Console Access to Your Web App [Image Credit: Aidan Finn]
I searched Microsoft documentation for quite a while to discover what I would get in one of these containers, specifically the OS and the web server. I found that the web server was simply described as “Apache” in a Microsoft blog post. I couldn’t find the Linux version. It was like Microsoft didn’t want to talk about it. So I tried a series of distro-specific commands until I discovered that the container was based on Debian 8.8, codenamed “Jessie”.
I then tried to confirm that the web server was Apache but my extremely limited Linux skills got me nowhere; I tried a bunch of commands that I found online but none of them worked.
Note that an App Service plan that is based on Linux can only host websites. If you need WebJobs (and server-less Functions are not an option), API or Mobile apps, then you should deploy those services on a Windows-based App Service plan. Other things that are missing from the Linux option today include:
As you can see above, the Linux-based Web App for Containers is lacking a lot of functionality that is present in the Windows web app. Big things for me are the inability to:
If, however, you need the customization and DevOps constant evolution that the containers can offer, then Web App for Containers might just be for you.
More in Microsoft Azure
Microsoft's Azure OpenAI Service Gets New ChatGPT Integration in Preview
Mar 9, 2023 | Rabia Noureen
Microsoft's New Azure Operator Nexus Solution Now Available in Public Preview
Mar 2, 2023 | Rabia Noureen
Microsoft Introduces Fully-Managed Azure Load Testing Service for Developers
Feb 2, 2023 | Rabia Noureen
Azure Native New Relic Service Provides Full Stack Observability To Boost Digital Transformation
Jan 25, 2023 | Rabia Noureen
Most popular on petri