Construa seu Primeiro Pipeline do Azure DevOps do Zero

O software deve ser escrito, testado e implantado em um ambiente de produção. Para fazer isso de forma automatizada, desenvolvedores e DevOps constroem pipelines de CI/CD ou pipelines de construção/liberação que automatizam grande parte dessa atividade.

A pipeline allows developers, DevOps teams and others to produce and deploy reliable code. In the Microsoft realm, the way to build a pipeline is with Azure DevOps with a feature called Azure Pipelines.

O Azure Pipelines permite executar automaticamente builds, realizar testes e implantar código (liberação) em vários ambientes de desenvolvimento e produção. Mas e se você nunca ouviu falar do Azure DevOps ou de um pipeline antes, ou nunca construiu um com o Azure DevOps? Se for esse o caso, este tutorial do Azure Pipelines é para você.

Muito obrigado a Peter De Tender, Microsoft Azure Technical Trainer, por sua ajuda com este artigo.

Visão geral do projeto

Este é um artigo de projeto onde abordamos como construir um projeto ou implementar uma solução. Cada seção será composta por etapas cumulativas que se baseiam nas anteriores.

Neste projeto, você vai aprender, do início ao fim, como criar seu primeiro pipeline do Azure DevOps. Você aprenderá conceitos como invocar builds a partir de um commit de controle de versão do Git, executar testes automaticamente e, por fim, liberar pacotes para ambientes. Ao final deste projeto, você terá um exemplo de aplicativo de comércio eletrônico implantado como um Azure WebApp.

Este projeto deve levar cerca de 30 minutos para ser concluído.

Observe que se você seguir este Projeto e remover imediatamente os recursos criados, você não será cobrado em sua conta Azure. Não se esqueça de removê-los!

Público-alvo

Este projeto abordará o básico para configurar sua primeira Pipeline do Azure na interface web do Azure DevOps. Você aprenderá muito com este projeto se for totalmente novo no Azure Pipelines, mas não tanto se já tiver construído suas próprias pipelines antes ou se for um guru do Azure Pipelines.

Requisitos de ambiente

Se você planeja seguir este Projeto, passo a passo, certifique-se de ter, no mínimo, o seguinte:

Criando uma Organização Azure DevOps

Como estamos começando do zero, você primeiro criará o “objeto base” que contém todos os recursos e serviços do Azure DevOps chamado organização. A organização é onde todos os projetos são armazenados, e você aprenderá a construí-los na próxima seção.

  1. No Portal Azure, navegue até Todos os serviços, pesquise por DevOps e selecione Azure DevOps. Você pode ver o que esperar abaixo. Isso abrirá a blade Azure DevOps, como mostrado abaixo.
Azure DevOps dashboard

2. Em seguida, clique em Minhas Organizações Azure DevOps e forneça suas credenciais do Azure. Você será levado para uma página onde poderá criar uma nova organização, como mostrado abaixo. Uma vez aqui, clique no botão azul Criar nova organização.

Create new Azure DevOps organization page

3. Na próxima página, forneça um nome para a organização. Se tiver problemas ao usar um nome específico, verifique as convenções de nomenclatura da organização Azure DevOps. Nesta tela, também especifique uma região do Azure mais próxima de você. Quando terminar, clique em Continuar.

Azure DevOps organization creation page

Neste ponto, sua organização Azure DevOps está criada!

Criando um Projeto Azure DevOps.

O próximo passo é criar um projeto. Um projeto é um recipiente para o pipeline que você criará, vários artefatos e qualquer outra informação relacionada a um serviço ou software específico.

O Azure DevOps permite que você crie um projeto durante o mesmo fluxo de trabalho de criação de uma organização, conforme realizado anteriormente. Se você seguiu junto, agora deve ser apresentada uma página de criação de projeto, conforme mostrado abaixo.

  1. Na página de criação de projeto, forneça um nome para o seu projeto no campo Nome do projeto. Para este projeto, você usará um projeto Azure DevOps chamado devopsdemo.
  2. Confirme a criação do projeto clicando no botão + Criar Projeto.
  3. Por enquanto, deixe a Visibilidade definida como Privado. Isso garante que seu projeto não seja exposto à Internet. Um projeto público permite acesso somente leitura aos artefatos do projeto para não membros e usuários não autenticados.
Azure DevOps project creation page

Neste ponto, seu espaço de trabalho do Azure DevOps (projeto + organização) foi criado. Se você esteve acompanhando, agora terá uma organização Azure DevOps criada chamada pdtitws123 e um projeto dentro dessa organização chamado devopsdemo.

Azure DevOps project overview

Construindo um Pipeline de Compilação do Azure DevOps

Agora que você tem uma organização e um projeto do Azure DevOps configurados, você pode criar um pipeline de compilação dentro dele. O pipeline é onde toda a mágica acontece. É onde você criará compilações para realizar várias tarefas, como compilar código, importar dependências e muito mais.

  1. No painel de controle, selecione Pipelines e depois em Builds.
Azure DevOps Builds menu

2. Você verá uma mensagem informando que ainda não foram encontrados pipelines de build. Clique em Novo pipeline para começar a criar o pipeline de build.

No build pipelines bound yet. Creating a new pipeline.

3. Em seguida, você será solicitado a informar onde o seu código está armazenado. Neste projeto, o código está armazenado em um repositório do GitHub. Selecione GitHub. Este é o local onde o código é armazenado e os gatilhos para invocar o build virão dele.

Selecting version control source

4. Ao clicar em GitHub, você será solicitado a fornecer as credenciais da sua conta do GitHub, como mostrado abaixo. Antes de começar esta etapa, lembre-se de ter criado um repositório vazio no GitHub, conforme definido na seção Pré-requisitos deste artigo!

Providing GitHub credentials

5. Em seguida, confirme a etapa em que você é solicitado a autorizar o Azure Pipelines. Isso garante que o Azure DevOps tenha permissão para acessar seus repositórios do GitHub.

Authorizing Azure Pipelines to access GitHub

Vinculando um Repositório do GitHub ao Pipeline de Build

Depois de fornecer permissão ao Azure DevOps para acessar sua conta do GitHub, agora vincule um repositório do GitHub ao pipeline de build.

  1. Selecione o repositório vazio do GitHub que você criou para este projeto.
Empty source GitHub repo

2. Permita que o projeto leia, escreva e verifique o código-fonte do repositório selecionado anteriormente. Em seguida, confirme esse processo clicando em Aprovar e Instalar.

Confirm Azure DevOps Github integration

3. Ao clicar em confirmar, você verá um erro gerado como mostrado abaixo. Esse erro ocorrerá porque o Repositório do GitHub selecionado está vazio.

Error when GitHub repo is empty

Neste ponto, o seu repositório do GitHub estará vinculado ao pipeline de build do Azure DevOps.

Você não precisa criar um pipeline completamente novo toda vez que quiser vincular um repositório do GitHub a um pipeline de build do Azure DevOps.

Preenchendo o código de amostra do repositório do GitHub

O pipeline de build do Azure DevOps não será executado sem algum código no repositório do GitHub. O código não importa necessariamente neste ponto. Para obter algum código no repositório, vamos usar um repositório existente para clonar algum código. Neste repositório, tenho todo o código-fonte disponível para publicar um aplicativo de exemplo de comércio eletrônico no Azure WebApps.

O código de amostra para este repositório conterá um aplicativo de comércio eletrônico chamado SimplCommerce. Este aplicativo é um aplicativo dotnetcore de código aberto mais realista do que o típico projeto “hello world”.

  1. Acesse este repositório de amostra do GitHub e clique em Importar código conforme mostrado abaixo.
Empty myfirstrepo GitHub repo

2. Para a URL de clone do repositório antigo, use http://github.com/007FFFLearning/SimplDev e clique em Iniciar importação.

Proving the repo clone URL

Quando a etapa de importação do repositório for concluída com êxito, atualize a janela do Pipeline do Azure DevOps, o que deve permitir que você continue agora.

Inspecionando e visualizando o pipeline de build em YAML.

Neste ponto, você estará na fase de revisão do processo de criação do pipeline. Agora, será apresentada uma representação do pipeline de compilação em YAML. Este arquivo YAML é construído automaticamente com base na detecção da linguagem de código-fonte, que é dotnetcore neste projeto.

Um dos benefícios reais do Azure DevOps é o pipeline YAML. Com muitas outras ferramentas de DevOps, você precisa construir manualmente um arquivo de pipeline.

Reviewing pipeline YAML

Executando manualmente o pipeline de compilação do Azure

Em um pipeline de integração contínua (CI), a compilação é normalmente acionada por uma confirmação no controle de versão. No entanto, você também pode iniciar manualmente a execução do pipeline de compilação. Vamos iniciar manualmente um pipeline de compilação para ver o que acontece.

Se você estiver acompanhando, neste ponto, você deve estar pronto para clicar em Executar para iniciar o pipeline de compilação. Isso iniciará o processo de compilação do pipeline, como mostrado na captura de tela abaixo.

Pipeline starting

Após alguns segundos, você verá que o processo será executado no macOS, como mostrado abaixo. O pipeline de compilação fornecerá informações em tempo real à medida que cada tarefa e trabalho no pipeline é executado.

Running on the macOS build agent

Em seguida, o pipeline de compilação repetirá o mesmo processo para outros sistemas operacionais (neste exemplo), como mostrado abaixo. As etapas executadas variarão muito dependendo de como o arquivo YAML foi construído.

Running on the Linux build agent

Após a conclusão da compilação, você verá marcas de seleção verdes, como mostrado abaixo. Esta captura de tela indica que a compilação em cada plataforma foi concluída com sucesso.

Successful pipeline run

Você agora criou um pipeline de build do Azure DevOps!

Construindo um pipeline de release do Azure DevOps

O pipeline de build foi criado, o que é um ótimo progresso. Se você parar neste ponto, estará bem encaminhado para um pipeline completo e automatizado. Mas ainda não terminamos! O objetivo final do software é ser implantado para que os clientes possam usá-lo. É hora de automatizar também um lançamento com um pipeline de release!

A release pipeline takes a build artifact, a result of the build process and deploys that to one or more environments. In this Project, you’re going to use a release pipeline to publish code in the GitHub repo to an Azure Web App.

  1. No Azure DevOps, clique em Pipelines e depois em Releases.
Releases menu item

2. Em seguida, selecione Novo e depois Novo pipeline de release. Isso inicia o assistente de novo pipeline de release.

New release pipeline menu option

3. Na lista de modelos à direita, selecione Implantação de Serviço de Aplicativo do Azure. Você verá muitos tipos diferentes de modelos disponíveis para economizar tempo na criação de futuros pipelines de release.

Select the Azure App Service deployment template

4. Forneça uma descrição para o Nome do Estágio. O estágio conterá tarefas de lançamento. Para este projeto, use o nome Implantar_no_webapp.

Specify the stage name

O pipeline de release agora deve ser semelhante à captura de tela abaixo.

Created stage

5. No campo Estágios, selecione 1 job, 1 tarefa. Este campo é onde você eventualmente fornecerá as configurações do ambiente do Azure Web App que você usará para a implantação real.

6. Parte do modelo de implantação do Azure App Service vem alguns parâmetros que você precisa definir nesta tela.

  1. Nome Artístico – Deploy-to-webapps2 neste exemplo.
  2. Inscrição no Azure – selecione sua inscrição e confirme com Autorizar (precisa de credenciais)
  3. Tipo de aplicativo – Aplicativo da Web no Linux
  4. Nome do Serviço de Aplicativo – o aplicativo da web que você criou anteriormente
Setting template parameters

7. Quando terminar, clique em Pipeline no menu superior do seu projeto Azure Pipeline, como mostrado abaixo. Isso irá retornar para a tela principal e permitir que você conclua a próxima etapa, que é especificar os artefatos.

Going back to the pipeline

Adicionando Artefatos ao Pipeline de Liberação do Azure DevOps

Dentro de um pipeline de liberação, existem muitos itens diferentes que precisam ser implantados. Esses itens são chamados de artefatos. Artefatos, em termos simples, são componentes implantáveis da sua aplicação. O Azure Pipelines pode implantar artefatos que são produzidos por uma ampla variedade de fontes de artefato.

Nesta seção, vamos cobrir como adicionar artefatos ao pipeline de liberação.

  1. Enquanto estiver na tela Pipeline, clique em Adicionar um Artefato.
  2. O Tipo de Origem já está definido como Build, que é o que você deseja, pois estará implantando a saída do pipeline de build criado anteriormente. Escolha o pipeline de build criado anteriormente no menu suspenso Origem (pipeline de build).
  3. Quando terminar, clique em Adicionar para salvar a configuração.
Adding an artifact

4. Por fim, clique no botão Salvar no canto superior direito da tela para salvar o pipeline de lançamento.

Criando o lançamento do Azure DevOps

Após criar o pipeline de lançamento, você começará a criar lançamentos. Um lançamento é uma execução específica do pipeline. Pense no pipeline de lançamento como o modelo e nas instâncias específicas desse pipeline de lançamento como lançamentos. Depois de ter um lançamento, ele pode ser implantado.

Para criar um lançamento:

  1. Clique no botão Criar Lançamento no canto superior direito da janela, conforme mostrado abaixo.
New release pipeline overview

2. Você não vai fazer nada complicado, então na tela Criar um novo lançamento, aceite as opções padrão e clique em Criar. Você tem apenas uma única etapa neste momento e possui uma única versão do artefato de compilação para implantar agora.

Create a new release item

3. Após alguns segundos, você receberá uma notificação (a barra verde) de que o lançamento foi criado, conforme mostrado abaixo. Agora clique em Lançamento-1, que o redirecionará para os detalhes do processo de lançamento.

Click on Release-1

Você criou um lançamento e ele está pronto para ser implantado!

Implantando manualmente um lançamento

A release is a set of instructions to perform on how to deploy a build. You’ve done all of that. Now it’s time to actually run those instructions and deploy code to an environment.

Enquanto estiver no lançamento Lançamento-1 que você criou anteriormente:

  1. Selecione a etapa Deploy_to_webapp e confirme Implantar. Quando fizer isso, o status mudará para Em andamento como mostrado abaixo. Neste ponto, o lançamento está pegando o código-fonte da tubulação de construção executada anteriormente e enviando-o para a instância do Azure WebApp.

    Esta etapa iniciará um trabalho em execução nos bastidores em um agente copiando o código-fonte e realizando o ciclo de lançamento real.

Stage in progress

2. Clique na etapa enquanto estiver em andamento. Você verá todas as informações de registro mostradas na área de saída do console.

Job log showing stage in progress

Quando estiver completo, a etapa deve mostrar Bem-sucedida como visto abaixo.

Successful stage

Se tudo correu bem, o lançamento deve ter terminado e agora você deve ter um aplicativo da web publicado em um Azure Web App!

Inspecionando o Azure WebApp implantado

Agora que todo o processo está completo, certifique-se de verificar os frutos do seu trabalho.

  1. Acesse o Portal do Azure, navegue até o Azure WebApp selecionado na tubulação de lançamento como destino e copie a URL conforme mostrado abaixo.
Finding the Azure App Service URL in the Azure portal

2. Agora cole essa URL em um navegador fornecendo a URL do Azure Web App. Seu navegador deve carregar agora o aplicativo de exemplo de comércio eletrônico, semelhante à página inicial abaixo

The front page of the deployed application

Agora você fez tudo! Agora você tem um aplicativo da web Azure implantado a partir de um repositório do GitHub capaz de ser automatizado ao máximo!

Limpeza

Se você seguiu ao longo deste Projeto, agora você tem uma nova organização do Azure DevOps, projeto, pipeline de compilação, pipeline de lançamento e lançamento. Se você terminou de testar as coisas, certifique-se de remover a organização original criada para não correr o risco de ser cobrado por quaisquer recursos do Azure.

Para fazer isso:

  1. Volte para o seu espaço de trabalho principal do Azure DevOps.
  2. Clique em Configurações da organização no canto inferior esquerdo.
  3. Na tela de Visão geral, clique no botão Excluir na parte inferior da página em Excluir organização.
  4. Digite o nome da organização e clique em Excluir. Isso deve remover todo o trabalho que você acabou de realizar.

Suas conclusões

Se você seguiu as instruções neste Projeto, você criou um pipeline de CI/CD completo do zero no Azure DevOps. Agora você deve ter uma boa ideia do que esse processo implica.

O Azure Pipelines pode ir ainda mais fundo do que o que você fez neste Projeto, mas agora você deve ter algum conhecimento básico de todo o processo.

Source:
https://adamtheautomator.com/azure-pipelines/