Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Na infraestrutura de nuvem definida pelo 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 usar código e automação para provisionar, configurar e gerenciar infraestrutura e serviços.
Considerações sobre automação de plataforma
- Implementar a metodologia EaC (Tudo como Código) permite que suas equipes desbloqueiem os principais benefícios, criem uma cultura de desenvolvimento forte e permitam que todos em cada equipe inspecionem como e quais recursos são implantados. O EaC também ajuda suas equipes de plataforma a adotar práticas de desenvolvimento importantes que melhoram sua agilidade e eficiência. Suas equipes podem acompanhar as mudanças e controlar quais são movidas para produção armazenando código em repositórios e usando sistemas de controle de versão para gerenciá-lo.
- O Teams pode seguir o princípio de 4 olhos e usar a programação de pares ou a revisão de pares para garantir que as alterações de código nunca sejam feitas sozinhas. A programação de pares e a revisão de 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 para codificação e automação.
- As equipes devem usar sistemas de controle de versão como o Git, juntamente com repositórios Git, para garantir a revisão por pares. Os repositórios Git permitem que suas equipes definam branches importantes e os protejam com políticas de branch. Você pode usar a política de governança para exigir alterações de código nesses ramos para atender a determinados critérios, como um número mínimo de aprovações de membros da equipe, antes que eles possam mesclar com um ramo protegido.
- As equipes devem conectar a metodologia EaC e o processo de revisão de alterações juntamente com um processo de CI/CD (integração contínua e entrega contínua). Cada alteração de código deve disparar automaticamente um processo de CI que executa implantações de teste, validação e análise de código estático. A CI garante que os desenvolvedores verifiquem seu código antecipadamente (geralmente chamados de fail fast ou shift-left testing) em busca de erros que possam causar problemas futuros. Dependendo de qual estratégia de ramificação sua equipe usa, as alterações em qualquer branch importante devem disparar a implantação em ambientes diferentes. Depois que as alterações são aprovadas e integradas em
main, o processo de CD implanta essas alterações em produção. Esse sistema de gerenciamento de código fornece à sua equipe uma única fonte de verdade para o que está em execução em cada ambiente. - Para garantir que sua plataforma seja totalmente auto-recuperável e forneça autoatendimento para suas equipes de carga de trabalho, a equipe de plataforma deve trabalhar para automatizar tudo (geralmente chamado de Automação Extrema), desde o provisionamento, configuração e gerenciamento da plataforma até o provisionamento de assinaturas da "landing zone" para as 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 aprimoramento contínuo que proporciona à sua equipe mais tempo para desenvolver ainda 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 permitem e aceleram a inovação da equipe de carga de trabalho no Azure. Para isso, sua equipe de plataforma deve iterar por meio de vários ciclos de criação e desenvolvimento enquanto implementam as ferramentas, scripts e aprimoramentos de funcionalidades da plataforma.
- Várias opções estão disponíveis para ajudar sua equipe a iniciar a implantação da Zona de Pouso do Azure. Essas opções dependem dos recursos atuais da sua equipe e podem crescer à medida que sua equipe evolui. Mais especificamente, para Implantação de Plataforma, você pode escolher entre experiências no Portal, no Bicep ou no Terraform, dependendo da proficiência em Infraestrutura como Código (IaC) e da preferência de ferramentas das respectivas equipes.
- Equipes de plataforma novas e emergentes que ainda estão conhecendo IaC e estão familiarizadas com o uso de um portal para implantar e gerenciar recursos podem usar o acelerador do portal da zona de destino do Azure. Esse acelerador dá suporte a equipes que atualmente usam uma abordagem do ClickOps . O 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 uma ferramenta de implantação inicial. À medida que a maturidade da engenharia de plataforma aumenta, sua equipe pode incorporar gradualmente a CLI do Azure, o PowerShell ou o IaC.
- As equipes de plataforma com habilidades e funcionalidades estabelecidas podem adotar uma abordagem codificada que siga os princípios e as práticas do DevOps. Sua equipe deve se basear fortemente em IaC e práticas de desenvolvimento modernas, saindo do uso do acesso do Azure em suas contas pessoais e passando a realizar todas as operações por meio do pipeline de CI/CD. Sua equipe deve usar aceleradores baseados em IaC, como o acelerador IaC (Infraestrutura como Código) da zona de destino do Azure.
- 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 deverá considerar uma abordagem em camadas que começa com um acelerador e, em seguida, adicionar uma camada de automação. A camada de automação fornece recursos de que sua equipe precisa para dar suporte total às equipes de carga de trabalho com recursos de plataforma, como a implantação do controlador de domínio para aplicativos herdados.
- À medida que sua equipe de plataforma faz a transição para uma abordagem de DevOps, ela precisa estabelecer um processo para lidar com correções de emergência. Eles podem usar permissões qualificadas do PIM (Privileged Identity Management) para solicitar acesso e executar correções, trazendo-as 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 sempre deve registrar correções rápidas em sua lista de pendências para que ela possa retrabalhá-las em um ponto posterior e limitar sua dívida técnica. Muita dívida técnica leva a uma desaceleração futura, pois algum código de plataforma não é totalmente revisado e não atende à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 IaC para implantar e gerenciar políticas do Azure, geralmente conhecidas como PaC (Política como Código). 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 a "governança orientada por políticas" para sinalizar para as equipes de carga de trabalho quando estiverem tentando implantar recursos que não atendam a um controle de segurança. Considere implantar políticas com o
denyefeito para essas situações, o que permite que suas equipes de trabalho também tratem "Tudo como Código" e evitem o desvio de configuração, em que o código declara uma coisa, mas a política altera uma configuração no momento da implantação. Evite usarmodifyefeitos, como se uma equipe responsável pelo trabalho implantasse uma conta de armazenamento comsupportOnlyHttpsTraffic = falsedefinido em seu código, onde uma política demodifyaltera esse valor paratrueno momento da implantação para mantê-la em conformidade. Isso leva ao desvio do código em relação ao que é implantado.
Recomendação de design de automação de plataforma
- Siga uma abordagem De Tudo como Código para transparência total e controle de configuração do processo de plataforma, documentação, implantação e teste do Azure.
- Use o controle de versão para gerenciar todos os 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 em pares ou revisão por pares para garantir que todas as alterações de código sejam revisadas pela sua equipe antes de serem implantadas em produção.
- Adote uma estratégia de ramificação para sua equipe e defina políticas de branch para branches que você deseja proteger. Com as políticas de branch, as equipes devem usar pull requests para realizar mesclagens.
- Use a CI/CD (integração contínua e entrega contínua) para automatizar o teste de código e a implantação em ambientes diferentes.
- Trabalhe para automatizar tudo, como provisionamento, configuração e 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 zonas de destino do Azure.
- Planeje usar uma abordagem de implantação em camadas para adicionar recursos que não são cobertos por um acelerador, mas que 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 conhecidas como 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 estejam prontas para desbloquear as equipes quando necessário.
- Use "Governança Orientada por Políticas" para bloquear equipes de trabalho quando tentarem implantar recursos que não atendam a um controle de segurança. Isso ajuda a reduzir o descompasso de configuração, em que o código declara um estado diferente do que acaba sendo implantado.
Leia mais
- Adotar guardrails controlados por políticas
- Conceitos básicos do Bicep
- Bicep Intermediário
- Bíceps Avançado
- Usar o Bicep e o GitHub Actions para implantar recursos do Azure
- Usar o Bicep e o Azure Pipelines para implantar recursos do Azure
- Gerencie e governe seu ambiente do Azure implantando sua infraestrutura como um código