Compartilhar via


Recomendações para projetar uma cadeia de fornecedores de desenvolvimento de carga de trabalho

Aplica-se a esta recomendação da lista de verificação de Excelência Operacional Bem Arquitetada: Power Platform

OE:06 Compile uma cadeia de fornecedores da carga de trabalho que impulsione as alterações propostas por meio de pipelines previsíveis e automatizados. Os pipelines testam e promovem essas alterações em todos os ambientes. Otimize um cadeia de fornecedores para tornar sua carga de trabalho confiável, segura, econômica e de alto desempenho.

Este guia descreve as recomendações para projetar uma cadeia de fornecedores de desenvolvimento de 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 fornecedores é um conjunto padronizado de ferramentas e processos que você usa para afetar a configuração e a alteração da carga de trabalho nos ambientes. Desenvolva uma cadeia de fornecedores para garantir que você tenha um método previsível e padronizado de manter sua carga de trabalho. Os pipelines de CI/CD são a manifestação da cadeia de fornecedores, mas você deve ter uma única cadeia de fornecedores. Você pode ter vários pipelines que seguem os mesmos processos e usam as mesmas ferramentas.

Incorpore uma cadeia de fornecedores para proteger sua carga de trabalho contra danos que podem ocorrer quando você não gerencia adequadamente as alterações na carga de trabalho. Esteja sempre ciente do estado da sua carga de trabalho para não correr o risco de sofrer com comportamentos imprevisíveis. Esse risco aumenta se você precisar gastar um tempo crítico recuperando alterações não contabilizadas quando surgem problemas. Para minimizar esses riscos, padronize os processos e as ferramentas que definem sua cadeia de fornecedores e garanta que sua equipe de carga de trabalho se comprometa totalmente com seu uso.

Estratégias-chave de design

As recomendações a seguir podem ajudá-lo a definir os princípios básicos de sua cadeia de fornecedores.

Faça alterações de carga de trabalho propostas por meio de processos e ferramentas da cadeia de fornecedores. Aplique uma política rigorosa de implantações automatizadas baseadas em modelos. Esse método ajuda a garantir que a configuração da carga de trabalho em todos os ambientes seja padronizada, bem definida e totalmente controlada. Para ambientes em uma cadeia de promoção de código, não realize atualizações usando processos manuais ou interação humana. Incorpore todas as alterações no ambiente por meio de um pipeline seguindo as práticas de implantação que você definir. Para ajudar a impor essa política, limite o acesso a somente leitura como padrão e usar um portão de autorização de acesso para permitir acesso de gravação.

Um aspecto importante desse princípio é que todas são alterações propostas até que sejam implantadas em produção. Por meio de testes automatizados, como integração e smoke test, você permite que sua cadeia de fornecedores rejeite alterações automaticamente.

Use um conjunto de ativos e artefatos de código em todos os ambientes e pipelines. Um problema comum para as organizações é quando os ambientes de não produção são diferentes dos ambientes de produção. Criar ambientes de produção e de não produção manualmente pode resultar em configurações incompatíveis entre os ambientes. Essa incompatibilidade retarda o teste e torna mais provável que as alterações possam prejudicar um sistema de produção.

Reflita sua estrutura organizacional em seus projetos de cadeia de fornecedores e pipeline. Sua organização pode estar isolada entre as equipes. Cada equipe pode gerenciar uma parte da cadeia de fornecedores. Por exemplo, muitas organizações têm equipes que gerenciam configurações de segurança e conformidade, ou configurações de ambiente. Essas equipes são separadas das equipes de desenvolvimento que gerenciam o desenvolvimento, teste e implantações de aplicativos. Existem muitas maneiras de organizar as equipes envolvidas em uma cadeia de fornecedores. Sua cadeia de fornecedores depende de todas as equipes trabalhando perfeitamente juntas. Garantir que todas as equipes sigam processos padrão e usem ferramentas padrão para tornar a cadeia de fornecedores o mais eficiente possível.

Seu cadeia de fornecedores pode depender de fornecedores terceirizados se você terceirizar partes do ciclo de vida da carga de trabalho. Esses fornecedores são tão essenciais para o sucesso do seu cadeia de fornecedores quanto os recursos internos. Garanta o acordo mútuo de There entre todas as equipes sobre os processos e ferramentas que você usa.

Padronize seu método de implantação. Converse com o proprietário do produto sobre a quantidade aceitável de tempo de inatividade da produção para sua carga de trabalho. Dependendo de quanto, se houver, o tempo de inatividade é aceitável, você pode escolher o método de implantação certo para seus requisitos. O ideal é executar implantações durante uma janela de manutenção para reduzir a complexidade e os riscos.

Planeje uma estratégia de teste holística. Um princípio fundamental da confiabilidade do sistema é o "deslocamento para a esquerda". Desenvolver e implantar um aplicativo é um processo descrito como uma série de etapas da esquerda para a direita. Você não deve limitar os testes ao final do processo. Na medida do possível, mude o teste para o início, ou para a esquerda. Os erros são mais baratos de reparar quando você os detecta cedo. Eles podem ser caros ou impossíveis de consertar mais tarde no ciclo de vida do aplicativo.

Quando possível, use testes automatizados para garantir a consistência. Inclua os seguintes tipos de teste no design da cadeia de fornecedores:

  • Testes unitários: os testes unitários geralmente são executados como parte de uma rotina de integração contínua. Os testes de unidade devem ser extensos e rápidos. O ideal é que eles cubram 100% 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 suportada em um ambiente de teste e se funciona conforme o esperado. Os smoke tests não verificam a interoperabilidade dos componentes. Os smoke tests verificam se a metodologia de implantação para a infraestrutura e a aplicação funciona e se o sistema responde como pretendido após o término do processo.

  • Teste de integração: os testes de integração garantem que os componentes do aplicativo operem individualmente e, então, determinam se os componentes podem interagir entre si como deveriam. Pode levar um tempo considerável para executar um grande conjunto 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 do software. Reserve testes de integração para cenários que você não pode testar com um smoke test ou teste de unidade. Você pode executar processos de teste de execução prolongada em um intervalo regular, se necessário. Um intervalo regular oferece um bom compromisso e detecta problemas de interoperabilidade entre componentes de aplicativos o mais tardar um dia após sua introdução. Alguns cenários de teste se beneficiam de execuções manuais. Use testes manuais quando precisar introduzir elementos de interatividade humana nos testes.

  • Teste de aceitação: dependendo do contexto, você pode executar manualmente o teste de aceitação. Pode ser parcialmente ou totalmente automatizado. O teste de aceitação determina se o sistema de software atende à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 necessários para entrega aos usuários.

Implemente portões de qualidade em todo o seu processo de promoção de código por meio de testes. Implante seu código em ambientes inferiores, como garantia de qualidade e testes, e em ambientes superiores, como preparo e produção. À medida que sua implantação passa pelos portões de qualidade, certifique-se de que ela atenda às suas metas de qualidade antes que as alterações entrem em produção. Seus requisitos de negócios determinam qual é o foco de seus portões de qualidade. Considere também os princípios fundamentais do Well-Architected: Segurança, Confiabilidade e Eficiência de Desempenho. Power Platform

Integre também fluxos de trabalho de aprovação em seus portões de qualidade. Defina claramente e automatize 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 pelos seus portões com eficiência e segurança.

Facilitação do Power Platform

Os pipelines visam democratizar o geranciamento do ciclo de vida do aplicativo (ALM) para clientes do Dynamics 365 e do Dynamics 365, trazendo automação de ALM, integração contínua e recursos de entrega contínua (CI/CD) para o serviço. Power Platform 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.

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 da Microsoft Dataverse plataforma.

Microsoft Power Platform CLI (PAC CLI) é uma ferramenta de linha de comando que oferece suporte à importação e exportação de Power Platform soluções, além de compactação e descompactação de Power Platform arquivos de origem de soluções. O PAC CLI está disponível como uma ferramenta de linha de comando autônoma ou como uma extensão para Visual Studio Código.

Você pode usar o Terraform, o Bicep e o Azure Resource Manager para implantações de infraestrutura imutável como código (IaC). Dependendo de seus requisitos e da familiaridade de sua equipe com as ferramentas, talvez você use uma ou mais dessas ferramentas para suas implantações e gerenciamento dos recursos.

Alinhamento organizacional

O Cloud Adoption Framework fornece orientação para equipes centrais fornecerem zonas de destino de carga de trabalho. As zonas de aterrissagem da carga de trabalho são onde o cadeia de fornecedores personalizado da carga de trabalho implanta os aplicativos.

Saiba mais em O que é uma zona de aterrissagem do Azure? e nos princípios de design da zona de aterrissagem do Azure.

Próximas etapas