A automação e a nuvem estão intimamente relacionadas. Utilize o Azure Automation e os runbooks para implementar e controlar os serviços de infraestrutura e plataforma do Azure.

Uma das principais vantagens de utilizar a nuvem pública é a possibilidade de implementar aplicativos e serviços em grande escala. No entanto, lidar com muitos servidores pode trazer desafios adicionais para a administração de sistemas. Enquanto é possível gerenciar um ou dois dispositivos com uma interface de linha de comando ou uma interface gráfica, ou até 10 ou 20 dispositivos com scripts personalizados, controlar uma grande quantidade de dispositivos requer uma abordagem completamente diferente. Nesse cenário, é necessário adotar a infraestrutura como código e a automação.
Essa estratégia é o fundamento do Azure Automation da Microsoft, um conjunto de recursos para administrar infraestruturas virtuais por meio de uma combinação de implementações declarativas e Configuração de Estado Desejado (DSC) com base em PowerShell. O Azure Automation combina tecnologias conhecidas como o Azure Resource Manager e a linguagem de definição de infraestrutura Bicep, diminuindo a dificuldade de aprendizado e ampliando suas funcionalidades.
Ter uma estrutura de implantação testável ajuda a diminuir os riscos envolvidos no dimensionamento e nas atualizações de aplicativos. Com a infraestrutura estabelecida, o Azure Automation proporciona suporte para manter os servidores atualizados com patches de segurança por meio do suporte ao DSC.
O Azure Automation utiliza um método baseado em programação para automatizar processos, utilizando pastas de execução para controlar operações. Os runbooks permitem consolidar regras de configuração e implementação em um único arquivo executável, podendo ser escrito em PowerShell ou Python. Para tarefas de automação mais simples, a Microsoft oferece uma interface gráfica para facilitar a criação de novos runbooks.
Para aproveitar as vantagens de recursos como esse, é necessário incorporá-los ao seu sistema de compilação e ao seu framework de eventos. A Microsoft emprega webhooks no Azure Automation para acionar operações. Por exemplo, é possível ter uma função no Azure que é acionada por uma solicitação específica e que executará uma automação para fornecer mais instâncias do aplicativo. Esses mesmos webhooks podem ser acionados por GitHub Actions ou Azure DevOps para implementar uma nova infraestrutura como parte de um processo de compilação.
Criar diretórios de implementação no Azure Automation.
Os runbooks são elaborados no editor de texto incorporado do Azure Automation, que se assemelha ao Visual Studio Code e oferece suporte ao IntelliSense, além de uma biblioteca de trechos de código para facilitar a criação.
Se estiver trabalhando com o PowerShell, seu script de automação pode conter comandos pré-configurados e a capacidade de chamar outros scripts de automação. Essa funcionalidade permite criar uma coleção de scripts que incluem funções importantes (como criar um novo servidor) e integrá-los em uma infraestrutura mais elaborada.
Você tem a possibilidade de não se restringir apenas à criação e implementação de infraestrutura. O Azure Automation oferece também recursos para interagir com os serviços da plataforma Azure, utilizando as mesmas APIs do Azure CLI para configurar os serviços e disponibilizar os resultados para o seu código. As ferramentas de identidade gerenciadas no Azure Automation permitem atribuir uma conta e papel específicos para configurar e gerenciar o serviço de plataforma, como por exemplo, criar novas tabelas no Azure SQL Database para sua aplicação.
Ao adicionar suporte para a Configuração de Estado Desejado em seus modelos do Bicep ou do Azure Resource Manager para VMs gerenciados, é possível manter a consistência das configurações, garantindo que os servidores em diferentes regiões e zonas de disponibilidade permaneçam configurados da mesma forma. Ativar o DSC pode ser feito de maneira simples, seja por meio de uma linha de comando PowerShell ou incluindo uma entrada no modelo do Azure Resource Manager. Além disso, é viável automatizar o processo de configuração utilizando o Azure Automate para definir as configurações do gerenciador de configuração e distribuí-las para uma frota de servidores.
Em vez disso, é possível configurar suas máquinas virtuais para utilizar o serviço Azure Automanage, que é uma versão aprimorada do DSC projetada para gerenciar as propriedades das máquinas por meio do Azure Resource Manager. Esse método oferece ferramentas para configuração de servidores e garantia de conformidade. Optar pelo gerenciamento de conformidade é mais recomendável na prática, pois assegura que as máquinas sejam atualizadas assim que forem implantadas e que todas as instâncias permaneçam em sincronia, diminuindo os riscos com novas atualizações de segurança.
Controle do tempo de execução de automação no serviço Azure Automation.
Uma ferramenta essencial no suporte e gerenciamento de runbooks é o ambiente de execução do Azure Automation. Esse ambiente possibilita a definição e controle dos ambientes utilizados para hospedar e executar o código de automação, o que ajuda a minimizar os riscos relacionados ao uso de um ambiente de execução desconhecido e prevenir possíveis falhas.
Ao especificar um ambiente de execução, é possível gerenciar o idioma dos runbooks, a versão segmentada e os pacotes de software necessários. Ao fixar a versão do idioma, evita-se disparidades entre diferentes versões, garantindo que o código seja sempre executado na versão utilizada para o desenvolvimento e teste. Lançamentos posteriores com novas funcionalidades podem, então, atualizar as versões de execução conforme necessário.
Existem vantagens em utilizar uma versão atualizada do tempo de execução do PowerShell (como o PowerShell 7.2), pois isso possibilita a inclusão de comandos do Azure CLI nos seus scripts. O Azure Automation sempre adotará a versão mais recente do Azure CLI compatível com o idioma subjacente, então é importante estar ciente disso ao depender de comandos que possam ter se tornado obsoletos, mesmo que o restante do seu runbook permaneça inalterado.
Os ambientes de execução são estabelecidos e controlados através do Portal Azure ou sua API REST. A configuração é fácil, já que basta escolher a linguagem e versão desejadas. Após essa etapa, é possível selecionar os pacotes e módulos desejados e enviá-los para a conta Azure, podendo ser provenientes do ambiente de desenvolvimento local ou da galeria Azure Automation.
Se desejar atualizar a versão do idioma para um novo runbook, basta escolher a versão mais recente e salvar as mudanças no seu ambiente atualizado. Pode ser necessário atualizar pacotes devido a possíveis modificações.
Automatização no Azure para administração de sistemas.
É importante poder criar novas infraestruturas complexas conforme necessário, porém é fundamental também administrar esses novos servidores e redes. O Azure Automation fornece recursos de monitoramento de alterações que permitem manter um inventário atualizado em tempo real de seus servidores. Ao integrá-los às ferramentas de gerenciamento de sistemas, é possível verificar os recursos e acompanhar as operações.
O suporte para ferramentas de gestão atual inclui o Azure Automation State Configuration, uma versão baseada em nuvem do PowerShell DSC local. Ao usar um servidor DSC no Azure, é possível gerir o estado do servidor e automatizar atualizações conforme necessário. Essa ferramenta ajuda a controlar o que é atualizado e como, evitando que atualizações não desejadas sejam instaladas no servidor.
Observe que é possível utilizar o Azure Automation fora do ambiente do Azure, por meio do serviço de gerenciamento de nuvem híbrida do Azure Arc. Isso inclui a incorporação de um papel de Runbook híbrido para servidores não pertencentes à Azure, como hardware físico. O Azure Arc possibilita a gestão de dispositivos de borda e sistemas hospedados no Azure, integrando-os em uma plataforma de IoT, e também permite a administração de serviços seguros que necessitam estar localmente para cumprir exigências regulatórias.
Lembras-te quando começamos a comparar servidores a gado? À medida que adicionamos mais servidores, percebemos que não podíamos mais gerenciá-los como antes, como se fossem animais de estimação. A chegada da nuvem nos levou a um novo patamar, no qual já não sabemos quantos servidores possuímos. Por isso, é essencial automatizar a infraestrutura de nuvem, a fim de garantir que nossos aplicativos possam se adaptar da melhor forma possível aos serviços nativos da nuvem que estão sendo utilizados.