Microsoft Azure provides advanced tooling that help you define and deploy Infrastructure as Code (IaC) and move towards cloud automation. This can be extremely useful for use cases like automating DevOps processes, cloud workload management, and hybrid cloud deployment.
You can use Azure Resource Manager (ARM) templates to provide a declarative definition of the cloud resources you need, and Azure will set the resources up automatically, reliably and consistently. Azure also provides “blueprints” that help you package ARM templates with policies and RBAC definitions—everything you need to setup cloud resources end-to-end.
In this post, we’ll review Azure’s cloud automation components, explain how ARM templates and blueprints work, and show how NetApp Cloud Volumes ONTAP can help automate storage on the Azure cloud.
Also check out our article on Infrastructure as Code on AWS to see the parallel options offered in the Amazon cloud.
In this article, you will learn:
Infrastructure as Code is a modern approach for automating the provisioning and deployment of IT resources. The idea is to use simple configuration files to define what IT resources you want to set up, and have those resources created automatically based on that configuration. You can then check that configuration file into a version control repo, test it, manage versions, and start treating your infrastructure like you would ordinary source code.
On Microsoft Azure, there is one primary building block that enables Infrastructure as Code - Azure Resource Manager (ARM). ARM lets you author templates in JSON format, specifying Azure services you want to run, and makes it possible to easily deploy those services according to the template.
"servicePrincipalClientSecret": {
"reference": {
"keyVault": {
"id": "<specify Resource ID of the Key Vault you are using>"
},
"secretName": "<specify name of the secret in the Key Vault to get the service principal password from>"
}
}
What’s interesting about ARM is that it is not just an automation engine. ARM is the Azure’s central resource manager. Any actions you perform on the Azure cloud, whether via the Azure portal, PowerShell, the Azure CLI or the REST API, are handled via the same Resource Manager.
This means that when you create ARM templates and deploy them, Azure guarantees a consistent result. You can create an AKS cluster automatically using the ARM template we showed above, manually through the Azure portal or CLI, or programmatically through the REST API, and the result will be exactly the same.
Automating infrastructure with Azure Resource Manager templates lets you:
This is where Azure blueprints come in. An Azure blueprint packs all three elements you need to fully automate your infrastructure: ARM templates, policy definitions and RBAC roles.
Azure blueprints are especially important if you need to deploy the same ARM templates across several Azure subscriptions, because each subscription will have separate policies and RBAC definitions. Blueprints avoid the need to separately define policies and RBAC in each Azure subscription.
Blueprints provide several useful features:
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP supports up to a capacity of 368TB, and supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, cloud automation, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP provides Cloud Manager, a UI and APIs for management, automation and orchestration, supporting hybrid & multi-cloud architectures, and letting you represent any storage operation as code.
Azure Resource Manager (ARM) is a service to help you deploy and manage resources in Azure. As your Azure deployment grows more mature, tools like ARM can help you improve your management efficiency and free you to gain more from your resources.
Azure Resource Manager (ARM) is the native platform for infrastructure as code (IaC) in Azure. It enables you to centralize the management, deployment, and security of Azure resources. ARM groups resources into containers that group Azure assets together. Learn what is Azure Resource Manager (ARM) and what are the benefits of using ARM, including best practices you can implement when adopting ARM templates.
Read: Azure Resource Manager (ARM) Benefits and Best Practices
Azure Resource Manager templates enable teams to standardize the management of Infrastructure as Code (IaC). ARM template documents are written in JSON, using declarative syntax to define how infrastructure resources should be configured, deployed, and managed. Learn what Azure Resource Manager templates are, and how to create your first ARM template. Including 4 tips to improve your ARM templates.
Read: Azure Resource Manager Templates: A Guide to Efficient Automation in Azure
Terraform by HashiCorp is an open-source Infrastructure as Code tool (IaC). You can use Terraform to build, change, and version cloud and on-premise infrastructure. Learn about the benefits of Terraform on Azure, and how to use Terraform to automate Azure infrastructure, with practical code examples.
Read: Terraform on Azure: Platform-Agnostic Automation in the Cloud
Ansible enables you to automate cloud resource management. You can use Ansible to provision, manage, and deploy resources across multiple cloud vendors. Learn how you can leverage Ansible for Azure cloud resource management automation. Including a quick tutorial to help you get started with Ansible for Azure.
Read: Ansible & Azure: Automating the Basic Building Blocks of the Azure Cloud
Microsoft Azure provides hundreds of Quickstart Templates for getting started with automating your cloud storage infrastructure. The cloud storage templates are in-depth and provide almost all of the configuration you need to set up your environment quickly and efficiently. This walkthrough gives a quick introduction on how to use these Quickstart templates.
Read: Azure Quickstart Templates: How to Use Them to Make Cloud Storage Easier
MySQL has fast emerged as one of the most popular choices for relational databases in Azure. This has been fueled mostly by an increase in open-source workloads. Azure Database for MySQL delivers this database as a managed service where the underlying infrastructure is managed by the Azure platform. Learn how Azure Database for MySQL deployment from the Azure CLI can help you treat your database as infrastructure as code.
Read: How to Automate Azure MySQL Deployment Using Azure CLI
There are different options available to deploy SQL services in Azure, and SQL PowerShell is a helpful tool to use to automate the deployment of Azure SQL. In this blog you’ll get a step-by-step walkthrough of how to deploy Azure SQL services using PowerShell commands.
Read: Azure SQL & PowerShell: How to Automate SQL Deployment Using PowerShell
Together with our content partners, we have authored in-depth guides on several other topics that can also be useful as you explore the world of DevOps.
Authored by Swimm
Authored by Faddom
Authored by Configu