Integrar o DevTest Labs e pipelines de CI/CD do DevOps

O DevOps é uma metodologia de desenvolvimento de software que integra o desenvolvimento de software (Dev) e as operações de sistema (Ops). O sistema oferece novos recursos, atualizações e correções de software que se alinham às metas de negócios.

A metodologia de DevOps também abrange:

  • A criação de recursos com base em metas, padrões de uso e comentários de clientes.
  • A correção, a recuperação e a proteção do sistema quando problemas ocorrem.

Um componente da metodologia de DevOps é o pipeline de CI (integração contínua) e CD (entrega contínua). Um pipeline de CI/CD move informações, códigos e recursos de uma confirmação do controle do código-fonte por uma série de etapas para produzir o sistema. As etapas incluem compilar, testar e liberar.

Você pode usar o Azure DevTest Labs em pipelines de CI/CD. Este artigo aborda o uso do DevTest Labs em pipelines de build e lançamento de CI/CD em um ambiente corporativo.

Benefícios do DevTest Labs em fluxos de trabalho de DevOps

Um laboratório deve se concentrar em uma equipe que está trabalhando em uma área de funcionalidade. Esse foco comum permite alterações mais rápidas enquanto limita os efeitos negativos a um grupo menor. Alterações ou problemas ocorrem no ambiente de laboratório sem afetar nada mais.

Esse foco comum permite o compartilhamento de recursos específicos a uma área, como ferramentas, scripts ou modelos do ARM (Azure Resource Manager). Os desenvolvedores podem usar recursos compartilhados para criar VMs (máquinas virtuais) com todo o código, as ferramentas e a configuração de que precisam. Os modelos do ARM criam VMs de laboratório e ambientes de laboratório com os recursos do Azure apropriados. Os modelos criam recursos dinamicamente ou criando imagens base com personalizações.

Por exemplo, considere um cenário em que o produto é um sistema autônomo que é instalado no computador de um cliente. O DevTest Labs pode criar VMs de laboratório com software, artefatos e configurações de software instaladas, para testes de código de loop interno rápidos.

Estes são alguns benefícios de usar laboratórios nos fluxos de trabalho do DevOps:

  • Acesso prioritário: usar um laboratório como um componente associa um ecossistema específico a pessoas limitadas. Normalmente, será atribuído um laboratório a uma equipe ou um grupo que trabalha em uma área comum ou um recurso específico.

  • Replicação da infraestrutura na nuvem: um desenvolvedor pode configurar rapidamente um ecossistema de desenvolvimento que inclui uma VM de desenvolvedor com código-fonte e ferramentas. Um desenvolvedor também pode criar um ambiente praticamente idêntico à configuração de produção para um desenvolvimento de loop interno mais rápido.

  • Ambientes pré-produção: um laboratório no pipeline de CI/CD pode executar vários computadores ou ambientes de pré-produção diferentes ao mesmo tempo para testes assíncronos. Você pode implantar e gerenciar diferentes infraestruturas de suporte e agentes de build em um laboratório.

Usar laboratórios em pipelines de CI/CD

O pipeline de CI/CD é um componente de DevOps crítico. O pipeline integra o código da solicitação de pull de um desenvolvedor ao código existente e o implanta no ecossistema de produção. Para a integração do DevTest Labs, nem todos os recursos precisam estar em um laboratório. Por exemplo, você pode configurar um host Jenkins fora do laboratório para um recurso mais persistente. Estes são alguns exemplos específicos de como integrar laboratórios no pipeline de CI/CD.

Build

O pipeline de build cria um pacote de componentes para teste em conjunto e entregar para lançamento. A compilação dinâmica da infraestrutura permite maior controle. Os laboratórios podem fazer parte do pipeline de build como locais para os agentes de build e outros recursos de suporte. O DevTest Labs pode restringir o acesso ao laboratório, o que aumenta a segurança para os agentes de build e reduz a possibilidade de corrupção acidental.

Com a capacidade de ter vários ambientes em um laboratório, cada build pode ser executado de forma assíncrona. A ID de build faz parte das informações de ambiente que identificam exclusivamente os recursos em um build específico.

Teste

Um pipeline de CI/CD pode automatizar a criação de recursos do DevTest Labs, como VMs e ambientes, para testes automatizados e manuais. O pipeline usa fórmulas ou artefatos de informações de build para criar VMs com diferentes configurações de teste personalizadas.

Versão

O processo de lançamento pode usar o DevTest Labs para verificação antes da implantação do código. O processo é semelhante ao teste. Recursos de produção não devem ser implantados no DevTest Labs.

Personalização

O Azure Pipelines, um componente do Azure DevOps Services, tem tarefas existentes para manipular VMs e ambientes dentro de laboratórios específicos. O Azure Pipelines é uma maneira de gerenciar o pipeline de CI/CD. Você pode integrar um laboratório a qualquer sistema com suporte para chamada às APIs REST, para a execução de scripts do PowerShell ou para o uso da CLI do Azure.

Alguns gerenciadores do pipeline de CI/CD têm plug-ins de código aberto existentes que podem gerenciar recursos do Azure e do DevTest Labs. Pode ser necessário usar scripts personalizados para atender às necessidades do pipeline. Ao executar uma tarefa, use uma entidade de serviço com a função apropriada, normalmente Colaborador, para ter acesso ao laboratório.

Próximas etapas