Partilhar via


Cadeia de ferramentas de DevOps

Uma cadeia de ferramentas de DevOps é uma coleção de ferramentas que permite que as equipes de DevOps colaborem em todo o ciclo de vida do produto e lidem com os principais fundamentos de DevOps.

As ferramentas que uma cadeia de ferramentas de DevOps inclui operam como uma unidade integrada para planejamento, integração contínua, entrega contínua, operações, colaboração e feedback. Você pode revisar alguns exemplos de tecnologias de DevOps em diferentes estágios de DevOps em Definir seu ecossistema de tecnologia de DevOps.

Considerações sobre a cadeia de ferramentas de DevOps

  • Os processos de DevOps já podem estar em uso em toda a sua organização quando você seleciona uma cadeia de ferramentas. Você deve encontrar o equilíbrio certo entre a adoção de tecnologias adequadas às necessidades da sua equipe e o objetivo de padronizar e evitar ecossistemas heterogêneos de DevOps em toda a sua organização.

  • Você pode adotar diferentes tipos de cadeias de ferramentas de DevOps:

    • All-in-one: fornece uma solução completa que pode não se integrar com outras ferramentas de terceiros. As cadeias de ferramentas tudo-em-um podem ser úteis para organizações que estão começando sua jornada de DevOps. Exemplo: Cadeia de ferramentas Full stack do Azure DevOps.
    • Personalizado: permite que as equipes tragam e misturem ferramentas existentes que conhecem e já têm em uso na cadeia de ferramentas de DevOps mais ampla. A integração é essencial para que esses tipos de cadeias de ferramentas evitem gastar tempo desnecessário alternando entre telas, fazendo login em vários lugares e tendo o desafio de compartilhar informações entre ferramentas. Exemplo: DevOps do Azure e cadeia de ferramentas do GitHub.
  • Considere a utilização de cadeias de ferramentas que são atualizadas regularmente e que têm assistência disponível sempre que precisar através de e-mail ou portal online. Este é um requisito para qualquer produto ou serviço que esteja no caminho crítico para o mercado.

Planeamento

  • Considere a adoção de uma ferramenta que suporte as práticas de Planejamento Contínuo:
    • Planejamento de liberação
    • Identificação épica e de recursos
    • Priorização
    • Estimativa
    • Definição de história de usuário
    • Refinamento da lista de pendências
    • Planejamento de sprint
    • Scrum Diário
    • Revisão da Sprint
    • Retrospetiva

Integração Contínua e Entrega Contínua

  • Ao implementar a Integração Contínua (CI)/Entrega Contínua (CD), considere a adoção de uma ferramenta que suporte:
    • Sistemas de Controle de Versão. Tudo em seu projeto deve ser verificado em um único repositório de controle de versão como o Git: código, testes, scripts de banco de dados, scripts de compilação e implantação e qualquer outra coisa necessária para criar, instalar, executar e testar seu aplicativo.
    • Estratégia de ramificação.
    • Compilações automatizadas.
  • Sua escolha de repositório também é influenciada pelos requisitos de soberania/residência de dados. Se você precisar que seus dados sejam hospedados localmente em um país/região diferente dos EUA, precisará dos repositórios do Azure DevOps quando o GitHub Repos não puder ser usado.
  • Para minimizar a quantidade de configuração manual necessária para provisionar recursos, considere a adoção de Infraestrutura como Código (IaC). O IaC permite aplicar práticas de engenharia de software, como testes e controle de versão, que tornam a infraestrutura e as implantações automatizadas, consistentes e repetíveis. Mantenha scripts e modelos sob controle do código-fonte como qualquer outro código que você mantém.
  • Adote ferramentas de verificação de código para ajudá-lo a detetar defeitos de código o mais rápido possível. Inclua verificações pré-implantação para validar e confirmar alterações antes de qualquer implantação (exemplo: "e se") função.
  • As ferramentas de CI/CD aceleram o tempo de comercialização do seu produto. Ferramentas que permitem paralelizar tarefas e tirar proveito da escalabilidade elástica na infraestrutura hospedada na nuvem melhoram o desempenho do seu processo de CI/CD.
  • Considere o uso de recursos da ferramenta CI/CD que suportam a medição do desempenho de DevOps. Painéis e relatórios podem rastrear aspetos do seu processo de desenvolvimento, como tempo de execução, tempo de ciclo, velocidade de trabalho e assim por diante.

Operações contínuas

Operações contínuas é um foco que ajuda as organizações a manter a continuidade da produção entre sistemas internos e clientes através da entrega ininterrupta de serviços ou funções críticas. Os objetivos das Operações Contínuas são:

  • Para reduzir ou eliminar a necessidade de paradas ou interrupções planejadas, como manutenção programada, otimização de capacidade e implantação.
  • Aumentar a confiabilidade geral e a resiliência dos sistemas em três aspetos: com pessoas, processos e ferramentas.

Use ferramentas nativas da nuvem para:

  • Monitore as principais métricas de desempenho e disponibilidade do serviço.
  • Ganhe experiência digital e insights do cliente.
  • Gere respostas orientadas por inteligência para incidentes, recuperação do sistema ou dimensionamento.
  • Automatize a manutenção proativa e tarefas como implantação ou atualizações do sistema.
    • A Automação do Azure é uma ferramenta nativa da nuvem que você pode usar para criar automação baseada em eventos para diagnosticar e resolver problemas.

Colaboração e feedback

  • Os ciclos de feedback rápido estão no centro do processo de CI/CD. Uma ferramenta de CI/CD usa feedback para resolver condições na lógica de fluxo de trabalho de CI/CD e exibe informações de volta aos usuários, geralmente por meio de um painel.

  • O suporte para notificações por e-mail e a integração com IDEs ou plataformas de comunicação garantem que você possa se manter informado sobre o que está acontecendo sem ter que verificar um painel. Certifique-se de que tem a flexibilidade de configurar os alertas que recebe, uma vez que receber demasiados alertas transforma-os em ruído de fundo.

  • Qualquer ferramenta escolhida para a colaboração deve suportar as seguintes práticas de colaboração:

    • Colaboração Kanban
    • Colaboração de conteúdo Wiki
    • Colaboração ChatOps
    • Sala de equipa

Recomendações da cadeia de ferramentas de DevOps para as Zonas de Desembarque do Azure

As cadeias de ferramentas de DevOps para implementação da Zona de Pouso do Azure devem considerar todas as fases de DevOps discutidas anteriormente:

  • Planeamento
  • CI/CD (incluindo recursos de automação como infraestrutura como código)
  • Operações
  • Colaborações e feedback

Revise as diretrizes para a implantação da zona de desembarque e as considerações para escolher uma opção de implementação em Escolhendo a adoção da zona de pouso.

Independentemente da metodologia selecionada (começar pequeno e expandir ou escalar a empresa), existem algumas topologias comuns que as empresas tendem a seguir ao projetar seus fluxos de trabalho e cadeias de ferramentas de DevOps.

  • Cadeia de ferramentas Full stack Azure DevOps: para empresas que já estão investindo pesadamente no ecossistema da Microsoft, essa topologia permite que elas aproveitem ao máximo as integrações nativas entre produtos e serviços da Microsoft e simplifiquem processos-chave.
  • Cadeia de ferramentas do Azure DevOps e GitHub: essa topologia permite que você use os pontos fortes do Azure e do GitHub como parte de uma solução bem integrada.

Cadeia de ferramentas Full stack do Azure DevOps

Diagrama de uma cadeia de ferramentas de DevOps do Azure de pilha completa.

Estágio DevOps Ferramentas
Planeamento Os Painéis do Azure fornecem recursos de planejamento poderosos e flexíveis para desenvolvedores e outras personas, incluindo listas de pendências hierárquicas, quadros Kanban personalizáveis, personalização avançada de processos, painéis de equipe e relatórios personalizados.
CI/ CD O Azure Repos permite que você crie repositórios Git privados e dá suporte a diferentes clientes Git, estratégia de ramificação e proteção. O Azure Repos também fornece residência de dados localizados na nuvem para permitir a conformidade com as regulamentações europeias. O Azure Pipelines permite que os clientes configurem pipelines automatizados para CI/CD, inclusive para relatórios de teste avançados, e fornece suporte poderoso para pipelines de vários estágios. Permissões, portões, verificações personalizadas e relatórios de resultados de teste automatizados refinados no Azure Pipelines ajudam a aplicar práticas recomendadas de segurança, conformidade e implantação segura em sua organização e oferecem suporte à execução e escalabilidade de etapas paralelas. Os Artefatos do Azure fornecem um feed para armazenar pacotes e para revisar e validar cada pacote para fins de segurança, além de fornecer controle de permissão granular e auditoria. Os Planos de Teste do Azure no Azure DevOps fornecem uma solução de gerenciamento de teste baseada em navegador para testes exploratórios, manuais e de aceitação do usuário. Os usuários dos Planos de Teste do Azure também normalmente usam os Painéis do Azure para planejamento e gerenciamento de projetos. Você pode vincular histórias de usuários e outros requisitos a casos de teste e pode documentar bugs encontrados por meio de testes. Adote extensões do Marketplace para DevOps para melhorar a análise estática de código com ferramentas como scanners de credenciais, scanners de código aberto, scanners de bugs e vulnerabilidades e muito mais.
Operações Os Painéis e relatórios do Azure fornecem relatórios personalizados para ajudá-lo a monitorar as principais métricas de desempenho do serviço. O Diagnóstico do Azure e o Application Insights são o método padrão de acompanhamento da integridade e do status dos recursos do Azure. O Azure Monitor fornece monitoramento e gerenciamento centralizados. A Automação do Azure pode ser usada para criar automação baseada em eventos para diagnosticar e resolver problemas. O Defender for Cloud DevOps usa um console central para capacitar as equipes de segurança com a capacidade de proteger aplicativos e recursos de código para nuvem em ambientes de vários pipelines, incluindo Azure DevOps e GitHub.
Colaborações e Feedbacks O Azure DevOps Wiki permite que você compartilhe informações com membros de outras equipes e dá suporte à edição colaborativa de seu conteúdo e estrutura. Os Painéis do Azure fornecem colaboração Kanban e suporte para comentários e discussões em itens da lista de pendências. Você pode integrar o Microsoft Teams ao Azure DevOps para uma experiência completa de colaboração em equipe.

Cadeia de ferramentas do Azure DevOps e GitHub

Diagrama de uma cadeia de ferramentas do Azure DevOps e GitHub.

Estágio DevOps Ferramentas
Planeamento Os Painéis do Azure fornecem uma solução estável e escalável para planeamento, gestão de repositórios, visualização de dados e organização hierárquica de itens de trabalho. Ele se integra ao GitHub, para que você possa vincular itens de trabalho e confirmações do GitHub. Ele também permite que você escolha seu fluxo de trabalho ideal, seja um fluxo de trabalho simples e pronto para uso ou um fluxo de trabalho personalizado que você cria com o poderoso e flexível mecanismo de personalização do Azure Boards. Quando você precisa visualizar seus dados, os Painéis do Azure ajudam você a criar e configurar facilmente painéis personalizados e monitorar o progresso ao longo dos ciclos de vida do projeto.
CI/ CD Use a versão GitHub Enterprise (GHE) do GitHub, que inclui o GitHub Repo, o GitHub Advanced Security (GHAS) e o GitHub Advanced Security for Azure DevOps. O GHAS inclui CodeQL, Code Scanning, Secret Scanning e Dependency Review. O GHE também oferece Codespaces, um IDE na nuvem que você pode usar para desenvolver código e que pode substituir o Visual Studio Code, que as organizações geralmente incluem em cenários de DevOps do Azure de pilha completa. Você pode usar as Ações do GitHub para automatizar fluxos de trabalho não compilados se seus repositórios estiverem no GitHub. Se você tiver cenários mais complexos em que precise acessar o código de fora do GitHub ou exigir gerenciamento centralizado para modelos de fluxo de trabalho e pipelines de compilação, adote o Azure Pipelines. Para Painéis do Azure, você pode integrar o Azure Pipelines com repositórios do GitHub. Para saber mais sobre a integração do Azure DevOps e do GitHub, consulte Trabalhar com o Azure DevOps e o GitHub. GitHub Packages é um serviço de pacote de software que permite que você hospede seus próprios pacotes de forma privada ou pública. O GitHub oferece suporte ao registro de contêiner para hospedar imagens do Docker ou OCI. Você precisa de tokens de acesso para publicar, instalar ou excluir pacotes e manter o gerenciamento do ciclo de vida do pacote seguro. Para automatizar pacotes, você pode integrar pacotes do GitHub com ações do GitHub, APIs do GitHub e webhooks para criar fluxos de trabalho de DevOps que incluem código, CI e implantações em uma única interface.
Operações O GitHub Insights fornece relatórios analíticos com base em dados de sua instância do GitHub Enterprise Server para ajudá-lo a entender e melhorar seu processo de entrega de software. Para diagnóstico e gerenciamento da Zona de Aterrissagem, use os serviços do Azure recomendados no cenário de DevOps do Azure de pilha completa.
Colaboração e feedback Você pode usar as Discussões do GitHub para compartilhar perguntas, ideias, conversas, solicitações de comentário (RFC), planejamento de recursos e anúncios. Use os Painéis do Azure para criar e configurar facilmente painéis personalizados e monitorar o progresso ao longo dos ciclos de vida do projeto. Adote o Microsoft Teams para uma experiência completa de colaboração em equipe.