Share via


Recomendações para melhorar a velocidade de build

Aplica-se a esta recomendação de lista de verificação de Excelência Operacional do Azure Well-Architected Framework:

OE:04 Otimize os processos de desenvolvimento de software e garantia de qualidade seguindo as práticas comprovadas do setor para desenvolvimento e teste. Para designação de função inequívoca, padronize práticas entre componentes como ferramentas, controle do código-fonte, padrões de design de aplicativo, documentação e guias de estilo.

Guias relacionados: Recomendações para padronizar ferramentas e processos | Recomendações para usar a integração contínua

Este guia descreve as recomendações para melhorar o desempenho da infraestrutura de implantação. É importante ter um processo de build em funcionamento no primeiro dia de desenvolvimento do produto. Os builds são a pulsação do sistema de entrega contínua porque o build status mostra quando o produto é implantável. Os builds fornecem informações cruciais sobre o status do seu produto, portanto, você sempre deve se esforçar por builds rápidos.

É difícil corrigir um problema de build se demorar mais tempo para ser compilado. Quando ocorrem atrasos e se normalizam, as equipes tendem a se tornar menos motivadas a corrigir o problema.

Principais estratégias de design

Tempos de build

Para executar builds mais rápidos, você pode:

  • Escolha agentes que atendam aos seus requisitos de desempenho: acelere seus builds selecionando os computadores de build corretos. Computadores rápidos podem fazer a diferença entre horas e minutos. Se os pipelines estiverem no Azure Pipelines, você poderá executar seus trabalhos usando um agente hospedado pela Microsoft. Quando você usa agentes hospedados pela Microsoft, a manutenção e as atualizações são cuidadas para você. Para saber mais, confira Agentes hospedados pela Microsoft.

  • Otimizar o local do servidor de build: quando você está criando seu código, os dados são enviados pela transmissão. As entradas para os builds são buscadas de um repositório de controle do código-fonte e do repositório de artefatos. A saída do processo de build precisa ser copiada, incluindo artefatos compilados, relatórios de teste, resultados de cobertura de código e símbolos de depuração. É importante que essas ações de cópia sejam executadas rapidamente. Se você usar seu próprio servidor de build, verifique se o servidor de build está localizado perto das fontes e de um local de destino. Uploads e downloads rápidos podem reduzir o tempo de build geral.

  • Servidores de build de expansão: um único servidor de build pode ser suficiente para um produto pequeno. À medida que o tamanho e o escopo do produto e o número de equipes que trabalham no produto aumentam, um único servidor pode não ser suficiente. Escale sua infraestrutura horizontalmente em vários computadores quando atingir o limite. Para obter mais informações, consulte Criar e gerenciar pools de agentes.

  • Otimize o build:

    • Adicione trabalhos paralelos para acelerar o processo de build. Para obter mais informações, confira Configurar trabalhos paralelos e pagar por eles.

    • Habilite execuções paralelas do pacote de testes, que geralmente economizam muito tempo, especialmente ao executar testes de integração e interface do usuário. Para obter mais informações, consulte Executar testes em paralelo para qualquer executor de teste.

    • Use a noção de um multiplicador, em que você pode escalar seus builds em vários agentes de build. Para obter mais informações, confira Especificar trabalhos em seu pipeline.

    • Considere mover a integração, a interface do usuário e os smoke tests para um pipeline de lançamento. Mover para um pipeline de lançamento melhora a velocidade de build e a velocidade do loop de comentários de build.

    • Publique os artefatos de build em uma solução de gerenciamento de pacotes, como NuGet ou Maven. A publicação em uma solução de gerenciamento de pacotes permite reutilizar seu artefato de build com mais facilidade.

Intervenção humana

Sua organização pode optar por criar vários tipos diferentes de builds para otimizar os tempos de build. Os builds possíveis incluem:

  • Build de CI (integração contínua): a finalidade deste build é garantir que o código seja compilado e que os testes de unidade sejam executados. Esse build é disparado em cada confirmação. Ele serve como a pulsação do projeto e fornece comentários de qualidade para a equipe imediatamente. Para obter mais informações, consulte Especificar eventos que disparam pipelines.

  • Compilação noturna: a finalidade de um build noturno não é apenas compilar o código, mas também garantir que todos os conjuntos de testes maiores sejam executados ineficientes em uma cadência regular para cada build. Normalmente, esses testes incluem integração, interface do usuário ou smoke tests. Para mais informações, consulte Configurar agendas para pipelines.

  • Compilação de versão: além de compilar e executar testes, esse build também compila a documentação da API, os relatórios de conformidade, a assinatura de código e outras etapas que não são necessárias sempre que o código é criado. Essa compilação fornece a cópia dourada enviada por push para o pipeline de lançamento para finalmente ser implantada no ambiente de produção.

Os tipos de builds necessários para sua organização dependem de fatores, incluindo a maturidade da sua equipe e da organização, o tipo de produto em que você está trabalhando e sua estratégia de implantação.

Facilitação do Azure

O Azure DevOps é uma coleção de serviços que ajudam você a criar uma prática de desenvolvimento colaborativa, eficiente e consistente.

Use o Azure Pipelines para criar e liberar serviços para dar suporte à CI/CD (integração contínua e entrega contínua) de seus aplicativos.

Use GitHub Actions para o Azure automatizar processos de CI/CD e integrar-se diretamente ao Azure para simplificar as implantações. Você também pode criar fluxos de trabalho que compilam e testam cada solicitação de pull para seu repositório ou implantam solicitações de pull mescladas em produção usando GitHub Actions para o Azure.

Os agentes hospedados pela Microsoft estão disponíveis nativamente no Azure Pipelines. Esses agentes são máquinas virtuais de uso único que são usadas apenas para um trabalho e, em seguida, descartadas, o que fornece uma opção fácil de gerenciar para seus builds.

Lista de verificação de Excelência Operacional

Consulte o conjunto completo de recomendações.