O que é o Azure Pipelines?

Concluído

O Microsoft Azure Pipelines é um serviço de nuvem que pode ser usado para criar, testar e implantar o projeto de código automaticamente. Você também pode torná-lo disponível para outros usuários e ele funciona com praticamente qualquer linguagem ou tipo de projeto.

Clara está animada com a replicação do processo de build da equipe no Azure Pipelines. Marina, a testadora, finalmente tem algum tempo livre e ela deseja ficar em dia. Clara decide que agora é um ótimo momento para contar a ela sobre o plano: configurar um pipeline de build automatizado para o site Space Game usando o Azure Pipelines.

Quando ouve o plano de Clara, Marina fica um pouco hesitante. Mas, como o plano de Clara é replicar o processo de build, mas não o substituir, ela também fica curiosa. Ela sabe que o processo de build poderia usar algumas melhorias.

Marina: Parece um exercício interessante, mas você precisa querer justificar uma finalidade de DevOps!

Clara: Você já me conhece tão bem!

Marina: Quais aprimoramentos você espera ver, especialmente, já que você fará o que já fazemos?

Clara: Acho que apenas o fato de migrar para o Azure Pipelines trará muitos benefícios. Lembre-se de que o Azure Pipelines é um serviço de nuvem. Podemos usar isso para compilar e testar o código automaticamente. E ele estará disponível para outras pessoas também. Ele funciona com praticamente qualquer linguagem ou tipo de projeto.

Nosso servidor de build está com problemas, e é difícil até mesmo mantê-lo atualizado. Como o Azure Pipelines fornece servidores de build que a Microsoft hospeda e mantém, ele sempre tem os patches e as atualizações de segurança mais recentes. Não precisamos nos preocupar em manter servidores de build.

Além disso, temos todos os tipos de scripts escritos por pessoas diferentes. Nem mesmo 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 build fazem nessas 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 muitas linguagens e muitos tipos de aplicativos diferentes. Se quisermos expandir nessas direções, não precisaremos obter novas ferramentas.

Marina: Sei que é egoísta, mas por que me preocupar? Um dos meus maiores problemas é que nunca sei quando um build está pronto para ser testado. Às vezes, alguém se lembra de atualizar a planilha, mas, em muitas vezes, eles se esquecem. Parece que sou a última pessoa a saber.

Clara: Certo, isso é algo que podemos corrigir com facilidade. Podemos configurar o pipeline para notificar você automaticamente, por email ou por outro tipo de notificação, quando um build estiver pronto. Você nunca precisará esperar que alguém lembre você novamente.

Marina: OK, então sua meta agora é compilar o aplicativo e me avisar quando ele estiver pronto?

Clara: Certo! É claro que tenho planos maiores. Sei que todos vocês vão adorar esta primeira etapa, portanto, quero me basear nela para nos dar uma verdadeira integração contínua.

Marina: Dê-me o relatório de cinco minutos sobre a integração contínua.

Clara: Vou desenhar uma imagem para você.

Clara vai até o quadro de comunicações e desenha o pipeline.

Captura de tela de uma ilustração desenhada à mão de um pipeline de CI. As fases Compilar, Testar e Verificar funcionam no código. O artefato de compilação é a saída.

Mara: este é meu pipeline de CI. CI é o processo de automatizar o build e o teste do código sempre que um membro da equipe confirma as alterações no controle de versão. Sei que ainda não fazemos o teste automatizado, mas dê tempo a ele.

Um pipeline define o processo de integração contínua para o aplicativo. Ele é composto de etapas chamadas tarefas . Ele pode ser considerado um script que define como as etapas de build, 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. Conecte seu pipeline a um repositório de código-fonte como GitHub, Bitbucket ou Subversion. Uma de nossas tarefas para esse sprint é começar a usar o GitHub. Portanto, usaremos o GitHub para este projeto.

Um agente de build compila ou implanta o código. Quando a implantação ou o build for executado, o sistema iniciará um ou mais trabalhos. Um agente é um software instalável que executa um trabalho de build ou implantação por vez. Como estamos usando o Azure Pipelines, podemos usar um agente hospedado pela Microsoft. Com os agentes hospedados pela Microsoft, a manutenção e as atualizações são feitas para nós. Sempre que executamos um pipeline, obteremos uma máquina virtual atualizada. Há várias imagens de máquina virtual à sua escolha, incluindo a que usamos, Ubuntu 22.04.

O produto final do pipeline é um artefato de build . Considere 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, uma nuvem ou uma imagem do Docker.

E pronto. Sei que podemos fazer isso.

Marina: Parece ótimo. Vamos ver o que você precisa fazer para fazer isso funcionar e quanto tempo isso levará. Você pode apresentar a todos nós uma demonstração.

Clara: Vou apresentar!

Gerenciar agentes de build

Agora que você e a equipe estão familiarizados com o Azure Pipelines, vamos falar um pouco mais sobre agentes de build. Um agente de build é um software instalável que executa um trabalho de build ou de implantação por vez. Para criar seu código ou implantar seu software, você precisa de pelo menos um agente. Conforme você adicionar mais código e pessoas, acabará precisando de mais de um agente. Há duas categorias principais de agentes.

  • Os agentes hospedados pela Microsoft são gerenciados pela Microsoft, que faz as atualizações e manutenção. Sempre que você executa um pipeline, um novo agente é gerado para cada trabalho no pipeline. Neste módulo, ao escolher Ambiente de desenvolvimento local usando um agente hospedado pela Microsoft, você está executando o pipeline em um agente hospedado pela Microsoft. Para executar pipelines em um agente hospedado pela Microsoft, a organização precisa 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 do Azure DevOps normalmente não têm trabalhos paralelos), você pode solicitar uma concessão gratuita. O processo de aprovação para a concessão gratuita normalmente leva de dois a três dias úteis.

  • Os agentes auto-hospedados são agentes gerenciados por você. Você configura máquinas virtuais ou contêineres instalando o software do agente e as ferramentas desejadas e registra os agentes no Azure DevOps. Neste módulo, ao escolher 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 auto-hospedagem do agente em um contêiner do GitHub Codespaces não é um cenário de produção típico, mas oferece um ambiente para concluir este módulo de treinamento.

Verificar seu conhecimento

1.

Qual destes é um exemplo de um artefato de compilação?