Recomendações para estruturar uma cadeia de fornecimento de desenvolvimento de carga de trabalho
Aplica-se a esta Power Platform recomendação de lista de verificação de Excelência Operacional bem arquitetada:
OE:06 | Crie uma cadeia de fornecimento de carga de trabalho que fomente as alterações propostas através de pipelines previsíveis e automatizados. Os pipelines testam e promovem essas alterações nos ambientes. Otimize um cadeia de fornecimento para tornar sua carga de trabalho confiável, segura, econômica e eficiente. |
---|
Este guia descreve as recomendações para estruturar uma cadeia de fornecimento de desenvolvimento da carga de trabalho baseada em pipelines de integração contínua e entrega contínua (CI/CD). Em cargas de trabalho na nuvem, uma cadeia de fornecimento é um conjunto padronizado de ferramentas e processos que usa para afetar a configuração e a alteração da carga de trabalho nos ambientes. Desenvolva uma cadeia de fornecimento para garantir que tem um método previsível e padronizado de manter a sua carga de trabalho. Os pipelines de CI/CD são a manifestação da cadeia de fornecimento, mas deve ter uma única cadeia de fornecimento. Você pode ter vários pipelines que seguem os mesmos processos e usam as mesmas ferramentas.
Incorpore uma cadeia de fornecimento para proteger a sua carga de trabalho dos danos que possam ocorrer quando não efetua a gestão adequada das alterações à carga de trabalho. Esteja sempre atento ao estado da sua carga de trabalho, para que não corra o risco de ter um comportamento imprevisível. Esse risco aumenta se você precisar gastar tempo crítico refazendo alterações não contabilizadas quando surgirem problemas. Para minimizar esses riscos, padronize os processos e as ferramentas que definem a sua cadeia de fornecimento e garanta que a sua equipa de carga de trabalho se compromete totalmente a utilizá-los.
Principais estratégias de design
As seguintes recomendações podem ajudá-lo a definir os princípios básicos da sua cadeia de fornecimento.
Faça as alterações propostas à carga de trabalho através de processos e ferramentas da cadeia de fornecimento. Aplique uma política estrita de implementações automatizadas baseadas em modelos. Este método ajuda a garantir que a configuração da carga de trabalho em todos os ambientes é padronizada, bem definida e rigorosamente controlada. Para ambientes numa cadeia de promoção de código, não efetue atualizações utilizando processos manuais ou interação humana. Incorpore todas as alterações ao ambiente através de um pipeline seguindo as práticas de implementação que definir. Para ajudar a aplicar esta política, considere limitar o acesso só de leitura como predefinição e usar uma porta de autorização de acesso para permitir o acesso à escrita.
Um aspeto importante deste princípio é que todas as alterações são alterações propostas até serem implementadas em produção. Através de testes automatizados, como integração e testes de verificação de funcionamento, permite que a sua cadeia de fornecimento rejeite automaticamente as alterações.
Utilize um conjunto de ativos e artefactos de código em todos os ambientes e pipelines. Um ponto de tensão comum para as organizações é quando os ambientes de não produção são diferentes dos ambientes de produção. Criar manualmente ambientes de produção e de não produção pode resultar em configurações incompatíveis entre os ambientes. Esta incompatibilidade retarda os testes e aumenta a probabilidade de que as alterações possam prejudicar um sistema de produção.
Reflita a sua estrutura organizacional nos seus projetos de cadeia de fornecimento e pipeline. A sua organização pode estar repartida em silos entre as equipas. Cada equipa poderá gerir uma parte da cadeia de fornecimento. Por exemplo, muitas organizações têm equipas que gerem as definições de segurança e conformidade, ou configurações de ambiente. Estas equipas são separadas das equipas de programação que gerem a programação de aplicações, testes e implementações. Há muitas maneiras de organizar as equipas envolvidas numa cadeia de fornecimento. A sua cadeia de fornecimento conta com todas as equipas que trabalham em conjunto. Garanta que todas as equipas seguem os processos padrão e usam ferramentas padrão para tornar a cadeia de fornecimento o mais eficiente possível.
Seu cadeia de fornecimento pode depender de fornecedores terceirizados se você terceirizar partes do ciclo de vida da carga de trabalho. Esses fornecedores são tão críticos para o sucesso do seu cadeia de fornecimento quanto os recursos internos. Certifique-se de que há um acordo mútuo entre todas as equipes sobre os processos e ferramentas que você usa.
Padronize o seu método de implementação. Fale com o proprietário do produto sobre a quantidade aceitável de tempo de inatividade de produção para a sua carga de trabalho. Dependendo da quantidade, se houver, de tempo de inatividade aceitável, pode escolher o método de implementação ideal para as suas necessidades. Idealmente, deve executar as implementações durante uma janela de manutenção para reduzir a complexidade e o risco.
Planeie uma estratégia de teste holística. Um princípio fundamental da fiabilidade do sistema é o princípio do "desvio para a esquerda". Desenvolver e implementar uma aplicação é um processo descrito como uma série de passos que vão da esquerda para a direita. Não deve limitar os testes até ao final do processo. Na medida do possível, desloque o teste para o início ou para a esquerda. Os erros são mais baratos de reparar quando os deteta cedo. Eles podem ser caros ou impossíveis de corrigir mais tarde no ciclo de vida do aplicativo.
Sempre que possível, utilize testes automatizados para garantir a consistência. Inclua os seguintes tipos de teste na estruturação da cadeia de fornecimento:
Teste de unidade: Os testes de unidade são normalmente executados como parte de uma rotina de integração contínua. Os testes de unidade devem ser extensivos e rápidos. Idealmente, devem cobrir 100 por cento do código. Aplique testes de unidade a todos os ativos de código, incluindo modelos e scripts.
Teste de fumaça: Os testes de fumaça verificam se uma carga de trabalho pode ser mantida em um ambiente de teste e tem o desempenho esperado. Os testes de verificação de funcionamento não verificam a interoperabilidade dos componentes. Os testes de verificação de funcionamento verificam se a metodologia de implementação da infraestrutura e da aplicação funciona, e se o sistema responde como pretendido após a conclusão do processo.
Teste de integração: os testes de integração garantem que os componentes do aplicativo operem individualmente e, em seguida, determinem se os componentes podem interagir uns com os outros como deveriam. Pode demorar algum tempo para executar um conjunto grande de testes de integração. É por isso que é melhor incorporar o princípio shift-left e realizar testes no início do ciclo de vida de desenvolvimento de software. Reserve os testes de integração para cenários que não pode testar com um teste de verificação de funcionamento ou teste de unidade. Pode executar processos de teste de execução prolongada com um intervalo regular, se necessário. Um intervalo regular oferece um bom compromisso e deteta problemas de interoperabilidade entre os componentes da aplicação o mais tardar um dia após a sua introdução. Alguns cenários de teste beneficiam de execuções manuais. Use testes manuais quando precisar de introduzir elementos de interatividade humana nos testes.
Teste de aceitação: Dependendo do contexto, você pode executar manualmente testes de aceitação. Pode ser parcial ou totalmente automatizado. Os testes de aceitação determinam se o sistema de software corresponde às especificações do requisito. O principal objetivo deste teste é avaliar a conformidade do sistema com os requisitos de negócios e determinar se o sistema atende aos critérios exigidos para entrega aos usuários.
Implemente portas de qualidade em todo o seu processo de promoção de código através de testes. Implemente o seu código em ambientes mais baixos, como garantia de qualidade e testes, e em ambientes mais altos, como teste e produção. À medida que a sua implementação passa por portas de qualidade, certifique-se de que cumpre os seus objetivos de qualidade antes que as alterações entrem em produção. Os seus requisitos de negócios determinam qual é o foco das suas portas de qualidade. Considere também os princípios fundamentais Power Platform do Well-Architected: Segurança, Confiabilidade e Eficiência de Desempenho.
Integre também fluxos de trabalho de aprovação nas suas portas de qualidade. Defina e automatize claramente os fluxos de trabalho de aprovação quando apropriado. Defina critérios de aceitação de qualidade em sua automação, para que você possa passar por seus portões de forma eficiente e segura.
Facilitação do Power Platform
Os pipelines visam Power Platform democratizar o gerenciamento do ciclo de vida dos aplicativos (ALM) para Power Platform e Dynamics 365 clientes, trazendo automação de ALM e recursos de integração contínua e entrega contínua (CI/CD) para o serviço.
Microsoft Power Platform O Build Tools for Azure DevOps pode ser usado para automatizar tarefas comuns de compilação e implantação relacionadas a aplicativos criados Power Platform.
Ações do GitHub para Power Platform permitir que os desenvolvedores criem fluxos de trabalho automatizados do ciclo de vida do desenvolvimento de software. Com as Ações GitHub para o Microsoft Power Platform, pode criar fluxos de trabalho no seu repositório para criar, testar, empacotar, lançar e implementar aplicações; executar automatização; e gerir bots e outros componentes criados 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.
Power Apps A API Web do verificador fornece um mecanismo para executar verificações de análise estática em relação a personalizações e extensões para a Microsoft Dataverse plataforma.
Microsoft Power Platform CLI (PAC CLI) é uma ferramenta de linha de comando que suporta a importação e exportação de Power Platform soluções, e empacotamento e descompactação de arquivos de origem de Power Platform soluções. A PAC CLI está disponível como uma ferramenta de linha de comando autônoma ou como uma extensão para o código Visual Studio .
Pode usar o Terraform, Bicep e Azure Resource Manager para implementações de infraestrutura imutável como código (IaC). Dependendo dos seus requisitos e da familiaridade da sua equipa com as ferramentas, poderá utilizar uma ou mais destas ferramentas para as suas implementações e gestão dos recursos.
Alinhamento organizacional
O Cloud Adoption Framework fornece orientação para que as equipas centrais forneçam zonas de destino de carga de trabalho. As zonas de aterragem da carga de trabalho são onde o cadeia de fornecimento personalizado da carga de trabalho implanta aplicativos.
Saiba mais em O que é uma zona de aterragem do Azure? e os princípios de design da zona de aterragem doAzure.