Descrever o Azure Resource Manager e os modelos do Azure ARM
O Azure Resource Manager (ARM) é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que 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 qualquer uma das ferramentas, APIs ou SDKs do Azure, o ARM recebe a solicitação. A ARM autentica e autoriza a solicitação. Em seguida, 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:
- Gerencie 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.
- Implante, gerencie e monitore todos os recursos de sua solução como um grupo, em vez de lidar com esses recursos individualmente.
- Reimplementa a solução ao longo de todo o ciclo de vida de desenvolvimento e tem a confiança de que os teus recursos serão implantados de forma consistente.
- Defina as dependências entre recursos, para que eles sejam implantados na ordem correta.
- Aplique o controle de acesso a todos os serviços porque o RBAC está integrado nativamente à plataforma de gerenciamento.
- Aplique tags a recursos para organizar logicamente todos os recursos em sua assinatura.
- Esclareça a faturação da sua organização visualizando os custos de um grupo de recursos que partilham a mesma etiqueta.
O vídeo a seguir fornece uma visão geral do Azure Resource Manager.
Infraestrutura como código
Infraestrutura como código é um conceito onde você gerencia sua infraestrutura como linhas de código. Em um nível introdutório, são coisas como usar o Azure Cloud Shell, o Azure PowerShell ou a CLI do Azure para gerenciar e configurar seus recursos. À medida que você se sente 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 ARM e o Bicep são dois exemplos de utilização da infraestrutura como código com o Azure Resource Manager para manter o seu ambiente.
Modelos ARM
Usando modelos ARM, você pode descrever os recursos que deseja usar em um formato JSON declarativo. Com um modelo ARM, o código de implantação é verificado antes de qualquer código ser executado. 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.
Em última análise, o desenvolvedor, o profissional de DevOps ou o profissional de TI precisa apenas definir o estado desejado e a configuração de cada recurso no modelo ARM, e o modelo faz o resto. Os modelos podem até mesmo executar scripts PowerShell e Bash antes ou depois de o recurso ter sido configurado.
Benefícios do uso de modelos ARM
Os modelos ARM fornecem 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 declarativamente. Sintaxe declarativa significa que você declara o que deseja implantar, mas não precisa escrever os comandos de programação reais e a sequência para implantar os recursos.
- Resultados repetíveis: implante repetidamente sua infraestrutura durante todo o ciclo de vida do desenvolvimento e tenha confiança de que seus recursos serão implantados de maneira consistente. Você pode usar o mesmo modelo ARM para implantar vários ambientes de desenvolvimento/teste, sabendo que todos os ambientes são iguais.
- Orchestration: Você não precisa se preocupar com as complexidades das operações de ordenação. O Azure Resource Manager orquestra a implantação de 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. Você também pode aninhar um modelo dentro de outro modelo. Por exemplo, você pode criar um modelo para uma pilha de VM e, em seguida, aninhar esse modelo dentro de modelos que implantam ambientes inteiros, e essa pilha de VM será implantada consistentemente em cada um dos modelos de ambiente.
- Extensibilidade: Com scripts de implantação, você pode adicionar scripts 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 completa do ambiente em um único modelo ARM.
Bíceps
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 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 suporta imediatamente todas as versões de pré-visualização e GA para serviços do Azure. Assim que um provedor de recursos introduzir novos tipos de recursos e versões de API, eles ficarão disponíveis para uso no seu arquivo Bicep. Você não precisa esperar que as ferramentas sejam atualizadas antes de usar os novos serviços.
- Sintaxe Simples: Quando comparado ao modelo JSON equivalente, os arquivos Bicep são mais concisos e fáceis de ler. Bicep não requer conhecimento prévio de linguagens de programação. A sintaxe do Bicep é declarativa e especifica quais recursos e propriedades dos recursos se pretende implantar.
- Resultados repetíveis: implante repetidamente sua infraestrutura durante todo o ciclo de vida do desenvolvimento e tenha confiança de que seus recursos serão implantados de maneira 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 representa o estado desejado, em vez de desenvolver muitos arquivos separados para representar atualizações.
- Orchestration: Você não precisa se preocupar com as complexidades das operações de ordenação. O Resource Manager orquestra a implantação de 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: Você pode dividir seu código Bicep em partes gerenciáveis usando módulos. O módulo implanta 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 precisar implantar esses recursos.