Desafio 22: Azure Arc e Templates ARM
20-30 min | Custo: Gratuito | Domínio: Management & Governance (30-35%)
Habilidades do exame cobertas
- Descrever o propósito do Azure Arc
- Descrever o Azure Resource Manager (ARM) e ARM templates (incluindo Bicep)
Visão Geral
Azure Resource Manager (ARM) é a camada de gerenciamento que lida com todas as requisições ao Azure. Seja usando o Portal, CLI, PowerShell ou REST API — tudo passa pelo ARM. ARM templates permitem definir infraestrutura como código (JSON ou Bicep). Azure Arc estende o gerenciamento do Azure para recursos executando fora do Azure (on-premises, outras nuvens).
Explorar
Tarefa 1: Entender o Azure Resource Manager
ARM é o serviço de implantação e gerenciamento do Azure:
Azure Portal ──┐
Azure CLI ──┼──→ Azure Resource Manager ──→ Azure Services
PowerShell ──┤ (ARM)
REST API ──┘
Recursos principais do ARM:
- Todas as requisições de gerenciamento passam pela mesma camada de API
- Resultados consistentes independente da ferramenta usada
- Controle de acesso (RBAC), tags e locks são aplicados na camada ARM
- Recursos são implantados de forma declarativa (descreva o estado desejado)
Tarefa 2: Entender ARM templates
ARM templates definem infraestrutura como código em JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "mystorageaccount",
"location": "eastus",
"sku": { "name": "Standard_LRS" },
"kind": "StorageV2"
}
]
}
Benefícios dos ARM templates:
- Declarativo: Descreva O QUE você quer, não COMO criar
- Repetível: Implante o mesmo ambiente consistentemente
- Idempotent: Implante novamente sem duplicar recursos
- Versionado: Armazene templates no Git
- Modular: Componha templates a partir de peças menores
Tarefa 3: Entender Bicep
Bicep é uma linguagem mais simples que compila para ARM JSON:
resource storage 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: 'mystorageaccount'
location: 'eastus'
sku: { name: 'Standard_LRS' }
kind: 'StorageV2'
}
Bicep vs ARM JSON:
| Aspecto | ARM JSON | Bicep |
|---|---|---|
| Sintaxe | JSON verboso | DSL concisa |
| Legibilidade | Mais difícil | Mais fácil |
| Ferramentas | Boas | Excelentes (extensão VS Code) |
| Saída | Formato nativo | Compila para ARM JSON |
Tarefa 4: Entender o Azure Arc
Azure Arc estende o gerenciamento do Azure para recursos FORA do Azure:
| Recurso Arc-enabled | O que faz |
|---|---|
| Arc-enabled servers | Gerenciar VMs on-premises ou multi-cloud a partir do Azure |
| Arc-enabled Kubernetes | Gerenciar clusters K8s em qualquer lugar a partir do Azure |
| Arc-enabled SQL Server | Gerenciar SQL Servers em qualquer lugar a partir do Azure |
| Arc-enabled data services | Executar serviços de dados Azure em qualquer infraestrutura |
Por que Azure Arc?
- Painel único: Gerenciar Azure + não-Azure em um só lugar
- Aplicar Azure Policy em servidores on-premises
- Usar Azure Monitor em recursos não-Azure
- Governança consistente em ambientes híbridos
Tarefa 5: Explorar ARM templates no Cloud Shell
# In Azure Cloud Shell, export a resource group template
# (This shows the ARM template for existing resources)
az group export --name rg-az900-learning 2>/dev/null || echo "Create the RG first (Challenge 08)"
# View what an ARM deployment would create (what-if)
# az deployment group what-if --resource-group myRG --template-file template.json
# Check if Azure Arc is available (browse Arc in portal)
az connectedmachine list 2>/dev/null || echo "No Arc-enabled machines (expected for learning)"
# Validate a Bicep file (if you have one)
# az bicep build --file main.bicep
Conceitos-Chave
| Conceito | Descrição |
|---|---|
| ARM | Azure Resource Manager — camada de gerenciamento para todas as operações Azure |
| ARM template | Arquivo JSON definindo infraestrutura Azure declarativamente |
| Bicep | Linguagem simplificada que compila para ARM templates |
| Infrastructure as Code (IaC) | Gerenciar infraestrutura através de arquivos versionados |
| Declarative | Definir estado desejado; ARM descobre como alcançá-lo |
| Idempotent | Pode implantar múltiplas vezes sem duplicar recursos |
| Azure Arc | Estender gerenciamento Azure para recursos não-Azure |
Verificação de Conhecimento
1. O que é o Azure Resource Manager (ARM)?
2. Qual é um benefício principal do uso de ARM templates?
3. Qual é o propósito do Azure Arc?
4. Qual é a relação entre Bicep e ARM templates?
5. O que significa "idempotent" no contexto de implantações de ARM templates?
Saiba Mais
- 📚 Study Guide AZ-900 — Materiais de estudo selecionados
- Microsoft Learn: Describe features and tools for managing and deploying Azure resources
- ARM templates documentation
- Azure Arc documentation