SlideShare a Scribd company logo
Infrastructure as Code:
Azure Resource Manager – inside out
FROM CODE
{
"type": "Microsoft.Web/...
"name": “myStorageAccount",
"apiVersion": "2016-01-01",
"location": “westeurope",
"kind": "Storage",
"sku": {
"name": "Standard_LRS"
}
}
Henry Been
TO RESOURCES
@henry_been
WONDERING WHO
IS THAT GUY?
HENRY BEEN
Independent Devops & Azure Architect
Microsoft MVP & MCT
henry@azurespecialist.nl
@henry_been
linkedin.com/in/henrybeen
henrybeen.nl
Order now with a 20% discount!
Order at https://packtpub.com
Use promotion code: 20DevOps
(valid for 7 days)
NO CLICKY CLICKY!
The case for
Infrastructure as
Code
@henry_been
FROM CODE
{
"type": "Microsoft.Web/...
"name": “myStorageAccount",
"apiVersion": "2016-01-01",
"location": “westeurope",
"kind": "Storage",
"sku": {
"name": "Standard_LRS"
}
}
TO RESOURCES
Human readable & reviewable. Allows for reviews, change management, 4-eyes, sign-offs
No more configuration drift Fast environment creation Repeatability
All this makes that it neatly integrates with continuous deployment practices
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Application hosts
Future application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Application hosts
Future application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Application hosts
Future application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Application hosts
Future application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Future application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
Application hosts
@henry_been
FROM PETS TO CATTLE
IMMUTABLE INFRASTRUCTURE
@henry_been
Create infrastructure Deploy code Test Expose
Looks a lot like (a part of) a deployment pipeline:
Azure Control Plane:
The Azure Resource
Manager
@henry_been
Everything is a resource
App Services
Virtual Machines
IP Addresses
Dashboards
Alert Rules
Data plane:
- Read / write data
- Send / receive messages
- Interact with individual services
Control plane:
- Create / delete services
- Scale services up & down
- Interact with ARM
@henry_been
Resource Groupings
@henry_been
Azure Subscription
Resource Group
Resource Resource
Resource Group
Resource Resource
Azure Subscription
Resource Group
Resource
Management Group*
Resource Providers
@henry_been
Azure Resource Manager
Resource Provider Resource ProviderResource Provider
Resource Resource Resource Resource Resource Resource
TemplatesPortal CLI PS SDK HTTPS
Addressing a resource
@henry_been
https://management.azure.com
/subscriptions/{subscriptionId}
/resourceGroups/{resourceGroupName}
/providers/{providerName}
/{resourceType}/{resourceName}
?api-version={apiVersion}
Addressing a resource
@henry_been
https://management.azure.com
/subscriptions/{subscriptionId}
/resourceGroups/{resourceGroupName}
/providers/{providerName}
/{resourceType}/{resourceName}
/{subResourceType}/{subResourceName}
?api-version={apiVersion}
PUT https://management.azure.com/subscriptions/guid/resourceGroups/example
/providers/Microsoft.ServiceBus/namespaces/mySpace?api-version=2017-04-01
@henry_been
{
"sku": {
"name": "Standard",
"tier": "Standard"
},
"location": “West Europe",
"tags": {
…
}
}
@henry_been
{
"sku": {
"name": "Standard",
"tier": "Standard"
},
"id": "/subscriptions/guid/resourceGroups/example/providers/Microsoft.ServiceBus/....
"name": “mySpace",
"type": "Microsoft.ServiceBus/Namespaces",
"location": “West Europe",
"tags": { ..},
"properties": {
"provisioningState": "Created",
"metricId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4:mySpace",
"createdAt": "2019-06-07T22:26:36.76Z",
"updatedAt": "2019-06-07T22:26:36.76Z",
"serviceBusEndpoint": "https://mySpace.servicebus.windows-int.net:443/"
}
}
Getting dizzy?
@henry_been
Good thing there
is a reference!
https://docs.microsoft.com/en-us/azure/templates/
ARM Templates
@henry_been
Template structure
@henry_been
{
"$schema": “…”,
"contentVersion": “1.0.0.0",
"parameters": {
},
"variables": {
},
"resources": [
],
"outputs": {
}
}
Template structure: parameters
@henry_been
"parameters": {
"anyParameter": {
"type": “string | int | array | object | securestring | secureobject | …",
"minLength": int,
“maxLength“: int,
“minValue": int,
“maxValue“: int,
“defaultValue”: <value>,
“allowedValues”: [ … ],
“metadata”: {
“description”: “string”
}
}
}
Template structure: variables
@henry_been
"variables": {
“key": “value"
}
Template structure: resources
@henry_been
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "2016-01-01",
"location": "[resourceGroup().location]",
"kind": "Storage",
"sku": {
"name": "Standard_LRS"
}
}
Template structure: subresources
@henry_been
{
"type": "Microsoft.ServiceBus/Namespaces/AuthorizationRules",
"name": “namespaceName/ruleName",
"apiVersion": "2017-04-01",
"location": "[resourceGroup().location]",
"properties": {
"rights": [
"Send"
]
},
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces’, ‘namespaceName’)]"
]
}
Template structure: outputs
@henry_been
"outputs": {
“storageAccountName ": {
"type": "string",
"value": "[variables(storageAccountName ')]"
}
}
Template structure: functions
@henry_been
parameters()
variables()
resourceGroup()
subscription()
resourceId()
concat()
listKeys()
and many, many more…
Getting dizzy?
@henry_been
Good thing there
is a reference for
that as well!
https://docs.microsoft.com/en-us/azure/azure-resource-
manager/resource-group-template-functions
DEMO TIME!
@henry_been
Show me
the JSON
Demo
Deploying
ARM Templates
@henry_been
?
Parameter files
@henry_been
{
"$schema": “…",
"contentVersion": "1.0.0.0",
"parameters": {
" myParameter ": {
"value": “someValue"
}
}
Parameter files (secrets)
@henry_been
{
…
"parameters": {
"EmailSendgridApiKey": {
"reference": {
"keyVault": {
"id": "/subscriptions/{guid}/resourceGroups/{rgName}/providers/Microsoft.
KeyVault/vaults/{vaultName}"
},
"secretName": "EmailSendgridApiKey"
}
}
}
}
Deployment options
@henry_been
• Azure CLI
• Azure PowerShell
• From a pipeline (Azure DevOps or Github Actions)
MORE DEMOS,
PLEASE!
And much, much more…
@henry_been
• Subscription level templates
• Linked templates
• Reverse engineering a template
• Resource explorer
• Project Biceps
• Policies
And much, much more…
@henry_been
• Subscription level templates
• Linked templates
• Reverse engineering a template
• Resource explorer
• Project Biceps
• Policies
DO TRY THIS AT HOME!
HENRY BEEN
Independent Devops & Azure Architect
E: henry@azurespecialist.nl
T: @henry_been
L: linkedin.com/in/henrybeen
W: henrybeen.nl
Henry been   azure resource manager - inside out
Questions?
@henry_been
QUESTIONS?
Now is the time!
Henry been   azure resource manager - inside out

More Related Content

PPTX
Infrastructure as Code on Azure - NET Conf CO v2018
PPTX
TechEvent Infrastructure as Code on Azure
PPTX
Infrastructure as Code on Azure - Show your Bicep! v0.2 - .NetConf 2020 by Do...
PPTX
Infrastructure as Code on Azure - NET Conf AR v2018
PPTX
IaaS with ARM templates for Azure
PDF
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
PDF
Infrastructure as Code for Azure: ARM or Terraform?
PDF
Azure for AWS & GCP Pros: Which Azure services to use?
Infrastructure as Code on Azure - NET Conf CO v2018
TechEvent Infrastructure as Code on Azure
Infrastructure as Code on Azure - Show your Bicep! v0.2 - .NetConf 2020 by Do...
Infrastructure as Code on Azure - NET Conf AR v2018
IaaS with ARM templates for Azure
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Infrastructure as Code for Azure: ARM or Terraform?
Azure for AWS & GCP Pros: Which Azure services to use?

What's hot (20)

PPTX
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
PPTX
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
PPTX
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
PPTX
Flynn Bundy - 60 micro-services in 6 months
PDF
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
PDF
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
PDF
Azure ARM Templates 101
PPTX
Cloud migration Through Automation
PPTX
Neil Peterson - Azure CLI Deep Dive
PPTX
Azure Infrastructure as Code and Hashicorp Terraform
PDF
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
PPTX
Azure virtual machine-network
PPTX
Azure serverless Full-Stack kickstart
PDF
Java & Microservices in Azure
PPTX
Azure Automation and Update Management
PPTX
Azure Big Picture
PPTX
Intro to docker and kubernetes
PDF
Azure DevOps Multistage YAML Pipelines – Top 10 Features
PPTX
Budowanie szablonów Azure Resource Manager w praktyce od podstaw
PDF
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
Alex Magnay - Azure Infrastructure as Code with Hashicorp Terraform
Flynn Bundy - 60 micro-services in 6 months
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
Shift Remote AI: Build and deploy PyTorch Models with Azure Machine Learning ...
Azure ARM Templates 101
Cloud migration Through Automation
Neil Peterson - Azure CLI Deep Dive
Azure Infrastructure as Code and Hashicorp Terraform
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Azure virtual machine-network
Azure serverless Full-Stack kickstart
Java & Microservices in Azure
Azure Automation and Update Management
Azure Big Picture
Intro to docker and kubernetes
Azure DevOps Multistage YAML Pipelines – Top 10 Features
Budowanie szablonów Azure Resource Manager w praktyce od podstaw
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Ad

Similar to Henry been azure resource manager - inside out (20)

PPTX
CCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShell
PDF
ITCamp 2018 - Magnus Mårtensson - Azure Resource Manager For The Win
PPTX
Inside Azure Resource Manager
PPTX
Azure for SharePoint Developers - Workshop - Part 3: Web Services
PDF
Aprovisionamiento y configuración deVMs con Azure Resource Manager
PPTX
Azure Security - Day5 - Governance And Architecture
PDF
Innovation morning agenda+azure arc
PPTX
Azure arm templates
PPTX
Azure deployments and ARM templates
PPTX
70 533 - Module 01 - Introduction to Azure
PDF
Azure Arcの様々なパターンを図で理解する!
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
PPTX
Introduction to Microsoft Azure 101
PDF
Terraform & Azure
PPTX
Don't be afraid of moving infrastructure into Azure!
PPTX
Deploy and Manage the Infrastructure Using Azure Resource Manager
PPTX
Microsoft-Azure-Overvi2222222222222ew.pptx
PPTX
Windows Azure for Developers - Service Management
PDF
Fundamentals of Azure
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
CCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShell
ITCamp 2018 - Magnus Mårtensson - Azure Resource Manager For The Win
Inside Azure Resource Manager
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Aprovisionamiento y configuración deVMs con Azure Resource Manager
Azure Security - Day5 - Governance And Architecture
Innovation morning agenda+azure arc
Azure arm templates
Azure deployments and ARM templates
70 533 - Module 01 - Introduction to Azure
Azure Arcの様々なパターンを図で理解する!
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
Introduction to Microsoft Azure 101
Terraform & Azure
Don't be afraid of moving infrastructure into Azure!
Deploy and Manage the Infrastructure Using Azure Resource Manager
Microsoft-Azure-Overvi2222222222222ew.pptx
Windows Azure for Developers - Service Management
Fundamentals of Azure
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
Ad

More from Henry Been (14)

PDF
Dot netsaterday henry been - logging instrumentation dashboards alerts
PDF
Cloud brew henry been - logging instrumentation dashboards alerts
PDF
Henry Been - Secure development: keeping your application secrets private
PDF
Serverless computing henry been - logging instrumentation dashboards alerts
PDF
Serverless computing henry been - continuous deployment of azure functions
PPTX
Logging, Instrumentation, Dashboards and Alerts - for developers
PPTX
Cloud brew cloudcamp
PPTX
Secure deployments keeping your application secrets private -duug fest
PPTX
Secure deployments keeping your application secrets private - condensed
PPTX
Writing, build and releasing your own vsts extension
PPTX
Continuous delivery for the it pro
PPTX
Focus on business value by going Serverless
PDF
Henry been database-per-tenant with 50k databases
PPTX
Henry been - Multi-tenant applications using 30k databases
Dot netsaterday henry been - logging instrumentation dashboards alerts
Cloud brew henry been - logging instrumentation dashboards alerts
Henry Been - Secure development: keeping your application secrets private
Serverless computing henry been - logging instrumentation dashboards alerts
Serverless computing henry been - continuous deployment of azure functions
Logging, Instrumentation, Dashboards and Alerts - for developers
Cloud brew cloudcamp
Secure deployments keeping your application secrets private -duug fest
Secure deployments keeping your application secrets private - condensed
Writing, build and releasing your own vsts extension
Continuous delivery for the it pro
Focus on business value by going Serverless
Henry been database-per-tenant with 50k databases
Henry been - Multi-tenant applications using 30k databases

Recently uploaded (20)

PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
project resource management chapter-09.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Getting Started with Data Integration: FME Form 101
DP Operators-handbook-extract for the Mautical Institute
observCloud-Native Containerability and monitoring.pptx
Hybrid model detection and classification of lung cancer
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
cloud_computing_Infrastucture_as_cloud_p
Zenith AI: Advanced Artificial Intelligence
project resource management chapter-09.pdf
WOOl fibre morphology and structure.pdf for textiles
Univ-Connecticut-ChatGPT-Presentaion.pdf
A comparative study of natural language inference in Swahili using monolingua...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Group 1 Presentation -Planning and Decision Making .pptx
OMC Textile Division Presentation 2021.pptx
O2C Customer Invoices to Receipt V15A.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
Hindi spoken digit analysis for native and non-native speakers
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Getting Started with Data Integration: FME Form 101

Henry been azure resource manager - inside out

Editor's Notes

  • #39: Code laten zien: ASP.NET IaaS laten zien CI / CD laten zien