Question — 45
Tags —
Introdução
Terraform e Bicep são duas ferramentas populares de Infrastructure as Code (IaC) para provisionamento de recursos no Azure. Cada uma possui características, vantagens e cenários de uso distintos.
Conceito-chave: Abordagem Multi-Cloud vs Nativa
- Terraform: Ferramenta open source da HashiCorp, com suporte multi-cloud (Azure, AWS, GCP, etc.). Utiliza linguagem HCL e permite gerenciar infraestrutura em diferentes provedores.
- Bicep: Linguagem declarativa da Microsoft, focada exclusivamente no Azure, com sintaxe simplificada e integração nativa ao ARM.
Tópicos Relevantes
- Portabilidade: Terraform permite reutilizar código em múltiplos provedores; Bicep é exclusivo do Azure.
- Sintaxe: Bicep é mais enxuto para recursos Azure; Terraform é mais genérico.
- Comunidade e Ecossistema: Terraform possui grande comunidade e módulos prontos; Bicep evolui rapidamente no ecossistema Azure.
- Integração: Bicep tem integração nativa com Azure CLI/Portal; Terraform depende de providers.
- Governança e Compliance: Ambos suportam versionamento, revisão e automação via pipelines.
Exemplo Prático
Provisionando uma Storage Account:
Bicep:
resource storage 'Microsoft.Storage/storageAccounts@2022-09-01' = {
name: 'minhastorage${uniqueString(resourceGroup().id)}'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Terraform:
resource "azurerm_storage_account" "example" {
name = "minhastorage"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
account_tier = "Standard"
account_replication_type = "LRS"
}
Quando usar cada um?
- Terraform: Projetos multi-cloud, times com experiência em HCL, necessidade de portabilidade.
- Bicep: Projetos 100% Azure, times focados em integração nativa e facilidade de uso.
A escolha depende do contexto, maturidade da equipe e requisitos de portabilidade e integração.