O que é o Azure Pipelines?
O Microsoft Azure Pipelines é um serviço de nuvem que você pode usar para criar, testar e implantar automaticamente seu projeto de código. Você também pode disponibilizá-lo para outros usuários e ele funciona com praticamente qualquer idioma ou tipo de projeto.
Mara está entusiasmada com a replicação do processo de compilação da equipe no Azure Pipelines. Amita, a testadora, finalmente tem algum tempo livre e quer recuperar o atraso. Mara decide que agora é um ótimo momento para contar a ela sobre seu plano: configurar um pipeline de compilação automatizado para o site Space Game usando o Azure Pipelines.
Quando ouve o plano de Mara, Amita hesita um pouco, mas como o plano de Mara é replicar o processo de construção, mas não substituí-lo, ela também fica curiosa. Ela sabe que o processo de construção pode usar algumas melhorias.
Amita: Parece um exercício interessante, mas você deve querer provar um ponto de DevOps!
Mara: Você já me conhece tão bem!
Amita: Que melhorias espera ver, especialmente porque vai fazer o que já fazemos?
Mara: Acho que apenas mudar para o Azure Pipelines trará muitos benefícios. Lembre-se, o Azure Pipelines é um serviço de nuvem. Podemos usá-lo para criar e testar código automaticamente. E estará disponível para outros também. Funciona com qualquer tipo de linguagem ou tipo de projeto.
Nosso servidor de compilação tem problemas, e até mesmo mantê-lo atualizado é difícil. Como o Azure Pipelines fornece servidores de compilação que a Microsoft hospeda e mantém, ele sempre tem os patches e atualizações de segurança mais recentes. Não teremos que nos preocupar com a manutenção de servidores de compilação.
Além disso, temos todos os tipos de scripts escritos por pessoas diferentes. Nem sequer entendemos como alguns deles funcionam. O Azure Pipelines vem com um catálogo de tarefas. Uma tarefa é um script ou procedimento empacotado que foi abstraído com um conjunto de entradas. Vou tentar mapear o que nossos scripts de construção fazem para essas tarefas. Pelo menos podemos padronizar como as coisas são feitas e aumentar o nível de automação.
E o Azure Pipelines funciona com muitos idiomas e tipos de aplicativos diferentes. Se quisermos expandir nessas direções, não teremos que reformular.
Amita: Eu sei que é egoísta, mas por que eu me importo? Um dos meus grandes problemas é que nunca sei quando uma compilação está pronta para ser testada. Às vezes alguém se lembra de atualizar a planilha, mas muitas vezes esquece. Parece que sou a última pessoa a saber.
Mara: Certo, isso é algo que podemos corrigir facilmente. Podemos configurar o pipeline para notificá-lo automaticamente, por e-mail ou alguma outra notificação, quando uma compilação estiver pronta. Você nunca terá que esperar que alguém o lembre novamente.
Amita: Ok, então seu objetivo agora é criar o aplicativo e me avisar quando ele estiver pronto?
Mara: Certo! Claro, tenho planos maiores. Sei que todos vão adorar este primeiro passo, por isso quero aproveitar para nos dar uma verdadeira integração contínua.
Amita: Dê-me o resumo de cinco minutos sobre integração contínua.
Mara: Deixe-me desenhar-lhe uma imagem.
Mara se move para o quadro branco e desenha o pipeline.
Mara: Este é o meu pipeline de CI. CI é o processo de automatizar a criação e o teste de código sempre que um membro da equipe confirma alterações no controle de versão. Sei que ainda não fazemos testes automatizados, mas dê tempo.
Um pipeline define o processo de integração contínua para o aplicativo. É composto por etapas chamadas tarefas . Você pode pensar nele como um script que define como suas etapas de compilação, teste e implantação são executadas. Vou tentar mapear nossos scripts para tarefas.
O pipeline é executado quando você envia alterações de código. Você pode configurar o pipeline para ser executado automaticamente ou pode executá-lo manualmente. Você conecta seu pipeline a um repositório de origem como GitHub, Bitbucket ou Subversion. Uma das nossas tarefas para este sprint é começar a usar o GitHub, por isso usaremos o GitHub para este projeto.
Um agente de compilação cria ou implanta o código. Quando sua compilação ou implantação é executada, o sistema inicia um ou mais trabalhos. Um agente é um software instalável que executa um trabalho de compilação ou implantação de cada vez. Como estamos usando o Azure Pipelines, podemos usar um agente hospedado pela Microsoft. Com agentes hospedados pela Microsoft, a manutenção e as atualizações são cuidadas para nós. Cada vez que executamos um pipeline, obtemos uma nova máquina virtual. Existem várias imagens de máquinas virtuais para escolher, incluindo o Ubuntu 22.04, que é o que usamos.
O produto final do gasoduto é um artefato de construção. Pense em um artefato como a menor unidade compilada que precisamos para testar ou implantar o aplicativo. Por exemplo, um artefato pode ser:
- Um aplicativo Java ou .NET empacotado em um arquivo .jar ou .zip .
- Uma biblioteca C++ ou JavaScript.
- Uma máquina virtual, nuvem ou imagem do Docker.
E já está! Sei que podemos fazê-lo.
Amita: Parece ótimo. Vamos ver o que você tem que fazer para fazê-lo funcionar e quanto tempo você leva. Você pode nos dar uma demonstração.
Mara: Vai fazer!
Gerenciar agentes de compilação
Agora que você e a equipe estão familiarizados com o Azure Pipelines, vamos falar um pouco mais sobre os agentes de compilação. Um agente de compilação é uma parte do software instalável que executa um trabalho de compilação ou implantação de cada vez. Para criar seu código ou implantar seu software, você precisa de pelo menos um agente. À medida que você adiciona mais código e pessoas, você precisará de mais de um agente. Existem duas categorias principais de agentes.
Os agentes hospedados pela Microsoft são agentes que a Microsoft gerencia, portanto, a manutenção e as atualizações são cuidadas para você. Cada vez que você executa um pipeline, você recebe um novo agente para cada trabalho no pipeline. Neste módulo, quando você escolhe Ambiente de desenvolvimento local usando um agente hospedado pela Microsoft, está executando seu pipeline em um agente hospedado pela Microsoft. Para executar pipelines em um agente hospedado pela Microsoft, sua organização deve ter pelo menos um trabalho paralelo hospedado pela Microsoft. Verifique a contagem de trabalhos paralelos hospedados pela Microsoft para garantir que você tenha pelo menos um trabalho paralelo hospedado pela Microsoft. Se a contagem de trabalhos paralelos hospedados pela Microsoft for zero (as novas organizações de DevOps do Azure normalmente têm zero trabalhos paralelos), você poderá solicitar uma concessão gratuita. O processo de aprovação da concessão gratuita normalmente leva de dois a três dias úteis.
Agentes auto-hospedados são agentes que você gerencia. Configure as máquinas virtuais ou contêineres instalando o software do agente e as ferramentas desejadas e registre os agentes no Azure DevOps. Neste módulo, quando você escolhe o ambiente de desenvolvimento do GitHub Codespaces usando um agente auto-hospedado, você está usando um agente auto-hospedado em execução no contêiner do GitHub Codespaces. A hospedagem automática do agente em um contêiner do GitHub Codespaces não é um cenário típico de produção, mas fornece um ambiente para concluir este módulo de treinamento.