Automatização

Na infraestrutura de cloud definida pelo software, as equipas utilizam várias ferramentas e técnicas para aprovisionar, configurar e gerir a infraestrutura. À medida que as suas equipas evoluem e crescem, podem passar de portais e esforços manuais para utilizar código e automatização para aprovisionar, configurar e gerir infraestruturas e serviços.

Considerações sobre a automatização da plataforma

  • Implementar a metodologia Tudo como Código (EaC) permite que as suas equipas desbloqueiem os principais benefícios, criem uma cultura de desenvolvimento forte e permitam que todas as pessoas em cada equipa verifiquem como e que recursos são implementados. O EaC também ajuda as suas equipas de plataforma a adotar práticas de desenvolvimento fundamentais que melhoram a agilidade e a eficiência. As suas equipas podem controlar as alterações e controlar as alterações que são movidas para produção através do código de alojamento em repositórios e através de sistemas de controlo de versões para a gerir.
  • O Teams pode seguir o princípio de quatro olhos e utilizar a programação ponto a ponto ou a revisão ponto a ponto para garantir que as alterações ao código nunca são feitas sozinhas. A programação entre elementos e a revisão ponto a ponto melhoram a qualidade do código, permitem que as equipas partilhem a responsabilidade pelas alterações e aumentem o conhecimento da equipa sobre o que é acordado e implementado. A revisão de código é uma forma fantástica de os membros da equipa aprenderem novas técnicas e métodos de codificação e automatização.
  • O Teams deve utilizar sistemas de controlo de versões como o Git, juntamente com repositórios git, para impor a revisão ponto a ponto. Os repositórios git permitem que as suas equipas definam ramos importantes e os protejam com políticas de ramo. Pode utilizar a política para exigir alterações de código nestes ramos para cumprir determinados critérios, como um número mínimo de aprovações de membros da equipa, antes de poderem intercalar num ramo protegido.
  • O Teams deve ligar a metodologia do 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 a análise de código estático, a validação e as implementações de teste. A CI garante que os programadores verificam o código mais cedo (muitas vezes referido como teste rápido ou de mudança para a esquerda) para erros que podem causar problemas futuros. Consoante a estratégia de ramificação que a sua equipa utiliza, as alterações a qualquer ramo importante devem acionar a implementação em diferentes ambientes. Assim que as alterações forem aprovadas e intercaladas no main, o processo de CD implementa essas alterações na produção. Este sistema de gestão de código fornece à sua equipa uma única fonte de verdade para o que está em execução em cada ambiente.
  • Para garantir que a sua plataforma está totalmente autorrecuperada e fornece gestão personalizada para as suas equipas de cargas de trabalho, a sua equipa de plataforma tem de trabalhar para automatizar tudo (muitas vezes conhecido como Extreme Automation) do aprovisionamento, configuração e gestão da plataforma ao aprovisionamento de subscrições de zona de destino para equipas de cargas de trabalho. A automatização extrema permite que a sua equipa de plataforma se concentre em fornecer valor em vez de implementar, configurar e gerir a sua plataforma. A automatização extrema também cria um ciclo de auto-otimização que dá mais tempo à sua equipa para criar mais automatização.
  • À medida que as equipas da plataforma automatizam as atividades operacionais e reduzem a intervenção humana, devem mudar o foco para tarefas importantes que permitam e acelerem a inovação da equipa de cargas de trabalho no Azure. Para tal, a sua equipa de plataforma tem de iterar vários ciclos de criação e desenvolvimento à medida que colocam em prática as ferramentas, scripts e melhorias de capacidade da sua plataforma.
  • Existem várias opções disponíveis para ajudar a sua equipa a começar a utilizar a implementação da Zona de Destino do Azure. Estas opções dependem das capacidades atuais da equipa e podem crescer à medida que a sua equipa evolui. Mais especificamente, para a Implementação da Plataforma, pode escolher entre experiências baseadas no Portal, Bicep ou Terraform, consoante a proficiência IaC e a preferência de ferramentas do IaC das respetivas Equipas.
    • As equipas de plataformas novas e emergentes que ainda estão a conhecer a Infraestrutura como Código (IaC) e estão mais familiarizadas com a utilização de um portal para implementar e gerir recursos podem utilizar o acelerador de zonas de destino do Azure para iniciar, o que suporta as equipas que ainda utilizam uma abordagem ClickOps . O ClickOps é o processo de aprovisionamento, configuração e gestão de recursos ao clicar em portais, consolas de gestão e assistentes. Este acelerador permite que a sua equipa utilize o portal como ferramenta de implementação inicial e, progressivamente, à medida que aumenta a maturidade da engenharia da plataforma, utilize ainda mais a CLI do Azure, o PowerShell ou o IaC.
    • A solução do AzOps permite que as equipas evoluam as respetivas práticas de automatização e gestão da plataforma, desde o ClickOps orientado para o DevOps . A sua equipa pode fazer a transição da utilização do acesso à conta pessoal para utilizar princípios e práticas de DevOps que dependem apenas da CI/CD com o AzOps e o IaC. O AzOps permite que a sua equipa traga a sua própria arquitetura, utilize a arquitetura implementada pelo acelerador do Portal da Zona de Destino do Azure (após a implementação inicial baseada no portal, uma vez que a integração do AzOps não faz parte da experiência do Portal ALZ), integre com uma implementação brownfield ou utilize modelos personalizados (Bicep ou ARM) para criar e operacionalizar a sua plataforma.
    • As equipas de plataforma com competências e capacidades estabelecidas podem adotar uma abordagem codificada que siga os princípios e práticas do DevOps. A sua equipa deve basear-se fortemente no IaC e nas práticas de desenvolvimento modernas, ao fazer a transição para longe de utilizar o acesso do Azure nas suas contas pessoais e para executar todas as operações através do pipeline ci/CD. A sua equipa deve utilizar aceleradores baseados em IaC, como ALZ-Bicep ou o módulo Terraform das zonas de destino do Azure para acelerar esta transição.
  • Os aceleradores baseados em IaC têm um âmbito de gestão limitado. As novas versões fornecem mais capacidades e uma maior capacidade de gestão de recursos. Se utilizar um acelerador, a sua equipa deve considerar uma abordagem em camadas que começa com um acelerador e, em seguida, adiciona uma camada de automatização. A camada de automatização fornece capacidades de que a sua equipa precisa para suportar totalmente as suas equipas de cargas de trabalho com funcionalidades de plataforma, como a implementação do controlador de domínio para aplicações legadas.
  • À medida que a sua equipa de plataforma transita para uma abordagem de DevOps, tem de estabelecer um processo para processar correções de emergência. Podem utilizar permissões elegíveis Privileged Identity Management (PIM) para pedir acesso para efetuar correções e, posteriormente, trazê-la de volta ao código para limitar o desvio de configuração ou podem utilizar código para implementar uma correção rápida. A sua equipa deve sempre registar correções rápidas nos respetivos registos pendentes para que possa reformular cada correção mais tarde e limitar a dívida técnica. Demasiada dívida técnica leva a uma desaceleração futura, uma vez que alguns códigos de plataforma não são totalmente revistos e não cumprem as diretrizes e princípios de codificação da equipa.
  • Pode utilizar as Políticas do Azure para adicionar alguma automatização à sua plataforma. Considere utilizar a IaC para implementar e gerir políticas do Azure, muitas vezes referidas como Política como Código (PaC). Estas políticas permitem-lhe automatizar atividades como a recolha de registos. Muitas arquiteturas PaC também implementam um processo de isenção, por isso, planeie que as suas equipas de carga de trabalho solicitem isenções de políticas.
  • Utilize "Governação orientada por políticas" para sinalizar para as equipas de cargas de trabalho quando estiverem a tentar implementar recursos que não cumprem um controlo de segurança. Considere implementar políticas com o efeito para estas situações, o deny que permite que as suas equipas de carga de trabalho também tratem Tudo como Código e evitem o desfasamento de configuração em que o código declara uma coisa e a política alterou uma definição no momento da implementação. Evite utilizar modify efeitos, como, por exemplo, se uma equipa de carga de trabalho implementar uma conta de armazenamento com supportOnlyHttpsTraffic = false definida no respetivo código, em que uma modify política muda para true no momento da implementação para mantê-la em conformidade. Isto faz com que o código desfase do que é implementado.

Recomendação de design da automatização da plataforma

  • Siga uma abordagem Tudo como Código para ter total transparência e controlo de configuração do processo de plataforma, documentação, implementação e teste do Azure.
  • Utilize o controlo de versões para gerir todos os repositórios de código, incluindo:
    • Infraestrutura como Código
    • Política como Código
    • Configuração como Código
    • Implementação como Código
    • Documentação como Código
  • Implemente o princípio de quatro olhos e um processo de programação ponto a ponto ou revisão ponto a ponto para garantir que todas as alterações de código são revistas pela sua equipa antes de serem implementadas na produção.
  • Adote uma estratégia de ramificação para a sua equipa e defina políticas de ramificação para ramos que pretende proteger. Com as políticas de ramo, as equipas têm de utilizar pedidos Pull para fazer alterações de intercalação.
  • Utilize a integração contínua e a entrega contínua (CI/CD) para automatizar o teste de código e a implementação em diferentes ambientes.
  • Trabalhe para automatizar tudo, como o aprovisionamento, a configuração e a gestão da sua plataforma e o aprovisionamento de subscrições de zona de destino para as suas equipas de carga de trabalho.
  • Utilize um dos aceleradores disponíveis que corresponda às capacidades da sua equipa para começar a implementar Zonas de Destino do Azure.
  • Planeie utilizar uma abordagem de implementação em camadas para adicionar capacidades que não são abrangidas por um acelerador, mas que são necessárias para suportar totalmente as suas equipas de cargas de trabalho.
  • Estabeleça um processo para utilizar código para implementar correções rápidas. Registe sempre correções rápidas no registo de tarefas pendentes da sua equipa para que cada correção possa ser reformulada mais tarde e pode limitar a dívida técnica.
  • Utilizar a Infraestrutura como Código para implementar e gerir políticas do Azure (muitas vezes denominada Política como Código)
  • Implementar um processo de isenção para políticas. Planeie que as suas equipas de carga de trabalho peçam isenções às políticas e estejam prontas para desbloquear as equipas quando necessário.
  • Utilize "Governação orientada por políticas" para bloquear as equipas de cargas de trabalho quando tentarem implementar recursos que não cumprem um controlo de segurança. Isto ajuda a reduzir o desfasamento da configuração, em que o código declara um estado diferente do que acaba por ser implementado.

Saiba mais