Partilhar via


Automatização

Na infraestrutura de nuvem definida por software, as equipes usam várias ferramentas e técnicas para provisionar, configurar e gerenciar a infraestrutura. À medida que suas equipes evoluem e crescem, elas podem fazer a transição do uso de portais e esforços manuais para o uso de código e automação para provisionar, configurar e gerenciar infraestrutura e serviços.

Considerações sobre automação da plataforma

  • A implementação da metodologia Tudo como Código (EaC) permite que suas equipes desbloqueiem os principais benefícios, criem uma forte cultura de desenvolvimento e permitam que todos em cada equipe inspecionem como e quais recursos são implantados. O EaC também ajuda as equipes da sua plataforma a adotar as principais práticas de desenvolvimento que melhoram sua agilidade e eficiência. Suas equipes podem acompanhar as alterações e controlar quais passam para a produção por código de alojamento em repositórios e usando sistemas de controle de versão para gerenciá-la.
  • As equipes podem seguir o princípio dos 4 olhos e usar a programação por pares ou a revisão por pares para garantir que as alterações de código nunca sejam feitas sozinhas. A programação e a revisão por pares melhoram a qualidade do código, permitem que as equipes compartilhem a responsabilidade pelas alterações e aumentem o conhecimento da equipe sobre o que é acordado e implantado. A revisão de código é uma maneira fantástica para os membros da equipe aprenderem novas técnicas e métodos de codificação e automação.
  • As equipes devem usar sistemas de controle de versão como o Git, juntamente com repositórios Git, para impor a revisão por pares. Os repositórios Git permitem que suas equipes definam ramificações importantes e as protejam com políticas de filiais. Você pode usar a política para exigir alterações de código nessas ramificações para atender a determinados critérios, como um número mínimo de aprovações de membros da equipe, antes que eles possam se fundir em uma ramificação protegida.
  • As equipas devem ligar a metodologia EaC e o processo de revisão de alterações juntamente com um processo de integração contínua e entrega contínua (CI/CD). Cada alteração de código deve acionar automaticamente um processo de CI que executa análises de código estático, validação e implantações de teste. A CI garante que os desenvolvedores verifiquem seu código antecipadamente (muitas vezes chamado de teste de falha rápida ou shift-left) em busca de erros que possam causar problemas futuros. Dependendo da estratégia de ramificação usada pela equipe, as alterações em qualquer ramificação importante devem desencadear a implantação em ambientes diferentes. Depois que as alterações são aprovadas e mescladas no main, o processo de CD implanta essas alterações na produção. Este sistema de gerenciamento de código fornece à sua equipe uma única fonte de verdade para o que está sendo executado em cada ambiente.
  • Para garantir que sua plataforma seja totalmente autorrecuperável e forneça autosserviço para suas equipes de carga de trabalho, sua equipe de plataforma deve trabalhar para automatizar tudo (geralmente chamado de automação extrema), desde provisionamento, configuração e gerenciamento de plataforma até o provisionamento de assinatura de zona de destino para equipes de carga de trabalho. A automação extrema permite que sua equipe de plataforma se concentre em fornecer valor em vez de implantar, configurar e gerenciar sua plataforma. A automação extrema também cria um ciclo de autoaperfeiçoamento que dá à sua equipe mais tempo para construir mais automação.
  • À medida que suas equipes de plataforma automatizam atividades operacionais e reduzem a intervenção humana, elas devem mudar seu foco para tarefas importantes que habilitam e aceleram a inovação da equipe de carga de trabalho no Azure. Para conseguir isso, sua equipe de plataforma deve iterar através de vários ciclos de construção e desenvolvimento à medida que colocam em prática as ferramentas, scripts e aprimoramentos de recursos da sua plataforma.
  • Há várias opções disponíveis para ajudar sua equipe a começar a implantação da Zona de Pouso do Azure. Essas opções dependem das capacidades atuais da equipe e podem crescer à medida que sua equipe evolui. Mais especificamente, para Implantação de Plataforma, pode-se escolher entre experiências baseadas em Portal, Bicep ou Terraform, dependendo da proficiência em IaC e da preferência de ferramentas das respetivas equipes.
    • As equipes de plataforma novas e emergentes que ainda estão conhecendo a Infraestrutura como Código (IaC) e estão mais familiarizadas com o uso de um portal para implantar e gerenciar recursos podem usar o acelerador de zona de aterrissagem do Azure para iniciar, que dá suporte às equipes que ainda usam uma abordagem ClickOps. ClickOps é o processo de provisionamento, configuração e gerenciamento de recursos clicando em portais, consoles de gerenciamento e assistentes. Esse acelerador permite que sua equipe use o portal como ferramenta de implantação inicial e, progressivamente, à medida que a maturidade da engenharia da plataforma cresce, use ainda mais a CLI do Azure, o PowerShell ou o IaC.
    • A solução AzOps permite que as equipes evoluam suas práticas de automação e gerenciamento de plataforma de ClickOps orientadas para DevOps capazes . Sua equipe pode fazer a transição do uso do acesso à conta pessoal para o uso dos princípios e práticas de DevOps confiando apenas em CI/CD com AzOps e IaC. O AzOps permite que sua equipe traga sua própria arquitetura, use a arquitetura implantada pelo acelerador do Portal da Zona de Aterrissagem do Azure (após a implantação inicial baseada em portal, já que a integração do AzOps não faz parte da experiência do Portal ALZ), integre com uma implantação brownfield ou use modelos personalizados (Bicep ou ARM) para criar e operacionalizar sua plataforma.
    • As equipes de plataforma com habilidades e capacidades estabelecidas podem adotar uma abordagem codificada que segue os princípios e práticas de DevOps. Sua equipe deve se basear fortemente em IaC e práticas de desenvolvimento modernas, deixando de usar o acesso do Azure em suas contas pessoais e passando a executar todas as operações por meio de seu pipeline de CI/CD. Sua equipe deve usar aceleradores baseados em IaC, como ALZ-Bicep ou o módulo Terraform de zonas de pouso do Azure para acelerar essa transição.
  • Os aceleradores baseados em IAC têm escopo de gerenciamento limitado. As novas versões fornecem mais recursos e maior capacidade de gerenciamento de recursos. Se estiver usando um acelerador, sua equipe deve considerar uma abordagem em camadas que começa com um acelerador e, em seguida, adiciona uma camada de automação. A camada de automação fornece os recursos de que sua equipe precisa para dar suporte total às equipes de carga de trabalho com recursos de plataforma, como a implantação de controlador de domínio para aplicativos herdados.
  • À medida que sua equipe de plataforma faz a transição para uma abordagem de DevOps, eles precisam estabelecer um processo para lidar com correções de emergência. Eles podem usar permissões qualificadas do Privileged Identity Management (PIM) para solicitar acesso para executar correções e, posteriormente, trazê-lo de volta ao código para limitar o desvio de configuração, ou podem usar o código para implementar uma correção rápida. Sua equipe deve sempre registrar correções rápidas em sua lista de pendências para que possam retrabalhar cada correção em um ponto posterior e limitar sua dívida técnica. Muita dívida técnica leva a desaceleração futura, uma vez que alguns códigos de plataforma não são totalmente revisados e não atendem às diretrizes e princípios de codificação da equipe.
  • Você pode usar as Políticas do Azure para adicionar alguma automação à sua plataforma. Considere usar o IaC para implantar e gerenciar as Políticas do Azure, geralmente chamadas de Política como Código (PaC). Essas políticas permitem automatizar atividades como a coleta de logs. Muitas estruturas de PaC também implementam um processo de isenção, portanto, planeje que suas equipes de carga de trabalho solicitem isenções de políticas.
  • Use "Governança orientada por políticas" para sinalizar às equipes de carga de trabalho quando elas estiverem tentando implantar recursos que não atendem a um controle de segurança. Considere a implantação de políticas com o efeito para essas situações, o que permite que suas equipes de carga de trabalho também tratem Tudo como Código e evitem desvios de configuração em que o código declara uma coisa e a deny política altera uma configuração no momento da implantação. Evite usar modify efeitos, como se uma equipe de carga de trabalho implantar uma conta de armazenamento com supportOnlyHttpsTraffic = false definido em seu código, onde uma modify política altera isso no true momento da implantação para mantê-la em conformidade. Isso leva o desvio de código do que é implantado.

Recomendação de projeto de automação de plataforma

  • Siga uma abordagem Tudo como Código para total transparência e controle de configuração da plataforma Azure, documentação, implantação e processo de teste.
  • Use o controle de versão para gerenciar todos os seus repositórios de código, incluindo:
    • Infraestrutura como Código
    • Política como Código
    • Configuração como código
    • Implantação como código
    • Documentação como código
  • Implemente o princípio dos 4 olhos e um processo de programação ou revisão por pares para garantir que todas as alterações de código sejam revisadas pela sua equipe antes de serem implantadas na produção.
  • Adote uma estratégia de ramificação para sua equipe e defina políticas de ramificação para ramificações que você deseja proteger. Com as políticas de ramificação, as equipes devem usar solicitações pull para fazer alterações de mesclagem.
  • Use a integração contínua e a entrega contínua (CI/CD) para automatizar o teste de código e a implantação em diferentes ambientes.
  • Trabalhe para automatizar tudo, como o provisionamento, a configuração e o gerenciamento de sua plataforma e o provisionamento de assinaturas de zona de destino para suas equipes de carga de trabalho.
  • Use um dos aceleradores disponíveis que corresponda aos recursos da sua equipe para começar a implantar as Zonas de Aterrissagem do Azure.
  • Planeje usar uma abordagem de implantação em camadas para adicionar recursos que não são cobertos por um acelerador, mas são necessários para dar suporte total às suas equipes de carga de trabalho.
  • Estabeleça um processo para usar o código para implementar correções rápidas. Sempre registre correções rápidas na lista de pendências da sua equipe para que cada correção possa ser retrabalhada em um ponto posterior e você possa limitar a dívida técnica.
  • Usar a Infraestrutura como Código para implantar e gerenciar Políticas do Azure (geralmente chamadas de Política como Código)
  • Implementar um processo de isenção para políticas. Planeje que suas equipes de carga de trabalho solicitem isenções de políticas e esteja pronto para desbloquear as equipes quando necessário.
  • Use a "governança orientada por políticas" para bloquear as equipes de carga de trabalho quando elas tentarem implantar recursos que não atendem a um controle de segurança. Isso ajuda a reduzir o desvio de configuração, onde o código declara um estado diferente do que acaba sendo implantado.

Saiba mais