Black Friday 20% de desconto
Tá acabando

0

dias

00

hrs

00

min

00

seg

Primeiras aulas do curso Gitlab CI e Docker: Pipeline de entrega contínua

Gitlab CI e Docker: Pipeline de entrega contínua

Conhecendo gitlab CI:CD - Introdução

Sou o João e vou te acompanhar nesse curso de Integração Contínua e Entrega Contínua com GitLab Nesse curso estudaremos tudo a respeito de uma Pipeline, como ela funciona e quais são as suas etapas.

Ao final, teremos uma Pipeline por completo e vamos buildar um projeto. Executaremos os testes unitários, e quando o projeto passar no teste, realizaremos o deploy no ambiente externo.

Na sequência, notificaremos todos os envolvidos, seja porque tudo correu bem ou porque algo deu errado.

Dentro da Pipeline, abordaremos o que são os stages, os jobs, e quais serviços podemos subir dentro de um job. Veremos também variáveis de ambiente, possíveis de definir em momento de execução.

Aprenderemos o que é um runner dentro do GitLab, quem são os executores e como criamos nosso próprio executor. Além disso, vamos saber como executar uma notificação dentro da Pipeline, ou seja, quando queremos que esses scripts sejam executados, como notificações quando ocorrem acertos ou falhas.

Aguardo você no próximo vídeo.

Conhecendo gitlab CI:CD - O que é um pipeline?

Temos um desafio pela frente. Estamos trabalhando na equipe interna de desenvolvimento de software do Bytebank, e percebemos que temos sempre os mesmos problemas em todos os projetos que desenvolvemos.

São problemas de features que colocamos em ambiente de produção, e ao chegar na produção, quebram. Ou aquela famosa frase "Na minha máquina funciona", porque o desenvolvedor testa na própria máquina, mas quando coloca na produção, não funciona.

Temos alguns gargalos entre o desenvolvimento e o deploy dessa aplicação no ambiente externo, de homologação, com alguma demora. E devido a pressão para as entregas, com a cobrança dos clientes, acabamos queimando algumas etapas do desenvolvimento. Por exemplo, desenvolvemos, não rodamos o teste unitário e publicamos isso em produção.

Por todas essas razões estamos recebendo uma forte cobrança da gerência e precisamos melhorar nosso processo. Para isso, vamos implementar a Integração Contínua e Entrega Contínua.

Não pularemos mais essas etapas, garantindo que todas elas sejam respeitadas. e nossa intenção é que tenhamos o maior gargalo o possível, ou seja, não depender de nenhuma outra área para realizar um teste unitário ou publicar no ambiente de homologação.

A partir do momento que desenvolvermos, fizermos o commit no versionador (no caso, usamos o Git) e dermos o push, automaticamente vamos startar uma Pipeline que vai testar nossa aplicação. Se ela for testada com sucesso, vamos promovê-la para um ambiente externo.

Uma Pipeline dentro da Integração Contínua basicamente é onde todos os processos acontecem. Vamos pensar numa linha em que temos as marcações, que chamaremos de jobs. Esses jobs serão os passos que queremos que a Pipeline execute.

No Bytebank nós desenvolvemos, rodamos o teste unitário. Se a aplicação passar nos testes, ela vai para o ambiente de homologação. Passando pela homologação, vai para a produção. Colocaremos esses passos na Pipeline e a partir do momento que versionarmos, ela será startada e vai rodar um teste unitário. Passando no teste, o próximo passo será realizar o deploy.

Para o curso, usaremos a ferramenta chamada GitLab. Procurando no Google por "GitLab", podemos acessar o site gitlab.com e utilizaremos ele para versionar nosso código e usar a Integração Contínua. Se ainda não tiver uma conta, será necessário criá-la no site.

Usaremos a versão "community edition", gratuita, mas conseguiremos versionar nossos projetos e eles ficarão privados. Caso queira uma conta Premium, será possível fazer o upgrade posteriormente, mas a versão free já atende nossas necessidades,

Vamos logar na conta e criar um projeto novo dentro do GitLab. Quando entrarmos, será mostrada a área de projetos para quem já possui uma conta e projetos. Se esse é o primeiro acesso, haverá o botão "New Project" do lado direito da tela. Geraremos um projeto do zero chamado "Bytebank".

Deixaremos ele projeto, para mais ninguém acessar, e clicaremos em "Create project". Se quisermos trazer um projeto de um outro repositório, vamos conseguir com os comandos mostrados conforme descemos a barra de rolagem na página.

Além do versionador do GitLab, vamos ao menu na lateral esquerda da tela e utilizaremos a opção "CI/CD" e estudaremos o que é uma Pipeline, o que são os Jobs e como colocamos isso nos "Schedules", ou uma agenda para rodar num momento escolhido.

No próximo vídeo veremos como criar a Pipeline dentro de um projeto.

Conhecendo gitlab CI:CD - Hello World com um pipeline

Agora que temos nosso projeto criado, ainda em branco, vamos iniciar nossa Pipeline.

Dentro do GitLab, o arquivo que representa a configuração da Pipeline é o "gitlab-ci". Clicaremos em "New file" e criaremos um novo arquivo que ficará oculto dentro do nosso projeto. Ele se chamará ".gitlab-ci.yml". Dentro dele haverá todos os jobs, serviços que a Pipeline executará.

Dentro desse arquivo criaremos nosso primeiro serviço, job. Abaixo dele, colocaremos um script:. Nosso job poderá ter tantos scripts quanto quisermos. Abaixo de script: colocaremos um traço -. Na sequência colocaremos nosso script, - echo "hello world", ou seja, o job não fará mais do que um "hello world".

job:
    script:
    - echo "hello world"

Já temos o conteúdo do script, colocaremos um comentário e faremos o commit e o push dentro do repositório. Como já falamos anteriormente, a Pipeline é startada sempre que fazemos um commit e um push dentro do repositório do projeto.

Então, em "Commit message", escreveremos "iniciando com gitlab-ci" e clicaremos em "Commit changes".Então criamos nosso arquivo, commitamos e demos o push. Aparecerá para nós um ícone de lua que significa que nossa Pipeline foi startada.

Se voltarmos ao menu "CI/CD" que fica na lateral e clicarmos nesse menu, já teremos uma Pipeline, então automaticamente clicando nessa opção, caímos no sub-menu "Pipelines". O ícone mostrará a mensagem "running", indicando que a Pipeline está sendo executada.

Clicando sobre "running" teremos a situação da nossa Pipeline, que atualmente tem um job. Clicando dentro dele, conseguimos saber o que ele está fazendo, e se trata do nosso "hello world". Ao final, veremos uma mensagem de sucesso, então tudo ocorreu corretamente na Pipeline.

Se voltarmos no menu "CI/CD" e clicarmos novamente, o status do job será "passed", passou. Portanto, dentro da Pipeline, se todos os processos forem executados com sucesso, o status do job será a mensagem "passed" em verde.

Colocaremos ainda dentro da Pipeline o build do nosso projeto e os testes unitários. Caso os testes unitários passem, vamos promover isso para o ambiente. O interessante do funcionamento da Pipeline será garantir que todos os passos sejam respeitados.

job:
     script:
    - echo "hello world"

Outro detalhe é que o arquivo que configuramos a Pipeline tem uma indentação par. Vamos quebrar a indentação do job propositalmente e comentar como "quebrando indentacao". Vamos commitar e dar um push, voltar ao menu "CI/CD" e veremos que agora o status aparecerá como "failed" porque nosso arquivo estará inválido.

Então, teremos que tomar cuidado com a indentação do arquivo, que deve ser sempre par, com dois espaços. Teremos sempre o job, e para adicionar os filhos dele abaixo, precisaremos colocar dois espaços na frente.

Mas há outra maneira de testar esse arquivo antes de commitar e dar o push, até para evitar que a Pipeline quebre. Vamos copiar o conteúdo do arquivo que acabamos de criar, ir para o menu "CI/CD" e clicar no botão "CI LInt" no canto direito da tela.

Abriremos uma página para checar o conteúdo de "gitlab-ci". Então, antes de commitar, vamos validar para saber se tudo funcionará corretamente. Colaremos o conteúdo com a indentação incorreta neste campo e clicaremos em "Validate". Receberemos a resposta de que o arquivo não é válido, pois erramos a sintaxe.

Vamos arrumar a indentação, deixando as linhas com espaços pares e validaremos novamente, e assim teremos o resultado de que a sintaxe está correta e ele executará um job com o nome de job. O que esse job fará, será echo "hello world".

Sobre o curso Gitlab CI e Docker: Pipeline de entrega contínua

O curso Gitlab CI e Docker: Pipeline de entrega contínua possui 151 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de DevOps em Infraestrutura, ou leia nossos artigos de Infraestrutura.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Tá acabando

0

dias

00

hrs

00

min

00

seg

  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 20%

Premium

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$60
à vista R$900 R$720
Matricule-se

Premium Plus

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$80
à vista R$1.200 R$960
Matricule-se

Max

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$96
à vista R$1.440 R$1.152
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas