Deploying with a Script
Start course

The Azure cloud is a collection of resources that work in unison to deliver a product or a service. Hardware is virtual and services can be created and destroyed at the stroke of a key. In the context of DevOps, resources can be "spun up" as part of a pipeline. It is crucial that when resources are deployed multiple times, those deployments are consistent, repeatable, and can be automated. Doing it manually through the Azure portal isn’t practical. Azure Resource Manager (ARM) has an interface for processing resource templates that specify resource deployments.

In this course, we look at how those templates can be built and deployed. We start with a simple template and move on to more complex examples to illustrate many of the useful features available when deploying resources with templates. This course contains plenty of demonstrations from the Azure platform so you can see exactly how to use Azure Resource Manager in practice.

If you have any feedback on this course, please reach out to us at

Learning Objectives

  • Understand what Azure Resource Manager (ARM) is and its use cases
  • Learn about the different ARM templates available and how they can be used
  • Deploy databases using an ARM template
  • Export a template and create templates using QuickStart templates
  • Deploy resources using a script

Intended Audience

This is a beginner-level course aimed at anyone who wants to learn more about managing and configuring their Azure environment, and fast-tracking their deployments.


To get the most out of this course, you should have a basic understanding of the Azure platform.


GitHub Repo



As I said at the beginning of this course in the architecture section, Azure Resource Manager accepts commands from PowerShell and the Azure CLI. In a way, templates are a little bit like the portal in terms of providing an alternative interface. Everything that you can do with a template you can do with a script. Here is an example of what a script might look like for creating a resource group in an Azure SQL server with firewall rules and a database. In some ways, this does seem more concise and easy to understand what exactly is going on here, but in one crucial respect, templates have an advantage over scripts when it comes to deployment mode.

Azure Resource Manager has two deployment modes; the default, which is incremental, means that whatever is in your deployment is added to your resource group, whereas complete says the resource group will become whatever is in your deployment. This essentially means that the resource group is cleaned out before the deployment is applied or all resources that are not in your deployment are removed from the resource group.

About the Author
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard.