O que é o Azure Resource Manager?

Concluído

Você passou algum tempo com sua equipe aprendendo os benefícios da infraestrutura como código e as diferentes abordagens disponíveis. A sua empresa está a crescer a um ritmo acelerado e a sua equipa sabe que irá implementar um número significativo de recursos no Azure. Como equipe, você decidiu que a infraestrutura declarativa como código é a abordagem certa para o provisionamento de recursos. A equipe não deseja manter scripts que listam todas as etapas de implantação. Antes de iniciar o processo de criação do seu primeiro modelo, você precisa entender como o Azure Resource Manager funciona. Investigar os tipos de modelos que estão disponíveis para uso com o Azure ajudará você a determinar as próximas etapas em sua estratégia de infraestrutura como código.

Nesta unidade, você aprenderá sobre o Resource Manager e os dois tipos de modelos do Resource Manager.

Conceitos do Azure Resource Manager

O Azure Resource Manager é o serviço usado para implantar e gerenciar recursos no Azure. Você pode usar o Gerenciador de Recursos para criar, atualizar e excluir recursos em sua assinatura do Azure. Você pode interagir com o Gerenciador de Recursos usando muitas ferramentas, incluindo o portal do Azure. O Resource Manager também fornece uma série de outros recursos, como controle de acesso, auditoria e marcação, para ajudar a gerenciar seus recursos após a implantação.

Terminologia

Ao iniciar sua jornada na nuvem com o Gerenciador de Recursos, é importante entender alguns termos e conceitos:

  • Recurso: um item gerenciável que está disponível na plataforma Azure. Redes virtuais, máquinas virtuais, contas de armazenamento, aplicativos Web e bancos de dados são exemplos de recursos.

  • Grupo de recursos: um contêiner lógico que contém recursos relacionados para uma solução do Azure. O grupo de recursos inclui recursos que você deseja gerenciar como um grupo. A maioria dos recursos do Azure está contida em um grupo de recursos. Você decide quais recursos pertencem a um grupo de recursos com base no que faz mais sentido para sua solução.

    Nota

    Um pequeno número de recursos não está contido em grupos de recursos. Esses tipos de recursos são para fins específicos, como gerenciar o controle de acesso e aplicar políticas. Você aprenderá mais sobre esses recursos em um módulo posterior.

  • Assinatura: um contêiner lógico e um limite de faturamento para seus recursos e grupos de recursos. Cada recurso e grupo de recursos do Azure está associado a apenas uma assinatura.

  • Grupo de gerenciamento: um contêiner lógico que você usa para gerenciar mais de uma assinatura. Pode definir uma hierarquia de grupos de gestão, subscrições, grupos de recursos e recursos para gerir eficientemente o acesso, as políticas e a conformidade através da herança.

  • Modelo do Azure Resource Manager (modelo ARM): um arquivo de modelo que define um ou mais recursos a serem implantados em um grupo de recursos, assinatura, grupo de gerenciamento ou locatário. Você pode usar o modelo para implantar os recursos de forma consistente e repetível. Existem dois tipos de arquivos de modelo ARM: JSON e Bicep. Este módulo foca-se no Bicep.

Benefícios

O Resource Manager oferece muitos benefícios e recursos relacionados ao provisionamento de recursos de infraestrutura como código:

  • Você pode implantar, gerenciar e monitorar os recursos em sua solução como um grupo em vez de individualmente.
  • Você pode reimplantar sua solução durante todo o ciclo de vida do desenvolvimento e ter confiança de que seus recursos serão implantados em um estado consistente.
  • Você pode gerenciar sua infraestrutura por meio de modelos declarativos em vez de usar scripts.
  • Você pode especificar dependências de recursos para garantir que os recursos sejam implantados na ordem correta.

Operações: Plano de controlo e plano de dados

Você pode executar dois tipos de operações no Azure: operações de plano de controle e operações de plano de dados. Use o plano de controle para gerenciar os recursos em sua assinatura. Use o plano de dados para acessar recursos expostos por um recurso.

Por exemplo, você usa uma operação de plano de controle para criar uma máquina virtual, mas usa uma operação de plano de dados para se conectar à máquina virtual usando o protocolo RDP (Remote Desktop Protocol).

Plano de controlo

Quando você envia uma solicitação de qualquer uma das ferramentas, APIs ou SDKs do Azure, o Gerenciador de Recursos recebe, autentica e autoriza a solicitação. Em seguida, ele envia a solicitação para o provedor de recursos do Azure, que executa a ação solicitada. Como todas as solicitações são tratadas por meio da mesma API, você vê resultados e recursos consistentes em todas as diferentes ferramentas disponíveis no Azure.

A imagem a seguir mostra a função que o Gerenciador de Recursos desempenha no tratamento de solicitações do Azure:

Diagram that shows how Azure Resource Manager accepts requests from all Azure clients and libraries.

Todas as solicitações de operação do plano de controle são enviadas para uma URL do Gerenciador de Recursos. Por exemplo, a operação de criação ou atualização para máquinas virtuais é uma operação de plano de controle. Aqui está o URL da solicitação para esta operação:

PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01

O plano de controle entende quais recursos precisam ser criados e quais recursos já existem. O Resource Manager entende a diferença entre essas solicitações e não criará recursos idênticos ou excluirá recursos existentes, embora haja maneiras de substituir esse comportamento.

Plano de dados

Quando uma operação de plano de dados é iniciada, as solicitações são enviadas para um ponto de extremidade específico em sua assinatura do Azure. Por exemplo, a operação Detetar Idioma nos serviços de IA do Azure é uma operação de plano de dados porque a URL da solicitação é:

POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages

Os recursos do Gerenciador de Recursos, como controle de acesso e bloqueios, nem sempre se aplicam às operações do plano de dados. Por exemplo, um usuário pode não ter permissões para gerenciar uma máquina virtual usando o plano de controle, mas o usuário pode entrar no sistema operacional.

O que são modelos ARM?

Os modelos do Azure Resource Manager são arquivos que definem a infraestrutura e a configuração para sua implantação. Ao escrever um modelo ARM, você adota uma abordagem declarativa para o provisionamento de recursos. Esses modelos descrevem cada recurso na implantação, mas não descrevem como implantar os recursos. Quando você envia um modelo ao Gerenciador de Recursos para implantação, o plano de controle pode implantar os recursos definidos de maneira organizada e consistente. Na unidade anterior, você aprendeu sobre as diferenças entre código imperativo e código declarativo.

Por que usar modelos ARM?

Há muitos benefícios em usar modelos ARM, JSON ou Bicep, para o provisionamento de recursos.

  • Resultados repetíveis: os modelos ARM são idempotentes, o que significa que você pode implantar repetidamente o mesmo modelo e obter o mesmo resultado. O modelo não duplica recursos.

  • Orquestração: Quando uma implantação de modelo é enviada ao Gerenciador de Recursos, os recursos no modelo são implantados em paralelo. Esse processo permite que as implantações sejam concluídas mais rapidamente. O Resource Manager orquestra essas implantações na ordem correta se um recurso depender de outro.

  • Pré-visualização: a ferramenta hipotética, disponível no Azure PowerShell e na CLI do Azure, permite-lhe pré-visualizar as alterações ao seu ambiente antes da implementação do modelo. Esta ferramenta detalha quaisquer criações, modificações e exclusões que serão feitas pelo seu modelo.

  • Teste e validação: você pode usar ferramentas como o linter Bicep para verificar a qualidade de seus modelos antes da implantação. Os modelos ARM enviados ao Resource Manager são validados antes do processo de implantação. Essa validação alerta você sobre quaisquer erros em seu modelo antes do provisionamento de recursos.

  • Modularidade: Você pode dividir seus modelos em componentes menores e vinculá-los na implantação.

  • Integração CI/CD: seus modelos ARM podem ser integrados em várias ferramentas de CI/CD, como Azure DevOps e GitHub Actions. Você pode usar essas ferramentas para modelos de versão por meio de pipelines de liberação de controle de origem e compilação.

  • Extensibilidade: Com scripts de implantação, você pode executar scripts Bash ou PowerShell de dentro de seus modelos ARM. Esses scripts executam tarefas, como operações de plano de dados, na implantação. Por meio da extensibilidade, você pode usar um único modelo ARM para implantar uma solução completa.

Modelos JSON e Bicep

Dois tipos de modelos ARM estão disponíveis para uso atualmente: modelos JSON e modelos Bicep. JavaScript Object Notation (JSON) é um formato de arquivo padrão aberto que vários idiomas podem usar. Bicep é uma nova linguagem específica de domínio que foi recentemente desenvolvida para criar modelos ARM usando uma sintaxe mais fácil. Você pode usar qualquer formato de modelo para seus modelos ARM e implantações de recursos.