Recomendações para práticas de implantação seguras
Aplica-se a esta recomendação da lista de verificação de Excelência Operacional Bem Arquitetada: Power Platform
OE:10 | Defina claramente as práticas de implantação seguras da sua carga de trabalho. Enfatize os ideais de métodos de versão pequenos, incrementais e com critério de qualidade. Use padrões de implantação modernos para controlar riscos. Considere implantações de rotina e implantações de emergência ou de hotfix. |
---|
Este guia descreve as recomendações para usar práticas de implantação seguras. Os processos e procedimentos de implantação segura definem como fazer e implantar alterações em sua carga de trabalho com segurança. Implementá-los exige que você pense nas implantações sob a ótica do geranciamento de riscos. Você pode minimizar o risco de erro humano em suas implantações e limitar os efeitos de implantações problemáticas em seus usuários implementando essas práticas.
Estratégias-chave de design
Há diretrizes importantes a serem consideradas ao implementar práticas de implantação seguras:
- Segurança e consistência: Todas as alterações na carga de trabalho de produção são inerentemente arriscadas e devem ser feitas com foco na segurança e na consistência.
- Modelos de saúde: As implantações devem passar por verificações de saúde antes que cada fase de exposição progressiva possa começar.
- Detecção de problemas: Quando problemas são detectados, a implantação deve ser imediatamente interrompida e a recuperação iniciada.
As seções a seguir fornecem recomendações detalhadas sobre cada um desses pontos.
Segurança e consistência
Quer você esteja implantando uma atualização no código do seu aplicativo, infraestrutura como código (IaC), sinalizador de recurso ou configuração, você está introduzindo riscos à carga de trabalho. There não são implantações de baixo risco para produção. Cada implantação deve seguir um padrão e deve ser automatizada para impor consistência e minimizar o risco de erros humanos. É essencial que a cadeia de fornecedores da carga de trabalho e os pipelines de implantação sejam confiáveis, seguros e tenham padrões de implantação claramente definidos. Trate cada implantação como um possível risco e sujeite cada implantação ao mesmo nível de gerenciamento de riscos.
Apesar dos riscos, você deve continuar a implantar alterações regulares em sua carga de trabalho. A falha na implantação de atualizações regulares apresenta outros riscos, como vulnerabilidades de segurança, que devem ser abordadas por meio de implantações. Saiba mais em Recomendações para projetar um desenvolvimento de carga de trabalho cadeia de fornecedores.
Implantações pequenas frequentes são preferíveis a implantações grandes infrequentes. Pequenas alterações são mais fáceis de resolver quando surgem problemas e implantações frequentes ajudam sua equipe a criar confiança no processo de implantação. Também é importante que você aprenda com a produção revisando seus processos de carga de trabalho quando encontrar uma anomalia durante a implantação. Você pode encontrar pontos fracos no design de sua infraestrutura ou distribuição. Quando ocorrerem problemas durante as implantações, garanta que análises retrospectivas sem culpa sejam parte do seu processo para capturar lições sobre o incidente.
Modelos de integridade
Desenvolva um modelo de integridade robusto como parte de sua plataforma de monitoramento de observabilidade e estratégias de confiabilidade. Seu modelo de integridade deve fornecer visibilidade detalhada dos componentes e da integridade geral da carga de trabalho. Monitore as métricas de saúde de perto após uma implementação. Se você receber um alerta sobre uma alteração de integridade durante a implementação, investigue o problema imediatamente e determine o próximo curso de ação, como reverter a alteração. Se os usuários não relatarem problemas e todos os indicadores de saúde permanecerem verdes, a implementação deverá continuar. Não se esqueça de incluir métricas de uso no seu modelo de saúde para ajudar a garantir que a ausência de problemas relatados por usuários e sinais negativos de saúde não estejam escondendo um problema. Saiba mais em Recomendações para executar análise de modo de falha.
Detecção de problemas
Quando a implantação causar um problema em um dos grupos de distribuição, a distribuição deverá ser interrompida imediatamente. Investigue a causa do problema e a gravidade dos efeitos assim que o alerta for recebido. A recuperação do problema pode incluir:
- Reverter desfazendo as alterações feitas na implantação e retornando à última configuração funcional conhecida.
- Avançando abordando o problema durante a implementação. Você pode resolver problemas no meio da distribuição aplicando um hotfix ou minimizando o problema.
- Implantando nova infraestrutura usando a última configuração funcional conhecida.
A reversão de alterações, especialmente alterações de banco de dados, de esquema ou de outros componentes com estado, pode ser complexa. Suas diretrizes de práticas de implantação segura devem fornecer instruções claras sobre como lidar com alterações de dados de acordo com o design do conjunto de dados para sua carga de trabalho. Da mesma forma, o avanço deve ser feito com cuidado para garantir que os processos de implantação segura não sejam negligenciados e que o hotfix ou outros esforços de minimização sejam realizados com segurança.
Recomendações gerais
Implemente o controle de versão em seus artefatos de compilação para ajudar a garantir que você possa reverter e avançar quando necessário.
Use um fluxo de lançamento ou uma estrutura de ramificação baseada em tronco, que imponha a colaboração fortemente sincronizada em toda a equipe de desenvolvimento, em vez de um Gitflow ou uma estrutura de ramificação baseada em ambiente.
Automatize o máximo possível de suas práticas de implantação segura. Saiba mais em Recomendações para implementação de automação.
Use práticas de CI (integração contínua) para integrar regularmente alterações de código em repositórios. As práticas de CI podem ajudar você a identificar conflitos de integração e reduzir a probabilidade de mesclagens grandes e arriscadas. Saiba mais em Recomendações para integração contínua.
Use sinalizadores de recurso para habilitar ou desabilitar seletivamente novos recursos ou alterações na produção. Os sinalizadores de recurso podem ajudar você a controlar a exposição de novo código e reverter rapidamente a implantação, caso surjam problemas.
Implante alterações em ambientes de preparo que espelham seu ambiente de produção. Os ambientes de prática permitem que você teste as alterações em uma configuração controlada antes de implantá-las no ambiente ativo.
Estabeleça verificações pré-implantação, incluindo a revisão de código, verificações de segurança e verificações de conformidade, para ajudar a garantir que as alterações sejam seguras para implantação.
Implemente disjuntores para interromper automaticamente o tráfego para um serviço que esteja com problemas e ajudar a evitar maior degradação do sistema.
Protocolos de emergência
Estabeleça protocolos prescritivos que definam como seus processos de implantação segura podem ser ajustados para um hotfix ou para problemas de emergência, como uma violação de segurança ou exposição a vulnerabilidades. Por exemplo, seus protocolos de emergência podem incluir:
- Aceleração da fase de promoção e aprovação
- Aceleração de testes de fumaça e testes de integração
- Redução do tempo de cozimento
Em alguns casos, a emergência pode limitar os portões de qualidade e de teste, mas os portões ainda devem ser executados o mais rápido possível como um exercício fora de banda. Certifique-se de definir quem pode aprovar a aceleração da implantação segura em uma emergência e os critérios que devem ser atendidos para que a aceleração seja aprovada. Alinhar seus protocolos de emergência com seu plano de emergência resposta para ajudar a garantir que todas as emergências sejam tratadas de acordo com os mesmos protocolos.
Considerações
Criar e manter práticas de implantação seguras é complexo. Seu êxito na implementação completa de padrões robustos depende da maturidade de suas práticas em muitas áreas de desenvolvimento de software. O uso de automação, somente IaC para alterações de infraestrutura, consistência em estratégias de ramificação, sinalizadores de recursos e outras práticas podem ajudar a garantir uma implantação segura. Use este guia para otimizar sua carga de trabalho e embasar seus planos de melhoria à medida que suas práticas evoluem.
Facilitação do Power Platform
Microsoft Power Platform As ferramentas de construção para Azure DevOps podem ser usadas para automatizar tarefas comuns de construção e implantação relacionadas a aplicativos criados em Power Platform.
Ações do GitHub para Power Platform permitir que os desenvolvedores criem fluxos de trabalho automatizados do ciclo de vida de desenvolvimento de software. Com o GitHub Actions para Microsoft Power Platform, é possível criar fluxos de trabalho no repositório para compilar, testar, empacotar, lançar e implantar aplicativos; realizar automação e gerenciar bots e outros componentes compilados no Power Platform.
O ALM Accelerator é uma ferramenta de código aberto que consiste em um conjunto de aplicativos, scripts e pipelines projetados para automatizar o processo de integração contínua/entrega contínua.
Automatize testes com o Azure Pipelines.
Variáveis de ambiente em soluções armazenam as chaves e valores dos parâmetros, que então servem como entrada para outros objetos do aplicativo. Separar os parâmetros dos objetos de consumo permite alterar os valores dentro do mesmo ambiente ou ao migrar soluções para outros ambientes.
Power Platform ambientes fornecem funcionalidade de restauração pontual que pode ajudar você a reverter.