Skip main navigation

New offer! Get 30% off one whole year of Unlimited learning. Subscribe for just £249.99 £174.99. New subscribers only. T&Cs apply

Find out more

Design an automated app deployment solution

In this step, we will learn how repeatedly deploy your solutions to the cloud using an automated app.

In the previous step, we learned about designing a catching solution. In this article, you will learn how to design an automated app deployment solution.

With the move to the cloud, many teams have adopted agile development methods. These teams must iterate quickly and repeatedly deploy their solutions to the cloud. Teams must be assured their infrastructure is in a reliable state. Application code must be managed through a unified process.

To meet these challenges, you can automate deployments and use the practice of infrastructure as code. In this unit, you’ll learn how to evaluate different Azure solutions for deployment and automation for your applications. These solutions include Azure Resource Manager templates, and Azure Automation.

What are Azure Resource Manager templates?

Azure Resource Manager templates are files that define the infrastructure and configuration for your deployment. When you write a template, you take a declarative approach to your resource provisioning. These templates describe each resource in the deployment, but they don’t describe how to deploy the resources.

There are many benefits to using templates for your resource provisioning. These benefits are described in the following table:

Table 1: Benefits of using templates for your resource provisioning.

Function Template benefit
Repeatable results Templates are idempotent. Idempotent means you can repeatedly deploy the same template and get the same result.
Orchestration When a template deployment is submitted to Azure Resource Manager, the resources in the template are deployed in parallel. This process allows deployments to finish faster.
Preview The WhatIf parameter, available in PowerShell and Azure CLI, allows you to preview changes to your environment before template deployment. This parameter will detail any creations, modification, and deletions that will be made by your template.
Testing and Validation Templates submitted to Resource Manager are validated before the deployment process. This validation alerts you to any errors in your template before resource provisioning.
Modularity You can break up your templates into smaller components and link them together at deployment.
CI/CD integration Your templates can be integrated into multiple CI/CD tools, like Azure DevOps and GitHub Actions.
Extensibility With deployment scripts, you can run Bash or PowerShell scripts from within your templates. Through extensibility, you can use a single template to deploy a complete solution.
Note!
Two types of templates are available for use today: JSON templates and Bicep templates. JavaScript Object Notation (JSON) is an open-standard file format that multiple languages can use. Bicep is a new domain-specific language that was recently developed for authoring templates by using an easier syntax. You can use either template format for your templates and resource deployments.

What are Bicep templates?

Bicep is an Azure Resource Manager template language that’s used to declaratively deploy Azure resources. Bicep is a domain-specific language, which means that it’s designed for a specific scenario or domain. Bicep is used to create Azure Resource Manager templates.

A graphic that depicts the process of authoring using a Bicep template via JSON template to Azure.

There are many reasons to choose Bicep as the main tool set for your infrastructure as code deployments. These benefits are described in the following table.

Table 2: Benefits of using Bicep as the main tool set for your infrastructure as code deployments.

Feature Description
Azure-native Bicep is native to the Azure ecosystem. When new Azure resources are released or updated, Bicep will support those features on day one.
Azure integration Templates, both JSON and Bicep, are fully integrated within the Azure platform. With Resource Manager-based deployments, you can monitor the progress of your deployment in the Azure portal.
Azure support Bicep is a fully supported product with Microsoft Support.
No state or state files to manage All state is stored in Azure. Users can collaborate and have confidence their updates are handled as expected.
Easy transition from JSON If you’re already using JSON templates as your declarative template language, it isn’t difficult to transition to Bicep. You can use the Bicep CLI to decompile any template into a Bicep template.

What is Azure Automation?

Azure Automation delivers a cloud-based automation and configuration service that supports consistent management across your Azure and non-Azure environments. Automation gives you complete control of process automation, configuration management, and update management.

Table 3: Automation process.

Process Description
Process Automation Enables you to automate frequent, time-consuming, and error-prone cloud management tasks. This service helps you focus on work that adds business value. By reducing errors and boosting efficiency, it also helps to lower your operational costs. The service allows you to author runbooks graphically, in PowerShell, or using Python.
Configuration Management Enables access to two features: Change Tracking and Inventory and Azure Automation State Configuration. The service supports change tracking across services, daemons, software, registry, and files in your environment to help you diagnose unwanted changes and raise alerts.
Update management Includes the Update Management feature for Windows and Linux systems across hybrid environments. The feature allows you to create scheduled deployments that orchestrate the installation of updates within a defined maintenance window.

Design an application configuration management solution

Traditionally, shipping a new application feature requires a complete redeployment of the application itself. Testing or deployment of a feature often requires multiple versions of the application. Each deployment may require different configurations, credentials, changing settings or parameters for testing.

Configuration management is a modern software-development practice that decouples configuration from code deployment and enables quick changes to feature availability on demand. Decoupling configuration as a service enables systems to dynamically administer the deployment lifecycle.

In this unit, you’ll learn about Azure Configuration Management solutions that can help you address deployment issues.

What is Azure App Configuration?

Azure App Configuration provides a service to centrally manage application settings and feature flags. Use App Configuration to store all the settings for your application and secure their accesses in one place.

The following two diagrams show how Azure App Configuration works in Development and Productions environments:

Development

Production

What are the benefits of App Configuration?

App Configuration offers the following benefits:

  • A fully managed service that can be set up in minutes.
  • Flexible key representations and mappings.
  • Tagging with labels.
  • Point-in-time replay of settings.
  • Dedicated UI for feature flag management.
  • Comparison of two sets of configurations on custom-defined dimensions.
  • Enhanced security through Azure-managed identities.
  • Encryption of sensitive information at rest and in transit.
  • Native integration with popular frameworks.

You are almost at the end of this activity. When you are ready click on Mark as complete and then Next to continue on to the Knowledge quiz.

This article is from the free online

Designing Infrastructure Solutions with Microsoft Azure Architecture

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now