Descrever modelos do Azure Resource Manager e do ARM do Azure

Concluído

O ARM (Azure Resource Manager) é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure. Sempre que você faz qualquer coisa com seus recursos do Azure, o ARM está envolvido.

Quando um usuário envia uma solicitação de ferramentas, APIs ou SDKs do Azure, o ARM recebe a solicitação. O ARM se autentica e autoriza a solicitação. Então, o ARM envia a solicitação para o serviço do Azure, que executa a ação solicitada. Você vê resultados e recursos consistentes em todas as diferentes ferramentas porque todas as solicitações são tratadas por meio da mesma API.

Benefícios do Azure Resource Manager

Com o Azure Resource Manager, você pode:

  • Gerenciar sua infraestrutura por meio de modelos declarativos em vez de scripts. Um modelo do Resource Manager é um arquivo JSON que define o que você deseja implantar no Azure.
  • Implantar, gerenciar e monitorar todos os recursos da sua solução como um grupo em vez de tratá-los individualmente.
  • Reimplantar a solução durante o ciclo de vida de desenvolvimento e ter confiança de que os recursos serão implantados em um estado consistente.
  • Definir as dependências entre os recursos para que eles sejam implantados na ordem correta.
  • Aplicar o controle de acesso a todos os serviços porque o RBAC é integrado nativamente à plataforma de gerenciamento.
  • Aplicar marcas aos recursos para organizar de modo lógico todos os recursos em sua assinatura.
  • Esclarecer a cobrança da organização exibindo os custos de um grupo de recursos que compartilham a mesma marca.

O vídeo a seguir fornece uma visão geral do Azure Resource Manager.

Infraestrutura como código

A infraestrutura como código é um conceito em que você gerencia sua infraestrutura como linhas de código. Em um nível introdutório, é como usar o Azure Cloud Shell, Azure PowerShell ou a CLI do Azure para gerenciar e configurar seus recursos. À medida que você fica mais confortável na nuvem, você pode usar a infraestrutura como conceito de código para gerenciar implantações inteiras usando modelos e configurações repetíveis. Os modelos do ARM e o Bicep são dois exemplos de como usar a infraestrutura como código com o Azure Resource Manager para manter seu ambiente.

Modelos de ARM

Ao usar os modelos do ARM, você pode descrever os recursos que deseja usar em um formato JSON declarativo. Com um modelo do ARM, o código de implantação é verificado antes da execução de qualquer código. Isso garante que os recursos serão criados e conectados corretamente. Em seguida, o modelo orquestra a criação desses recursos em paralelo. Ou seja, se você precisar de 50 instâncias do mesmo recurso, todas as 50 instâncias serão criadas ao mesmo tempo.

No fim das contas, o desenvolvedor, o DevOps profissional ou o profissional de TI precisa apenas definir o estado desejado e a configuração de cada recurso no modelo do ARM e o modelo fará o resto. Os modelos podem até mesmo executar scripts do PowerShell e Bash antes ou depois da configuração de um recurso.

Benefícios de usar modelos do ARM

Os modelos do ARM proporcionam muitos benefícios ao planejar a implantação de recursos do Azure. Alguns desses benefícios incluem:

  • Sintaxe declarativa: Os modelos ARM permitem criar e implantar uma infraestrutura inteira do Azure de forma declarativa. A sintaxe declarativa significa que você declara o que deseja implantar, mas não precisa escrever os comandos de programação e a sequência de fato para implantar os recursos.
  • Resultados repetidos: Implante repetidamente sua infraestrutura em todo seu ciclo de vida de desenvolvimento e com a confiança de que seus recursos são implantados em um estado consistente. Você pode usar o mesmo modelo do ARM para implantar vários ambientes de desenvolvimento/teste, sabendo que todos os ambientes são iguais.
  • Orquestração: Você não precisa se preocupar com as complexidades das operações de ordenação. O Azure Resource Manager orquestra a implantação dos recursos interdependentes para que eles sejam criados na ordem correta. Quando possível, o Azure Resource Manager implanta recursos em paralelo para que suas implantações sejam concluídas mais rapidamente do que as implantações seriais. Você implanta o modelo por meio de um comando, em vez de vários comandos imperativos.
  • Arquivos modulares: Você pode dividir seus modelos em componentes menores e reutilizáveis e vinculá-los no momento da implantação. Também é possível aninhar um modelo em outro modelo. Por exemplo, você pode criar um modelo para uma pilha de VM e então aninhar esse modelo dentro de modelos que implantam ambientes inteiros, e essa pilha de VM será consistentemente implantada em cada um dos modelos de ambiente.
  • Extensibilidade: com scripts de implantação, você pode adicionar scripts do PowerShell ou Bash aos seus modelos. Os scripts de implantação estendem sua capacidade de configurar recursos durante a implantação. Um script pode ser incluído no modelo ou armazenado em uma fonte externa e referenciado no modelo. Os scripts de implantação oferecem a capacidade de concluir a configuração de seu ambiente de ponta a ponta em um único modelo ARM.

Bicep

O Bicep é uma linguagem que usa sintaxe declarativa para implantar recursos do Azure. Um arquivo Bicep define a infraestrutura e a configuração. Em seguida, o ARM implanta esse ambiente com base no arquivo Bicep. Embora semelhante a um modelo do ARM, que é escrito em JSON, os arquivos Bicep tendem a usar um estilo mais simples e conciso.

Alguns benefícios do Bicep são:

  • Suporte para todos os tipos de recursos e versões de API: o Bicep dá suporte imediato a todas as versões de GA e de versão prévia dos serviços do Azure. Assim que um provedor de recursos introduzir novos tipos de recursos e versões de API, será possível usá-los no arquivo Bicep. Não é necessário aguardar as ferramentas serem atualizadas antes de usar os novos serviços.
  • Sintaxe simples: quando comparados ao modelo JSON equivalente, os arquivos Bicep são mais concisos e fáceis de ler. O Bicep não requer nenhum conhecimento anterior das linguagens de programação. A sintaxe Bicep é declarativa e especifica quais recursos e propriedades de recurso você deseja implantar.
  • Resultados repetidos: Implante repetidamente sua infraestrutura em todo seu ciclo de vida de desenvolvimento e com a confiança de que seus recursos são implantados em um estado consistente. Os arquivos Bicep são idempotentes, o que significa que você pode implantar o mesmo arquivo muitas vezes e obter os mesmos tipos de recursos no mesmo estado. Você pode desenvolver um arquivo que represente o estado desejado, em vez de desenvolver vários arquivos separados para representar atualizações.
  • Orquestração: Você não precisa se preocupar com as complexidades das operações de ordenação. O Resource Manager orquestra a implantação dos recursos interdependentes para que eles sejam criados na ordem correta. Quando possível, o Resource Manager implanta recursos em paralelo para que suas implantações sejam concluídas mais rapidamente do que as implantações seriais. Você implanta o arquivo por meio de um comando, em vez de vários comandos imperativos.
  • Modularidade: é possível separar o código Bicep em partes gerenciáveis usando módulos. O módulo implementa um conjunto de recursos relacionados. Os módulos permitem reutilizar o código e simplificar o desenvolvimento. Adicione o módulo a um arquivo Bicep sempre que for necessário implantar esses recursos.