Today, we announced the general availability of Azure App Service on Linux and Web App for Containers. Providing Linux support in Azure App Service is an important step towards our commitment to support a variety of OSS stacks on the platform. We started on this journey with an intention to support OSS workloads running natively on Linux VM inside Azure App Service. During the journey, it became obvious that a substantial set of customers are interested in bringing their Docker formatted containers to the Azure App Service Platform. This provided us with a unique opportunity to address the scenario with Web App for Containers offerings.

Let’s look into these offerings to understand which one to use, and when.

Azure App Service on Linux (Web App with built-in images)

The built-in image option running on Linux is an extension of a current Azure App Service offering, catering to developers who want to use FTP or GIT, deploy .NET Core, Node, PHP or Ruby applications to Azure App Service running on Linux. This is a vanilla App Service scenario powered by Linux OS. Check out our Quick Start article to deploy .NET Core applications running on App Service on Linux. Below is an example of one of the many architecture patterns used by customers who use this offering.

The underlying architecture is based off of running Docker containers, but they are essentially abstracted away by platform in the form of built-in runtime images that Microsoft manages and maintains on the customer’s behalf. All of the built-in Docker images are open sourced on GitHub and available on DockerHub. We plan on extending the list by adding built-in images for other OSS frameworks like Java and Python in future releases.

Web App for Containers

Web App for Containers is catered more towards developers who want to have more control over, not just the code, but also the different packages, runtime framework, tooling etc. that are installed on their containers. This offering is essentially bringing years worth of Azure App Service PaaS innovations to the community, by allowing developers to just focus on composing their containers without worrying about managing and maintaining an underlying container orchestrator. Customers of this offering prefer to package their code and dependencies into containers using various CI/CD systems like Jenkins, Maven, Travis CI or Azure DevOps, alongside setting up continuous deployment web hooks with App Service.

Below is an example of one of the many architecture patterns used by customers of this offering.

Let's take a lap around Web App for Containers offering using Azure CLI

[ Note : Click on the GIF to open Full Screen]

Here is a quick demo of how to create Web App for Containers

Now, let’s see how easy it is to create a staging slot and setup CI/CD with DockerHub

Finally, set up scale anywhere from 1 to 10 instances

Be sure to check out our FAQs. To keep up with investments and improvements to the service, check out the release notes and submit your feature ideas in UserVoice, just make sure to add [Linux] at the beginning of the title.