Recomendações para melhorar a velocidade de construção
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 práticas comprovadas pelo setor para desenvolvimento e testes. Para uma designação inequívoca de funções, padronize as práticas em todos os componentes, como ferramentas, controle do código-fonte, padrões de design de aplicativos, documentação e guias de estilo. |
---|
Guias relacionados: Recomendações para padronizar ferramentas e processos | Recomendações para o uso da integração contínua
Este guia descreve as recomendações para melhorar o desempenho da sua infraestrutura de implantação. É importante ter um processo de construção pronto e funcionando no primeiro dia de desenvolvimento do seu produto. As compilações são a pulsação do seu sistema de entrega contínua porque o status da compilação mostra quando o produto pode ser implantado. As compilações fornecem informações cruciais sobre o status do seu produto, portanto, você deve sempre se esforçar para compilações rápidas.
É difícil corrigir um problema de compilação se demorar mais tempo a construir. Quando os atrasos acontecem e se normalizam, as equipes tendem a ficar menos motivadas para resolver o problema.
Principais estratégias de design
Otimize os tempos de construção
Para executar compilações mais rápidas, você pode:
Escolha agentes que atendam aos seus requisitos de desempenho: acelere suas compilações selecionando as máquinas de compilação certas. Máquinas rápidas podem fazer a diferença entre horas e minutos. Se seus 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 obter mais informações, veja Agentes alojados na Microsoft.
Otimize o local do servidor de compilação: quando você está criando seu código, os dados são enviados através do fio. As entradas para as compilações são buscadas em um repositório de controle de origem e no repositório de artefatos. A saída do processo de compilação precisa ser copiada, incluindo os 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 compilação, certifique-se de que o servidor de compilação esteja localizado perto das fontes e de um local de destino. Uploads e downloads rápidos podem reduzir o tempo geral de compilação.
Dimensionar servidores de compilação: um único servidor de compilação pode ser suficiente para um produto pequeno. À medida que o tamanho e o escopo do produto e o número de equipes trabalhando no produto aumentam, um único servidor pode não ser suficiente. Dimensione sua infraestrutura horizontalmente em várias máquinas quando atingir o limite. Para obter mais informações, consulte Criar e gerenciar pools de agentes.
Otimize a compilação:
Adicione trabalhos paralelos para acelerar o processo de compilação. Para obter mais informações, consulte Configurar e pagar por trabalhos paralelos.
Habilite execuções paralelas do conjunto de testes, que geralmente economizam uma grande quantidade de 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, onde você pode dimensionar suas compilações em vários agentes de compilação. Para obter mais informações, consulte Especificar trabalhos no pipeline.
Considere mover a integração, a interface do usuário e os testes de fumaça para um pipeline de liberação. A mudança para um pipeline de liberação melhora a velocidade de compilação e a velocidade do loop de feedback de compilação.
Publique os artefatos de compilação em uma solução de gerenciamento de pacotes, como NuGet ou Maven. A publicação em uma solução de gerenciamento de pacotes permite que você reutilize seu artefato de compilação com mais facilidade.
Minimizar a intervenção humana
Sua organização pode optar por criar vários tipos diferentes de compilações para otimizar os tempos de compilação. As compilações possíveis incluem:
Compilação de integração contínua (CI): O objetivo desta compilação é garantir que o código seja compilado e que os testes de unidade sejam executados. Essa compilação é acionada a cada confirmação. Ele serve como o coração do projeto e fornece feedback de qualidade para a equipe imediatamente. Para obter mais informações, consulte Especificar eventos que acionam pipelines.
Construção noturna: O objetivo de uma compilação noturna não é apenas compilar o código, mas também garantir que quaisquer conjuntos de testes maiores que sejam ineficientes sejam executados em uma cadência regular para cada compilação. Normalmente, esses testes incluem integração, interface do usuário ou testes de fumaça. Para obter mais informações, consulte Configurar agendas para pipelines.
Release build: Além de compilar e executar testes, essa compilação também compila a documentação da API, relatórios de conformidade, assinatura de código e outras etapas que não são necessárias toda vez que o código é criado. Esta compilação fornece a cópia dourada que é enviada para o pipeline de lançamento para finalmente implantar no ambiente de produção.
Os tipos de compilações necessários para sua organização dependem de fatores como a maturidade da sua equipe e 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 lançar serviços para dar suporte à integração contínua e à entrega contínua (CI/CD) de seus aplicativos.
Use o GitHub Actions for Azure para automatizar processos de CI/CD e integre-se diretamente ao Azure para simplificar implantações. Você também pode criar fluxos de trabalho que criam e testam cada solicitação pull em seu repositório ou implantar solicitações pull mescladas na produção usando o GitHub Actions for 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 suas compilações.
Ligações relacionadas
- Azure DevOps
- Azure Pipelines
- Configurar e pagar trabalhos paralelos
- Configurar agendamentos para pipelines
- Criar e gerir conjuntos de agentes
- GitHub para Ações para Azure
- Agentes alojados na Microsoft
- Execute testes em paralelo para qualquer executor de teste
- Especificar eventos que acionam pipelines
- Especificar trabalhos no pipeline
Lista de verificação de Excelência Operacional
Consulte o conjunto completo de recomendações.