Azure Plugin

The Deploy Azure plugin enables Deploy to work with the Microsoft Azure cloud computing service. You can provision Virtual Machines, Containers, and Deploy FunctionApp and WebApp from Deploy.

For information about requirements and the configuration items (CIs) that the Azure plugin provides, refer to the Azure Plugin Reference.

Important: From version 10.2.0 Azure plugin is compatible with Digital.ai Deploy 10.2.0 or higher version.

Features of the Deploy Azure Plugin

  • Create resource groups and storage accounts
  • Define security groups and associated security rules
  • Setup public IP addresses
  • Define virtual networks (VNet) and their route tables
  • Provision virtual machines associated to their network interface (NIC) and deploy applications to those virtual machines
  • Support Windows Virtual Machines (VMs)
  • Automatically destroy machines during undeployment
  • Leverage the Blob Storage scalable object storage for unstructured data
  • Create web apps with built-in auto-scale and load balancing
  • Create function apps based on an event-driven, serverless compute experience
  • Run containers (ACI) without managing virtual machines
  • Safeguard cryptographic keys and other secrets using Key Vault
  • Configure load balancer (Layer 4 TCP and UDP) to deliver high availability and network performance to your applications
  • Deploy network configurations such as virtual networks (VNets), subnets, routing tables, network interfaces, and public IP addresses
  • Deploy load balancing configurations such as load balancers and availability sets
  • Deploy storage configurations such as storage accounts and blob containers
  • Deploy content to blob containers
  • Deploy security configurations such as security groups and associate security roles with them
  • Configure app service plans and deploy web apps and web jobs
  • Deploy functions to Azure Functions
  • Deploy container groups and containers to Azure Container Instance
  • Create artifact feeds and upload packages to the created feeds

This is a diagram representing all the resource types Deploy Azure plugin supports and their dependencies:

Azure types diagram

Before you Get Started

Before you begin using the Azure plugin you must have:

Make sure your Azure account is correctly configured, with the following elements:

  • Subscription ID
  • Service principal
  • Tenant ID
  • Client ID
  • Client secret value

Minimum Required Versions

You must have these versions of the specified tools to work properly.

Digital.ai Deploy: Version 9.0.0 and later.

Information Required

  • Subscription ID
  • Client ID
  • Client secret
  • Tenant ID
  • Resource group to create
  • An Azure region to create the resource group (e.g. westus)
  • Name of the Azure app. This will also be used as the name of the Release and Deploy CIs.
  • Username and password for the admin account.

Set up an Azure Cloud Connection

To set up a connection to Azure Cloud:

  1. In the side navigation bar, click Explorer.
  2. Hover over Infrastructure, click Explorer action menu, and select New > Azure > Cloud.

Azure Cloud CI

Azure Cloud CI

  1. Enter the subscription id (which you will found in Azure portal under subscriptions) in the Subscription ID field.
  2. Enter the user name in the User Name field.
  3. Enter the user password in the User Password field.
  4. Click Save or Save and close.

Verify the Azure Cloud Connectivity

To verify the connection with the azure.Cloud, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Expand the Infrastructure, hover over the newly created infrastructure and click Explorer action menu, and select Check Connection.

Azure check connection

Execute the task. If the task succeeds, the connectivity is working fine and we are able to use Azure through XL Deploy.

Azure connection status

Important: This topic describes using a CI tool plugin to interact with Deploy. However, as a preferred alternative starting with version 9.0, you can utilize a wrapper script to bootstrap XL CLI commands on your Unix or Windows-based Continuous Integration (CI) servers without having to install the XL CLI executable itself. The script is stored with your project YAML files and you can execute XL CLI commands from within your CI tool scripts. For details, see the following topics:

Cloud Service Spec

To create a cloud service spec, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Hover over Applications, click Context menu, then select New > Application. A new tab displays.
  3. Enter the name in the Name field.
  4. Click Save and close.
  5. Click Context menu on the newly created then select New > Provisioning Package
  6. Enter the name in the Name field.
  7. Click Save and close.

Before creating Cloud Service create the following:

Set up a Virtual Network

To set up a virtual network, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > VirtualNetworkSpec. A new tab displays.
    Create Virtual Network
  4. Specify the required properties under the VirtualNetworkSpec.
    Virtual Network Settings
  5. Click Save and close.

Set up a Storage account

To set up a storage account, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > StorageAccountSpec. A new tab displays.
    Create Storage account
  4. Specify the required properties under the StorageAccountSpec.
    Create Storage account
  5. Click Save and close.

Create a blob container inside the storage account

To create a blob container, do the following steps:

  1. On the newly created package, click Context menu then select New > azure > blob > ContainerSpec. A new tab displays.
    Create Blob Container
  2. Specify the required properties under the StorageAccountSpec.
    Create Blob Container
  3. Verify the newly created storage account and the blob container on the [azure portal]((https://portal.azure.com/#home).
  4. Upload the required files (.cspkg, .csdef, and, .cscfg) in the newly created container by clicking Upload button from the Azure portal. Upload Files to Blob
    Note: To generate the package (.cspkg) file, Refer Create an Azure cloud service project and after making required changes in ServiceDefinition.csdef and ServiceConfig.cscfg files, run the application and then package it. See Package of Azure Cloud Service model for more information.
  5. Click on .cspkg file and then click on Generate SAS.
  6. Select HTTPS and HTTP in Allowed protocal.
  7. Copy the Blob SAS URL and paste it in the required fields of cloudservicespec. Blob SAS url

Create a Public IP address

To create a public IP address, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > PublicIpAdressSpec. A new tab displays.
    Create Public IP address
  4. Specify the required properties under the StorageAccountSpec.
    Create Public IP address

Create Cloud Service Spec

To create cloud service spec, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > CloudServiceSpec. A new tab displays.
    Create Cloud Service Spec
  4. Specify the required properties including virtual network, storage account, and public ip address under the CloudServiceSpec.
    Create Cloud Service Spec

Deploy the Cloud Service Spec

Deploy the CloudServiceSpec file from the Applications. After successful deployment of CloudServiceSpec on Digital.ai Deploy, verify the same on [Azure portal]((https://portal.azure.com/#home).

Deploy the Cloud Service Spec-1

Deploy the Cloud Service Spec-2

Azure Blueprints

The Azure blueprints allow you to define deployments and releases in YAML templates, simplifying the process of provisioning resources with the Azure plugin. Azure Resource Manager (ARM) templates can also be used to easily define the Azure resource deployments. For more information, see Deploy to Azure with using the ARM template blueprint

The available Azure blueprints are:

For more information on the blueprints, see Deploy/Release Blueprints. This tutorial will help you to for deploy resources to Azure using ARM templates: Deploy to Azure with using the ARM template blueprint.

Azure WebApp

The Deploy Azure WebApp provides a host service to create and deploy web apps. To create Webapp on your Azure environment, you can configure the Azure WebApp Tags.

You can also configure the following using Deploy:

Azure WebApp Tags

This section describes how to configure Azure WebApp tags using Deploy.

Prerequisites

Before you create Azure WebApp tags, you must have the following:

  • Azure Cloud Infrastructure configured with a valid resource group
  • Environment CI that points to the Azure resource group configured
  • Webapptag and app service plan packages created or imported into the Deploy server
  • Webapp configured with the required apps service plan in your resource group

Step 1 – Create the asp service app on Azure portal

Configure the asp service plan on your Azure environment.

Configure ASP Service Plan

After the deployment is successful, the serviceapp is displayed in the Azure portal.

Step 2 – Create the webapptag on Azure portal

Configure the webapptag 1.0.0 package on your Azure environment.

Create WebApp Tag

After the deployment is successful, the webapp tags are displayed in the Azure portal.

Step 3 – Update the webapptag Deployment

Update the webatpptag deployment to version 2.0.0.

Update WebApp Tag

After the update is successful, the new tags are displayed in the Azure portal.

To undeploy the webapp tag, do the following:

  1. From Environments, click azure > webapptag 2.0.0 and perform a rollback to the earlier deployment version. After the rollback is successful, the original tags from webapptag 1.0.0 are displayed in the Azure portal.
  2. Right-click webapptag 2.0.0 and click Undeploy to remove webapp from Azure portal.

Azure WebApp Slots

This section describes how to configure Azure WebApp slots using Deploy.

Step 1 – Perform the deployment of web app slot on Azure portal

Deploy the webappslot app on your Azure environment.

Deploy Webappslot

After the deployment is successful, verify the new deployment slot in the Azure portal.

Azure WebApp Logging

This section describes how to configure Azure logging using Deploy.

Step 1 – Ensure the serviceapp and webapptag are deployed successfully

See Azure WebApp Tags steps 1 and 2.

Step 2 – Perform the deployment of webapplogging on Azure portal

Configure the webapplogging 1.0.0 package on your Azure environment.

Deploy Webapplogging

After the deployment is successful, the App Service Logs settings are updated in the Azure portal.

Step 3 – Update the webapplogging Deployment

Update the webapplogging deployment to version 2.0.0.

Update WebApp Logging

After the update is successful, the App Service Logs settings are updated in the Azure portal.

Azure WebApp Extensions

This section describes how to configure WebApp Extensions using Deploy.

Step 1 – Ensure the serviceapp and webapptag are deployed successfully

See Azure WebApp Tags steps 1 and 2.

Step 2 – Perform the deployment of webappextension on Azure portal

Configure the webappextension 1.0.0 package on your Azure environment.

Deploy webappextension

After the deployment is successful, the .NET Raygun APM extension for the web app is displayed in the Azure portal.

Step 3 – Update the webappextension Deployment

Update the webappextension deployment to version 2.0.0.

Update WebApp Logging

After the update is successful, the extensions for the web app are removed from the Azure portal.