Tag: Docker


Ignite 2017 Preview: Coming Azure Changes

Microsoft Ignite 2017 is less than a week away. Microsoft has already been busy making changes to Microsoft Azure ahead of time. While it’s unclear what all the announcements for Azure will be at Ignite 2017, it’s clear there are certain “smaller” changes / updates that will be announced / discussed. This article highlights a few Microsoft Azure service updates and Preview features that are publicly available today; that we will likely learn much more about at Ignite next week.

Web Apps for Windows or Linux

The Azure Web Apps for Linux service has been Generally Available (GA) for some time now. Initially it has a different provisioning wizard within the Azure Portal from the “Web Apps on Windows”. However, recently Microsoft updated the Azure Portal to include UI to choose either Windows or Linux when provisioning an Azure Web App. This helps to better streamline the UI/UX.

Web Apps for Containers

There a “new” Web Apps service within Azure App Service. The new Web Apps for Containers enables you to spin up a Web App on Linux using any Docker container. It allows you to specify the Image source for the container to pull from an Azure Container Registry service, Docker Hub, or any Private Registry.

The Web Apps for Containers is not a Preview feature. It’s actually a new Azure Portal UI wizard around the Azure Web Apps for Linux service that’s been Generally Available (GA) for some time now. The Web Apps for Linux make you pick a “built-in” Docker container template, then after provisioning you can setup your own Image source. The Web Apps for Containers enable you to specify your custom Docker container image source from the time of provisioning the service through the Azure Portal.

Azure Web Apps Analytics (Preview)

Azure Web Apps Analytics is a new Preview feature of OMS and Log Analytics. The “learn more” and “documentation” links displayed in the Azure Portal for it just link to the Log Analytics information for now. I presume we’ll see more specific documentation coming soon.

As the Azure Portal informations states, “The Azure Web Apps Analytics Solution provides insights into your Web Apps by collecting different metrics across all your Azure Web App resources.

It goes on to list the following bullet points as to what it will enable you to see for your Web Apps:

  • Top Web Apps with highest response time
  • Number of requests including successful and failed requests across your Web Apps
  • Top Web Apps with highest ingoing/outgoing traffic
  • Top Service Plans with high CPU/memory utilization

It’s a little unclear what the full difference it between what Application Insights offers and Azure Web Apps Analytics. However, we should see more documentation / information soon.

Azure Table Storage is Now Part of Azure Cosmos DB

Azure Table Storage is no longer a service of Azure Storage, but is now part of Cosmos DB. Here’s a short quote from the documentation on this:

“Standard Azure Table Storage is now part of Cosmos DB. Also available is Premium Tables for Azure Table storage, offering throughput-optimized tables, global distribution, and automatic secondary indexes.”

We all knew from the Build 2017 announcements that Azure Table Storage was going to be somehow migrated to or included in Azure Cosmos DB somehow. Microsoft just said they would announce further details on this later. Well, it appears that Ignite 2017 is when Microsoft will announce the full specifics of the Azure Table Storage to Cosmos DB migration / transition. However, we can see plenty of information within the Azure Documentation already that states much of the detail on how this will be done.

It seems that the “old” Azure Table Storage will be known as “Standard Table Storage” and the newer Cosmos DB Table API will be known as “Azure Cosmos DB Premium Table”. Here’s a screenshot from the documentation that lists out differences between these two Table Storage offerings / price points:

How did you find this information?

While I am a Microsoft MVP, that did NOT help me learn any of this information. I learned it through normal use and observation of Microsoft Azure through the Azure Portal and Documentation published by Microsoft. You can reference the screenshots and documentation link in the above information for the sources to these “Previews of what’s coming to Azure”.

Microsoft has a habit of publishing and releasing services and documentation in Microsoft Azure ahead of the release. If you are familiar with things and work with it a lot, then you’ll likely notice these changes too. Most times they are subtle, but other times they aren’t so much. For example, when Microsoft announced the renaming of DocumentDB to Cosmos DB and the associated service changes, they actually published everything in the Azure Portal a few hours in advance of the announcement. This is how I was able to blog about Cosmos DB before the announcement.

If you find any additional new features, service previews, and documentation I haven’t listed here, please post a comment to share it with us. It’s always fun to look at the new, shiny stuff as it’s published / released.


Free eBook: Containerized Docker Application Lifecycle with Microsoft Platform and Tools

ebook_msdockerapplifecycleThe “Containerized Docker Application Lifecycle with Microsoft Platform and Tools” free eBook from Microsoft Press, written by Cesar de la Torre, may be the guide you’ve been looking for. If you’re new to Docker, it’s recommended to start reading this book from the beginning as it covers the fundamental Docker terms, including containers, images, registry, clusters, orchestrators, and Docker itself. However, if you’re already familiar with Docker, and just want to know what tools Microsoft has to offer, you can skip on to the “Introduction to the Microsoft platform and tools for Containerized Applications” and continue from there. Read More


Deploy Docker Containers to Azure Web Apps on Linux

The PaaS (Platform as a Service) offerings within Microsoft Azure have been getting expanded out pretty impressively lately. The “extreme PaaS” that is the serverless computing of Azure Functions is a really interesting direction for cloud computing. However, one of the of the latest changes is the ability to host Docker Containers on Linux within Azure App Service Web Apps! It seems Microsoft is starting to add Docker support to everything.

App Service Web Apps on Linux

A few weeks ago the initial preview release of Azure App Service Web Apps for Linux was released. This offers a way to host OSS applications (Node.js, Python, PHP, etc) in Azure App Service with the use of a Linux Virtual Machine (VM). This provides a great alternative to hosting all Azure Web Apps with a Windows Server VM and IIS. While IIS works, the option of using Linux is definitely more appealing to Linux and non-Microsoft developers looking to use the Microsoft Azure cloud.

To provision a new Azure App Service Web App on Linux, you can follow these steps:

  1. Within the Azure Portal, search the Marketplace for Web App on Linux.
  2. Enter the App nameResource Group, and select an App Service Plan to create the Web App on Linux.
  3. Next a specific Container needs to be selected in order to configure the specific Language / Platform that will be used to deploy a Web App to the Web App on Linux App Service instance.
  4. Once provisioned the new Web App on Linux will be deployed out to an Ubuntu Linux VM with the specified platform container deployed and ready to go.

As you can see from the above screenshot of the available Built-in containers to choose from there are a number of Language/Platform versions to choose from. The list of language/platform versions supported by the current Preview release of Azure Web Apps on Linux are:

  • .NET Core v1.0
  • Node.js 6.6.0
  • Node.js 6.2.2
  • Node.js 4.5.0
  • Node.js 4.4.7
  • PHP 5.6.23
  • PHP 7.0.8

There’s also another thing that can be seen within the above screenshot…

Azure Web Apps + Docker

webapplinux-dockercontainerThe platform features of Azure App Service Web Apps on Linux support the deployment and configuration of the hosting environment through the use of Docker Containers. This is a huge departure and powerful feature addition to Azure Web Apps on Linux that differs from how the original Azure Web Apps hosted with Windows Server and IIS is implemented.

The use of Docker Containers to configure and host Web Apps on Linux opens up a huge amount of possibilities that help push Azure Web Apps to a more powerful service than before. The Built-In Containers that can be chosen to host Node.js, PHP, or .NET Core applications are built out as Docker Containers.

With the support for Docker Containers bring along the ability to deploy any Docker container image from Docker Hub (http://hub.docker.com) as the basis for hosting an Azure Web App on Linux. Not just Node.js, PHP, or .NET Core images can be deployed. It actually supports the deployment of any Docker Container Image from Docker Hub. It also supports both Public and Private images in Docker Hub.


In addition to supporting any Docker Container Image from Docker Hub, Web Apps on Linux also supports deploying container images from any Private registry as well. To deploy an image form a private registry, you simply provide a couple additional properties: Server URL, Login username, and Password.


The Docker Container Images used to deploy out the language / platform to host an app can be used to simply host a Web App as normally with Azure Web Apps. However, the Docker Container Image can also contain the entire application to host within Azure Web Apps on Linux; including the language / platform and the full custom application as well.

Deploy “Hello World” Container to Web App on Linux

As an example of a Docker Container Image that can be deployed to Azure App Service Web App on Linux that contains the language / platform as well as a sample, “hello world” style application, the following Docker Images can be used:

This is just a sample of a couple Docker images that can easily be used, and any Docker Image can be deployed out to an Azure Web App on Linux.

Here’s what the dimkk/ng2-admin Docker Image from Docker Hub looks like once it’s deployed out and hosted within a Web App on Linux instance:


To deploy out a Docker Image from the Docker Hub, you can use the following steps when provisioning a new Web App on Linux, or when modifying an existing Web App on Linux:

  1. For the Image source property, select Docker Hub.
  2. Specify Public or Private accordingly for the Repository Access field.
  3. Enter the Docker Image Name into the Image and optional tag field.

To use the ng2-admin image you can specify the Docker Image of dimkk/ng2-admin”.


In this example, once the Web App on Linux initializes the deployment of the Docker Container image “ng2-admin” or another that implements a full application, the app will be running.

There is also the Startup Command field when configuring a Docker Container Image for a Web App on Linux to specify a specific startup command to execute once the Docker Container is deployed.