SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
GitLab CI/CD com
Python
31º Python Floripa - Élysson MR -
@elyssonmr
Spoilers
O que é continuous Integration?
Conceitos utilizados no GitLab CI/CD
Exemplo
Conclusão
Sobre Mim
Élysson Mendes Rezende aka ElyssonMR
#SoftPlayer
Doteiro (pelo menos eu tento)
Aspirante em arquitetura de Software
Introdução
Ajuda na melhoria da qualidade do código
Manutenabilidade do sistema
Encontrar problemas com antecedência
Problemas para validação e deploy do sistema
O que é Continuous Integration
Tradução: Integração contínua
Metodologia de desenvolvimento em que cada entrega de trabalho é
integrada continuamente com o todo
Usada para identificar com antecedência problemas no código,
incompatibilidades e/ou impacto em partes não alteradas
Previne que cada feature incorporada “não atrapalhe o todo”
O que é Continuous Integration
Detecta falhas rapidamente
Abre portas para entregas em produção automatizadas
Não necessita de alguém para manualmente executar os testes, validar o
código e/ou gerar os artefatos necessários
Possibilita entregas de valor mais ágeis (inclusive é recomendado pelo Scrum)
O que é Continuous Delivery
Tradução: Entrega contínua
Habilidade de fazer com que todas as modificações entrem em produção ou
nas mãos dos usuários
Times de alto desempenho sempre fazem entregas frequentes
O custo é baixo porque não teremos que delegar o delivery para alguém
GitLab CI/CD
Ferramenta de Continuous Integrations incorporada ao GitLab
Permite diversas personalizações no processo
Fortemente integrado com o ecossistema do GitLab (pages, Docker Registry e
etc)
Multiplataforma e multi linguagem o/
GitLab CI/CD
Fácil de aprender (utiliza arquivos YML)
Escalável
Suporta docker
GitLab CI/CD
GitLab CI/CD
Podemos fazer todo o processo de DevOPS de forma automatizada
GitLab CI/CD - Conceitos -> Stages
São os estágios do “pipeline”
Permitem criar uma ordem de execução dentro do “pipeline”
Os Jobs dentro de cada stage são executados em paralelo
Os Jobs do próximo stage não executam antes que os jobs do stage anterior
finalizem
Para saber mais: GitLab Stages
GitLab CI/CD - Conceitos -> Stages
Exemplo de Stages:
GitLab CI/CD - Conceitos -> Jobs
São as tarefas que serão executadas em cada estágio
Pode ser definido um número ilimitado de jobs por arquivo de configuração
Os Jobs são escolhidos pelos Runners para serem executados
É importante que cada Job seja executado sem depender e/ou interferir outro
(lembrando que cada Stage executa seus jobs em paralelo)
Para saber mais: GitLab Jobs
GitLab CI/CD - Conceitos -> Jobs
As palavras reservadas não podem ser utilizadas como nome dos Jobs
Examplo:
GitLab CI/CD - Conceitos -> Variáveis
São como variáveis de ambiente nos Runners
Podem ser definidas dentro dos arquivos de configuração (global ou local)
Podem ser privadas (neste caso são definidas no projeto ou no grupo)
Algumas variáveis são setadas pelo Runner quando o job é executado.
Exemplo: $CI_COMMIT_TAG
Para saber mais: GitLab Variables
GitLab CI/CD - Conceitos -> Variáveis
Exemplos:
GitLab CI/CD - Conceitos -> Runners
São máquina virtuais isoladas que executam os Jobs definidos nos Stages
Podem ser configurados no Windows, Linux e Mac
Os Runners podem ser específicos (executam uma tarefa por vez) ou
compartilhados (podem executar múltiplas tarefas)
É recomendado que não sejam instalados na mesma máquina que o GitLab
GitLab CI/CD - Conceitos -> Runners
Podemos registrar diversos Runners, no Kubernetes eles podem ser auto
escaláveis
Podemos adicionar tags nos Runners, por exemplo, um Runner com uma
versão paga de algum software (ex: Structure101)
GitLab CI/CD - Conceitos -> Runners
Exemplos:
Na Prática
Projeto: Products API
Vamos fazer um pequeno incremento em um projeto, depois iremos executar
o pipeline de CI/CD e analisar o que esta sendo executado. Ao final iremos
verificar a nova versão no Docker hub e também verificar que os testes
unitários vão gerar um HTML que será disponibilizado no Pages do GitLab
Conclusões
Cada vez mais precisamos fazer entregas frequentes
Quando um problema é detectado mais a frente em um processo ele acaba
custando mais caro para ser corrigido
Quanto mais passos automatizados melhor, muitos erros vão para produção
devido a serem executados por humanos
Para saber mais ;)
https://docs.gitlab.com/ce/ci/yaml/README.html
https://docs.gitlab.com/ce/ci/runners/README.html
http://missaodevops.com.br/docs/gitlabci_home.html
https://www.scrum.org/resources/use-scrum-continuous-delivery-build-right-
thing
https://continuousdelivery.com/
Desafio o/
Obrigado!
Élysson MR
Twitter: @elyssonmr
Email: elyssonmr at gmail dot com
Telegram: @elyssonmr
LinkedIn: elyssonmr

Mais conteúdo relacionado

Mais procurados

Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Trends
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testeskinow
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoThoughtworks
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A OrigemAndré Dias
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsStefan Teixeira
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaFernando Boaglio
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...tdc-globalcode
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014Leo Lorieri
 
Existe Vida além do FTP!
Existe Vida além do FTP! Existe Vida além do FTP!
Existe Vida além do FTP! Gustavo Pereira
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaRafael Gomes
 
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...Marcelo Soares
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControlLuthiano Vasconcelos
 
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Robson Agapito Correa
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
 

Mais procurados (20)

Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A Origem
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
 
Jenkins
JenkinsJenkins
Jenkins
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
Existe Vida além do FTP!
Existe Vida além do FTP! Existe Vida além do FTP!
Existe Vida além do FTP!
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestrutura
 
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...
Como convenci meu chefe que devíamos automatizar testes - Marcelo Soares - TD...
 
Ruby Conf Brasil 2015
Ruby Conf Brasil 2015Ruby Conf Brasil 2015
Ruby Conf Brasil 2015
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControl
 
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 

Semelhante a Gitlab CI/CD com python

Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaHumberto Streb
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsEdson Celio
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...Jadson Santos
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIECloves da Rocha
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
Bugs, DVCS e tools
Bugs, DVCS e toolsBugs, DVCS e tools
Bugs, DVCS e toolsPaulo Mattos
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftGraziella Bonizi
 

Semelhante a Gitlab CI/CD com python (20)

Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIE
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Bugs, DVCS e tools
Bugs, DVCS e toolsBugs, DVCS e tools
Bugs, DVCS e tools
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
 
Git + Github
Git + GithubGit + Github
Git + Github
 

Gitlab CI/CD com python

  • 1. GitLab CI/CD com Python 31º Python Floripa - Élysson MR - @elyssonmr
  • 2. Spoilers O que é continuous Integration? Conceitos utilizados no GitLab CI/CD Exemplo Conclusão
  • 3. Sobre Mim Élysson Mendes Rezende aka ElyssonMR #SoftPlayer Doteiro (pelo menos eu tento) Aspirante em arquitetura de Software
  • 4. Introdução Ajuda na melhoria da qualidade do código Manutenabilidade do sistema Encontrar problemas com antecedência Problemas para validação e deploy do sistema
  • 5. O que é Continuous Integration Tradução: Integração contínua Metodologia de desenvolvimento em que cada entrega de trabalho é integrada continuamente com o todo Usada para identificar com antecedência problemas no código, incompatibilidades e/ou impacto em partes não alteradas Previne que cada feature incorporada “não atrapalhe o todo”
  • 6. O que é Continuous Integration Detecta falhas rapidamente Abre portas para entregas em produção automatizadas Não necessita de alguém para manualmente executar os testes, validar o código e/ou gerar os artefatos necessários Possibilita entregas de valor mais ágeis (inclusive é recomendado pelo Scrum)
  • 7. O que é Continuous Delivery Tradução: Entrega contínua Habilidade de fazer com que todas as modificações entrem em produção ou nas mãos dos usuários Times de alto desempenho sempre fazem entregas frequentes O custo é baixo porque não teremos que delegar o delivery para alguém
  • 8. GitLab CI/CD Ferramenta de Continuous Integrations incorporada ao GitLab Permite diversas personalizações no processo Fortemente integrado com o ecossistema do GitLab (pages, Docker Registry e etc) Multiplataforma e multi linguagem o/
  • 9. GitLab CI/CD Fácil de aprender (utiliza arquivos YML) Escalável Suporta docker
  • 11. GitLab CI/CD Podemos fazer todo o processo de DevOPS de forma automatizada
  • 12. GitLab CI/CD - Conceitos -> Stages São os estágios do “pipeline” Permitem criar uma ordem de execução dentro do “pipeline” Os Jobs dentro de cada stage são executados em paralelo Os Jobs do próximo stage não executam antes que os jobs do stage anterior finalizem Para saber mais: GitLab Stages
  • 13. GitLab CI/CD - Conceitos -> Stages Exemplo de Stages:
  • 14. GitLab CI/CD - Conceitos -> Jobs São as tarefas que serão executadas em cada estágio Pode ser definido um número ilimitado de jobs por arquivo de configuração Os Jobs são escolhidos pelos Runners para serem executados É importante que cada Job seja executado sem depender e/ou interferir outro (lembrando que cada Stage executa seus jobs em paralelo) Para saber mais: GitLab Jobs
  • 15. GitLab CI/CD - Conceitos -> Jobs As palavras reservadas não podem ser utilizadas como nome dos Jobs Examplo:
  • 16. GitLab CI/CD - Conceitos -> Variáveis São como variáveis de ambiente nos Runners Podem ser definidas dentro dos arquivos de configuração (global ou local) Podem ser privadas (neste caso são definidas no projeto ou no grupo) Algumas variáveis são setadas pelo Runner quando o job é executado. Exemplo: $CI_COMMIT_TAG Para saber mais: GitLab Variables
  • 17. GitLab CI/CD - Conceitos -> Variáveis Exemplos:
  • 18. GitLab CI/CD - Conceitos -> Runners São máquina virtuais isoladas que executam os Jobs definidos nos Stages Podem ser configurados no Windows, Linux e Mac Os Runners podem ser específicos (executam uma tarefa por vez) ou compartilhados (podem executar múltiplas tarefas) É recomendado que não sejam instalados na mesma máquina que o GitLab
  • 19. GitLab CI/CD - Conceitos -> Runners Podemos registrar diversos Runners, no Kubernetes eles podem ser auto escaláveis Podemos adicionar tags nos Runners, por exemplo, um Runner com uma versão paga de algum software (ex: Structure101)
  • 20. GitLab CI/CD - Conceitos -> Runners Exemplos:
  • 21. Na Prática Projeto: Products API Vamos fazer um pequeno incremento em um projeto, depois iremos executar o pipeline de CI/CD e analisar o que esta sendo executado. Ao final iremos verificar a nova versão no Docker hub e também verificar que os testes unitários vão gerar um HTML que será disponibilizado no Pages do GitLab
  • 22. Conclusões Cada vez mais precisamos fazer entregas frequentes Quando um problema é detectado mais a frente em um processo ele acaba custando mais caro para ser corrigido Quanto mais passos automatizados melhor, muitos erros vão para produção devido a serem executados por humanos
  • 23. Para saber mais ;) https://docs.gitlab.com/ce/ci/yaml/README.html https://docs.gitlab.com/ce/ci/runners/README.html http://missaodevops.com.br/docs/gitlabci_home.html https://www.scrum.org/resources/use-scrum-continuous-delivery-build-right- thing https://continuousdelivery.com/
  • 25. Obrigado! Élysson MR Twitter: @elyssonmr Email: elyssonmr at gmail dot com Telegram: @elyssonmr LinkedIn: elyssonmr