Desenvolvimento

8 jun, 2018

Build e Deploy automático com VSTS e Azure

Publicidade

Olá, pessoal!

Nós, como desenvolvedores de software, temos a responsabilidade de distribuir o resultado do que desenvolvemos para nosso cliente com qualidade, e nada melhor do que automatizar todo o processo de build e deploy.

Quando estamos desenvolvendo, precisamos testar nossa aplicação, e muitas empresas, com certeza, têm uma equipe de QA, que garante as funcionalidades da aplicação. Para isso, precisa-se de um ambiente em específico para serem realizados os testes por essa equipe de QA.

Existem várias estratégias que podem ser adotadas para a implantação do deploy nesse ambiente específico. Às vezes é feito manualmente pelo desenvolvedor, mas nada melhor que existir um processo automático que faça tanto o build, tanto como o deploy no servidor.

No exemplo que vou passar à vocês, a estratégia vai ser criar dois servidores no Azure, um servidor de QA e um servidor de Produção. A promoção do pacote em produção também será de forma automática, depois de uma autorização feita por um usuário.

Todo meu código está sendo gerenciado pelo VSTS.

Vamos lá!

Criei uma API em ASP .NET Core e adicionei à minha conta no VSTS.

Exemplo de API

Primeiro passo, é criar uma definição de build no VSTS:

Criar uma nova definição de build

Clique em “+ New definition” e configure o build da seguinte forma:

Selecione o source TFVC, pois neste exemplo o código está sendo gerenciado pelo VSTS, mas poderemos criar definições de build para o Git, Bitbucket, Subversion e etc.

Curiosidade: Não necessariamente o VSTS fará build em aplicações em C#; poderá fazer build de outras linguagens***.

Seleção do repositório do fonte

Depois clique em “Continue > Empty Process”.

Tela para adicionar passo a passo do build

Adicione esses passos na sequência, nesta definição de build.

Rode o build para verificar se está tudo certo. Se tiver, o build está como “executado com sucesso”.

Build com sucesso

O segundo passo é criar os dois ambientes no Azure.

Criei no Azure a aplicação “alface.azurewebsites.net”, que será o ambiente de pré-produção e o da aplicação repolho.azurewebsites.net, que será o ambiente de produção.

Para o funcionamento do deploy nesses ambientes, vamos usar a funcionalidade “Release” do VSTS. Essa funcionalidade serve para criar deploys em vários ambientes depois do build ser executado com sucesso, e a promoção a outros ambientes pode ser feita com a aprovação de um usuário.

Para se criar uma definição de Release, clique na aba “Releases” no VSTS

Definição de Release

Clique em “+ New definition” > “EmptyProcess” e configure o Release da seguinte forma abaixo:

Tela para configurar a definição de Release

Clique em “Add” em “Artifacts” para configurar o Build criado no passo anterior, como start do Release:

Configuração do Artifact

Para que quando o build for executado com sucesso, configure a trigger neste icone:

Configuração do trigger
Habilitando a trigger

Logo após isso, temos que configurar que o pacote gerado pelo build seja implantado no servidor de pré-produção alface.azurewebsites.net.

Mude o nome do environment para “Pré-Produção”, e clique no link conforme a figura abaixo para configurar o deploy.

Configuração do environment

Adicione a task Azure App Service Deploy:

Configuração da task do Azure

Configurado o ambiente de pré-produção, vamos criar o ambiente de produção:

Adicione um novo environment, e nomeie como “Produção”.

Criação de ambiente de Produção

Logo após, crie uma task para esse ambiente de produção nos mesmos moldes de pré-produção.

Configuração da task para Produção

Depois de configurados os ambientes, vamos configurar para que quando o ambiente de Pré-Produção estiver atualizado com o deploy, algum usuário receberá um e-mail para a aprovação do deploy.

Sendo assim, depois de aprovado pelo usuário, a promoção ao ambiente de produção será feita de forma automática.

Clique no ícone conforme a figura abaixo para configurar:

Configuração do Pré-deployment por usuário
Adicionando o usuário

Habilite o “Pre-deployment” com aprovação do usuário e adicione o usuário que fará a aprovação para a promoção ao ambiente de produção.

Configurados todos os passos, vamos testar!

Rodaremos o build novamente, e depois do sucesso, vamos ver o deploy sendo feito no ambiente alface.azurewebsites.net.

Build com Sucesso

Deploy sendo feito no alface.azurewebsites.net.

Release sendo executado

Depois de alguns minutos:

Deploy feito com sucesso

Ao abrir o alface.azurewebsites.net:

Api implantada no ambiente alface.azurewebsites.net

Enquanto isso, o ambiente repolho.azurewebsites.net, ainda sem o deploy.

Api ainda não implantada no ambiente repolho.azurewebsites.net

Logo após esse processo, um e-mail foi enviado para o usuário configurado no Pre-deployment do ambiente de Produção.

E-mail enviado para a aprovação do usuário

Ao clicar no email, irá abrir o VSTS para a aprovação da promoção ao ambiente de Produção, e aparecerá esse link para a aprovação ou reprovação da promoção no ambiente

Link para aprovação no VSTS

Ao clicar, abre-se um modal para a aprovação ou reprovação e um campo de descrição

Tela de aprovação

Ao aprovar o deploy para o ambiente de produção.

Deploy sendo executado

Depois de alguns minutos:

Deploy com sucesso

Ao abrir o repolho.azurewebsites.net.

Ambiente de Produção repolho.azurewebsites.net

Bom, neste caso fizemos um fluxo de como usar o VSTS e Azure, para o Build e Deploy automático em ambientes Pré-Produção e Produção. Pode ser feito em N servidores e a aprovação, por vários usuários.

Esse processo é simples e organizado para a melhor gestão de nosso código e o gerenciamento de pacotes, sem depender de alguma forma manual.

Espero que tenham gostado!

Até a próxima!