Integrar pipelines de CI/CD de DevTest Labs e DevOps
O DevOps é uma metodologia de desenvolvimento de software que integra o desenvolvimento de software (Dev) com operações de sistema (Operações). O sistema fornece novas funcionalidades de software, atualizações e correções que se alinham com objetivos empresariais.
A metodologia de DevOps também abrange:
- Conceber novas funcionalidades com base em objetivos, padrões de utilização e feedback dos clientes.
- Corrigir, recuperar e proteger o sistema quando ocorrem problemas.
Um dos componentes da metodologia de DevOps é o pipeline de integração contínua (CI) e entrega contínua (CD). Um pipeline CI/CD move informações, código e recursos de uma consolidação de controlo de origem através de uma série de passos para produzir o sistema. Os passos incluem compilação, teste e versão.
Pode utilizar Azure DevTest Labs em pipelines CI/CD. Este artigo aborda a utilização do DevTest Labs em pipelines de compilação e versão ci/CD num ambiente empresarial.
Benefícios do DevTest Labs nos fluxos de trabalho do DevOps
Um laboratório deve concentrar-se numa equipa que esteja a trabalhar numa área de funcionalidades. Este foco comum permite alterações mais rápidas, ao mesmo tempo que limita quaisquer efeitos negativos a um grupo mais pequeno. Alterações ou problemas ocorrem no ambiente de laboratório, sem afetar mais nada.
O foco comum permite a partilha de recursos específicos da área, como ferramentas, scripts e modelos do Azure Resource Manager (ARM). Os programadores podem utilizar recursos partilhados para criar máquinas virtuais (VMs) com todo o código, ferramentas e configuração de que precisam. Os modelos arm criam VMs de laboratório e ambientes de laboratório com os recursos adequados do Azure. Os modelos criam recursos dinamicamente ou ao criar imagens de 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, artefactos e configurações de clientes instalados para testes rápidos de código de ciclo interno.
Eis algumas vantagens da utilização de laboratórios em fluxos de trabalho do DevOps:
Acesso focado: Utilizar um laboratório como componente associa um ecossistema específico a pessoas limitadas. Normalmente, uma equipa ou grupo que trabalhe numa área comum ou numa funcionalidade específica tem um laboratório atribuído às mesmas.
Replicação da infraestrutura na cloud: Um programador pode configurar rapidamente um ecossistema de desenvolvimento que inclui uma VM de programador com código fonte e ferramentas. Um programador também pode criar um ambiente quase idêntico à configuração de produção, para um desenvolvimento de ciclo interno mais rápido.
Ambientes de pré-produção: Um laboratório no pipeline CI/CD pode executar vários ambientes ou máquinas de pré-produção diferentes ao mesmo tempo, para testes assíncronos. Pode implementar e gerir diferentes infraestruturas de suporte e criar agentes num laboratório.
Utilizar laboratórios em pipelines ci/CD
O pipeline CI/CD é um componente crítico do DevOps. O pipeline integra o código do pedido Pull de um programador com código existente e implementa o código no ecossistema de produção. Para a integração do DevTest Labs, nem todos os recursos têm de estar num laboratório. Por exemplo, pode configurar um anfitrião jenkins fora do laboratório para um recurso mais persistente. Eis alguns exemplos específicos de integração de laboratórios no pipeline CI/CD.
Compilar
O pipeline de compilação cria um pacote de componentes para testar em conjunto e entregar para lançamento. A criação dinâmica de infraestruturas permite um maior controlo. Os laboratórios podem fazer parte do pipeline de compilação como localizações para agentes de compilação e outros recursos de suporte. O DevTest Labs pode restringir o acesso ao laboratório, o que aumenta a segurança dos agentes de compilação e reduz a possibilidade de danos acidentais.
Com a capacidade de ter múltiplos ambientes num laboratório, cada compilação pode ser executada de forma assíncrona. O ID de compilação faz parte das informações do ambiente que identificam exclusivamente os recursos numa compilação específica.
Teste
Um pipeline CI/CD pode automatizar a criação de recursos do DevTest Labs, como VMs e ambientes, para testes automatizados e manuais. O pipeline utiliza artefactos ou fórmulas de informação de compilação para criar VMs com diferentes configurações de teste personalizadas.
Libertar
O processo de versão pode utilizar o DevTest Labs para verificação antes de o código ser implementado. O processo é semelhante ao teste. Os recursos de produção não devem ser implementados no DevTest Labs.
Personalização
O Azure Pipelines, um componente dos Serviços de DevOps do Azure, tem tarefas existentes para manipular VMs e ambientes em laboratórios específicos. O Azure Pipelines é uma forma de gerir o pipeline CI/CD. Pode integrar um laboratório em qualquer sistema que suporte chamar APIs REST, executar scripts do PowerShell ou utilizar a CLI do Azure.
Alguns gestores de pipelines CI/CD têm plug-ins open-source existentes que podem gerir os recursos do Azure e do DevTest Labs. Poderá ter de utilizar scripts personalizados para se adaptar às necessidades do pipeline. Ao executar uma tarefa, utilize um principal de serviço com a função adequada, normalmente Contribuidor, para aceder ao laboratório.