Grupos de recursos (RG) no Azure é uma nova abordagem para agrupar uma coleção de ativos em grupos lógicos para provisionamento, monitoramento e controle de acesso fáceis ou automáticos, e para um gerenciamento mais eficaz de seus custos. Um benefício do uso de RGs no Azure é agrupar recursos relacionados que pertencem a um aplicativo, pois eles compartilham um ciclo de vida unificado, da criação ao uso e, finalmente, ao provisionamento.
A tecnologia subjacente que alimenta os grupos de recursos é o ARM (Azure Resource Manager). O ARM foi criado pela Microsoft em resposta às deficiências da antiga tecnologia Azure Service Manager (ASM) que alimentava o antigo portal de gerenciamento do Azure. Com o ASM, os usuários podem criar recursos de maneira não estruturada, levando a muitos desafios no rastreamento desses recursos ou na compreensão de suas dependências. Isso levou a enormes dificuldades que desencorajaram as pessoas a usar o Azure, pois elas teriam uma grande bagunça quando precisassem lidar com vários aplicativos que abrangem mais de uma região.
Para entender melhor esse desafio, imagine que você desejasse criar um aplicativo no antigo portal de gerenciamento do Azure. Para fazer isso, você criaria as redes virtuais, as contas de armazenamento, os serviços em nuvem, as máquinas virtuais e potencialmente muitos outros componentes desse aplicativo – sem a capacidade de agrupá-los. Se você fosse criar ou implantar mais de um aplicativo, seria difícil descobrir quais recursos dependiam de qual, em que ordem os criar, ou mesmo a qual aplicativo eles pertenciam.
Como os Grupos de Recursos do Azure ajudam?
O Azure Resource Manager, anunciado em 2014 e geralmente disponível em 2017, resolve esse desafio e outros, fornecendo um novo conjunto de APIs (interfaces de programação de aplicativos) usadas para provisionar recursos no Azure. O ARM exige que os recursos sejam colocados em grupos de recursos, o que permite o agrupamento lógico dos recursos relacionados.
Na figura abaixo, dois grupos de recursos são usados para agrupar: Primeiro, aqueles relacionados a um aplicativo de linha de negócios (LOB) e, segundo, a uma carga de trabalho de infraestrutura como serviço (IaaS).
Embora a criação de um grupo de recursos exija a especificação de uma região para armazenamento, os recursos nesse grupo de recursos podem abranger várias regiões. O requisito de ter uma região para um grupo de recursos vem da necessidade de armazenar os metadados (definições) de implantação associados a ele em um local específico e não determina que os recursos pertencentes a ele precisem estar na mesma região.
Benefícios do ARM (Azure Resource Manager)
Antes do ARM, era necessário provisionar recursos de forma independente e entender as dependências deles e acomodá-los nos scripts de implantação. Como exemplo, para criar uma máquina virtual, você precisa primeiro criar uma conta de armazenamento, uma rede virtual, uma sub-rede etc.
Por outro lado, o ARM pode descobrir as dependências de recursos que precisam ser provisionadas antes da criação da máquina virtual e em que ordem elas precisam ser provisionadas, evitando que o usuário precise repetir seu trabalho para corrigir erros desnecessários durante a implantação.
No exemplo acima, o ARM criará automaticamente a conta virtual de rede e armazenamento simultaneamente com a máquina virtual. Os blades do portal orientam o usuário na definição dos recursos relacionados como parte do provisionamento da rede virtual. Como exemplo, na captura de tela abaixo, você pode ver que a criação de uma máquina virtual requer a especificação de outras dependências no painel de configurações, incluindo a rede virtual, a sub-rede, o endereço IP público e a conta de armazenamento, entre outras coisas.
O ARM fornece a capacidade de provisionar recursos declarativamente usando documentos JavaScript Object Notation (JSON). O documento JSON pode incluir uma descrição de vários recursos que precisam ser provisionados em um grupo de recursos, e o ARM sabe como provisioná-los adequadamente. Isso fornece uma flexibilidade e facilidade adicionais no gerenciamento de recursos pertencentes a grupos de recursos. O uso do JSON dessa maneira permitiu criar modelos de recursos que tornariam muito mais rápido o provisionamento de recursos pertencentes a um grupo de recursos. Isso também permitiu que fornecedores terceirizados disponibilizassem centenas de modelos para provisionar recursos diferentes que correspondem a muitos cenários de implantação. Esses modelos estão disponíveis em repositórios de código como o GitHub ou o Azure Marketplace.
Na arquitetura do ARM, os grupos de recursos não apenas se tornam unidades de implantação, mas também unidades de gerenciamento de recursos relacionados. Isso permite que os usuários determinem o custo associado a todo o grupo de recursos, tornando a contabilidade e os estornos mais gerenciáveis. Ele também permite o controle de acesso baseado em função (RBAC) no nível do grupo de recursos, facilitando muito o gerenciamento do acesso do usuário aos recursos do grupo. Quando os usuários fazem logon no Portal do Azure, eles verão apenas grupos de recursos aos quais têm acesso e não outros na assinatura. Os administradores ainda poderão atribuir controle de acesso para usuários a recursos individuais dentro do grupo de recursos com base em suas funções.
Gerenciamento do Grupo de Recursos do Azure
Além dos scripts (por exemplo, usando o PowerShell ou a CLI 2.0 do Azure), os grupos de recursos podem ser gerenciados apenas no novo portal do Azure que ficou disponível no ano passado. Se você estiver usando o novo Portal do Azure, um item do grupo de recursos estará disponível no menu de navegação por padrão e poderá ser usado para abrir o “blade” de gerenciamento do RG, como você pode ver na captura de tela abaixo.
O blade de gerenciamento RG fornece uma maneira direta de criar e gerenciar grupos de recursos. Ele também fornece uma visualização flexível e personalizável de alto nível dos grupos de recursos disponíveis em uma assinatura específica do Azure. O usuário pode selecionar quais colunas visualizar nesta exibição com base em suas funções e interesses e pode usar filtros para ampliar grupos de recursos específicos para uma assinatura ou um local.
O novo portal foi projetado para funcionar bem com os conceitos e arquitetura do ARM, oferecendo grande flexibilidade e experiência do usuário em como os recursos são exibidos e gerenciados. O portal exibe blades para o usuário à medida que recursos adicionais são criados. Um blade é uma página independente (ou conjunto de páginas) que permite ao usuário visualizar e gerenciar todos os aspectos do recurso que eles criaram usando uma abordagem passo a passo, semelhante a um assistente, para criar o recurso.
Chaves para grupos de recursos bem-sucedidos do Azure
Apesar das vantagens que os grupos de recursos e o ARM trazem aos usuários do Azure, é importante usá-los com cuidado e com boas informações. A chave para ter um design bem-sucedido de grupos de recursos é entender o ciclo de vida dos recursos incluídos neles. Por exemplo, se um aplicativo requer recursos diferentes que precisam ser atualizados juntos, como ter um banco de dados SQL, um aplicativo Web, um aplicativo móvel etc., faz sentido agrupar esses recursos no mesmo grupo de recursos. É importante, no entanto, usar diferentes grupos de recursos para desenvolvimento / teste, preparação ou produção, pois os recursos nesses grupos têm ciclos de vida diferentes.
Conclusão
Neste post, explicamos por que a Microsoft construiu a arquitetura ARM e o conceito de grupos de recursos em alto nível. É essa alteração arquitetural que permitiu o uso mais fácil e escalável do Azure e o colocou no caminho de crescimento que está desfrutando agora. Se você tiver alguma dúvida ou quiser saber mais sobre os Grupos de Recursos do Azure, entre em contato conosco ou saiba mais sobre o que o Microsoft Azure gerenciado pode fazer por você.