Friday, August 11, 2017

Docker Containers at Scale with Azure Web App on Linux

The Azure team recently announced a new feature that is currently in preview called Azure Web App on Linux. This feature enables you to host web apps natively on Linux. The service enables you to choose an initial size and number of instances for your hosts, then manually scale up and out or add automatic rules to respond to load.


It comes out of the box with support for several application stacks including Node.js, PHP, .NET Core, and Ruby.

Pssst. Lean a little closer. I have a little secret for you: it’s all based on Docker containers.

That’s right! What that means is even if your platform and language of choice aren’t listed in the “supported stacks,” you can publish anything you can containerize. To prove it, I’ve made a short five minute video. I demonstrate taking my little go app that is available as a public Docker Hub image and deploying it to Azure, then scaling it out. Check it out:

If you’re thinking, “Not another orchestrator” … think again. The goal is not to compete with mature orchestrators like Kubernetes. Instead, the web app provides a ton of features that make your life easier and streamline the DevOps experience, such as:

  • Kudu, the deployment engine that will manage deployments for you from sources ranging from GitHub and Visual Studio Team Services to local git repositories
  • Shared storage to aggregate log files
  • SSH access to your containers
  • Auto-scaling

You can even set up separate instances in different regions around the globe and load balance them using Azure’s Traffic Manager. There are many more features to review that you can learn more about by reading the Azure Web App on Linux documentation. If you have questions, comments, feedback, or corrections, don’t forget that the documentation is open source and accepting pull requests!