Azure App Service And KUDU - The Deployment Framework

In one of my recent article on Azure App Service: Deployment Types And FTP Credential Types, we discussed two ways of deploying the Application Content. However, there is another way of deploying the application code to Azure App Service. It’s by Source Control. Yes, you can deploy the code sitting in your Source Control repository directly into Azure App Service. (Anyways, I will write a separate article on how to deploy the code from Source Control to Azure App Service soon)

Azure supports us to deploy the code from the following sources.

setting

So, when you set one of these as the source of the code, you might be thinking that there should be some component in each of these products which is responsible for deploying the code into the Azure App Service. No, that's not how it is. The component is within the App Service that is responsible for pulling the code from the above sources and deploying the same into the App Service. Yes, this component's name is KUDU – The Deployment Framework (triggered by Git) that takes care of deploying the code to Azure App Service. The same is depicted in the below image.

diagram

Note

VSTS supports two type of repositories.

  1. TFVC
  2. Git

KUDU doesn’t deploy TFVC code. It just supports the second option, Git.

VSTS takes care of building and deploying the TFVC code. And, all other options (including VSTS – GIT) supported as “Deployment Source” in the above image are built and deployed within Azure App Service using KUDU behind the scenes.

When you can create an Azure App Service, Kudu’s website and related tools also get created within the Azure App Service’s Context. So, it means, KUDU is a Friend of our App Service which has access to all the resources that are in the App Service’s Context.

Please note that for each App Service that you create, a separate instance of KUDU’s website is also created for you.

environment

How do I access the KUDU website? – There are two ways to access the KUDU website.

  1. Navigate to the KUDU website for the required App Service (by adding “.scm.” in the URL). For example, when you create an App Service with the URL, you can access the KUDU’s website if, when are already logged in with your Azure Account, you can directly view the KUDU’s website (using SSO).

  2. Navigate to (just appended /basicauth to the KUDU’s URL). It will prompt you to provide the credentials if you are not logged in yet. You need to provide your FTP Deployment Credentials. For more information about these credentials, please have a look at Azure App Service: Deployment Types And FTP Credential Types. You can go for this option if you don’t want to share the Azure Subscription details to one of your developers and you would then analyze the KUDUs website.

What are KUDU features – Most of the time, we might think that we would not be able to access anything related to Azure App Service Environment. However, it’s not completely true. We can access a few of the environment things related to a given App Service. Below are few of the KUDUs features.

  1. File System

    You can have a look at the File System provisioned to our App Service by Azure in two ways in the same page. Click on the Debug Console -> CMD link on the menu to view the following ways of viewing the File System provisioned by the Azure for our App Service.

    file

  2. Processes

    You can look at all the Processes running within the App Service environment by clicking on the “Process Explorer” link on the Menu.

    Processes

  3. You can also view Environment variables, Modules, Threads by clicking on the “Properties” button of the above image.

    Properties

    It also provides us some tools as shown below.

    tools
    You can have a look at each of these tools and most of them are self-explanatory.