SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Descomplicando o CI/CD
com Jenkins, Docker Swarm e Github
Marcelo de Souza Vieira
Quando a gente lê sobre CI/CD
“CI/CD é um método para entregar aplicações com frequência aos clientes. Para isso,
é aplicada a automação nas etapas do desenvolvimento de aplicações. Os principais
conceitos atribuídos a esse método são integração, entrega e implantação contínuas.
Com o CI/CD, é possível solucionar os problemas que a integração de novos códigos
pode causar para as equipes de operações e desenvolvimento (o famoso ‘inferno de
integração’).
Especificamente, o CI/CD aplica monitoramento e automação contínuos a todo o
ciclo de vida das aplicações, incluindo as etapas de teste e integração, além da
entrega e implantação. Juntas, essas práticas relacionadas são muitas vezes
chamadas de ‘pipeline de CI/CD’ e compatíveis com o trabalho conjunto das equipes
de operações e desenvolvimento com métodos ágeis.”
Quando vamos aplicar pela primeira
vez
Simples assim?
● Projetos longos;
● Ficamos 1 mês fazendo uma atividade;
● Muitas vezes nem ambiente de homologação existe;
Daí lembro de algumas características dos projetos que participei.
Eu fico pensando.
“Vai dar uma merda se for pra produção
direto.”
Em resumo
● Ter um processo de desenvolvimento eficiente;
● Ter um time com maturidade no processo de C/CD;
● Ter uma infraestrutura com monitoramento;
● etc...
Não é bem assim. Implantar um CI/CD eficiente, com todos os seus
benefícios, depende de muitos detalhes;
Então vamos descomplicar.
O que é o CI/CD?
CI/CD é um método para entregar aplicações com frequência aos clientes.
● Monitoramento;
● Automatização continua a todo o ciclo de vida das aplicações;
● Entrega e implantações;
Todo time de desenvolvimento, toda empresa, deseja desenvolver o
melhor software, que no final, alcance uma alta qualidade técnica e que
entregue maior valor às reais necessidades do negócio.
Para atingir esses objetivos, não adianta chegar no final e testar toda a
aplicação, para saber se está tudo funcionando.
A chave é ter um feedback curto, tanto na qualidade do código quanto na
validação do negócio.
Quanto mais rápido for para desenvolver algo, fazer o code review, colocar
em um ambiente de teste para ser validado pelo dono do produto e ir
para a produção, melhor vai ser o resultado final.
Mas o que é um CI (Continuos Integration)
Então o CI é uma prática de desenvolvimento que tem o
objetivo de fazer merges constantes com a branch principal,
fazer automatização dos testes e code review. Essas práticas
fazem com que as interações sejam curtas, evitando os
métodos antigos, que ficávamos semanas ou meses
trabalhando em uma atividade, sem atualizar o código e
quando iríamos fazer os merges, dava conflito em tudo. A
integração contínua coloca uma grande ênfase na
automatização de testes para verificar se o código não está
corrompido sempre que novos commits são integrados.
O que é um CD (Continuous Delivery)
É a automatização do processo de liberação para seu cliente.
Com o CD você automatiza seu processo de liberação decidindo
liberar diariamente, semanalmente, mensalmente,
dependendo da maturidade do seu time.
O que é um CD (Continuous Deployment)
É o continuous delivery com um detalhe. Não tem interação
humana.
Estou desenvolvendo um produto
complexo ou um MVP para minha
startup, porque o CI/CD é
importante?
“Se sua empresa puder implantar coisas
novas na produção centenas de vezes
por dia, poderá se recuperar de erros
quase instantaneamente. Se você puder
se recuperar de erros quase
instantaneamente, poderá assumir mais
riscos. Se você poder assumir mais
riscos, poderá fazer mais experimentos.
Os resultados dos experimentos podem
transformar na sua próxima vantagem
competitiva.”

Mais conteúdo relacionado

Mais procurados

Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageisDover H
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Vinta Software
 
Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega ContínuaMarlon Bernardes
 
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...tdc-globalcode
 
Pipelines para CI/CD com kubernetes - Entregue valor ao cliente
Pipelines para CI/CD com kubernetes - Entregue valor ao clientePipelines para CI/CD com kubernetes - Entregue valor ao cliente
Pipelines para CI/CD com kubernetes - Entregue valor ao clienteCarlos Santana
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de softwareLaura_ifpe
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Mariana Elisa Moisés , CTFL-AT,MBA
 
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
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GITDenis Santos
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Denis Santos
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começarAdriano Tavares
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaGrupo de Testes Carioca
 
In-IT Status Report 20080526
In-IT Status Report 20080526In-IT Status Report 20080526
In-IT Status Report 20080526in_it
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de softwareVandre Ramos, MSc, MBA, CSM
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMFelipe Freire
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaFernando Celarino
 

Mais procurados (20)

Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageis
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
 
Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega Contínua
 
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...
TDC2018FLN | Trilha Agile - Criando o produto certo usando Impact Mapping e t...
 
Pipelines para CI/CD com kubernetes - Entregue valor ao cliente
Pipelines para CI/CD com kubernetes - Entregue valor ao clientePipelines para CI/CD com kubernetes - Entregue valor ao cliente
Pipelines para CI/CD com kubernetes - Entregue valor ao cliente
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!Visual Regression Tests - Dando um Upload nos seus testes de UI!
Visual Regression Tests - Dando um Upload nos seus testes de UI!
 
T1 g8 iteração
T1 g8   iteraçãoT1 g8   iteração
T1 g8 iteração
 
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
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação Contínua
 
In-IT Status Report 20080526
In-IT Status Report 20080526In-IT Status Report 20080526
In-IT Status Report 20080526
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estrutura
 

Semelhante a CI/CD com Jenkins, Docker e Github

Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoMario Mendonça
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...Antonio Lobato
 
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
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agileananegrello
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?Kamilla Queiroz Xavier
 
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e AzureJaqueline Ramos
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...iMasters
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_WarmlingChaordic
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing Walter Farias
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftGraziella Bonizi
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
GABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDJaqueline Ramos
 

Semelhante a CI/CD com Jenkins, Docker e Github (20)

Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimento
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
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
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agile
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?
 
Android apps ci
Android apps ciAndroid apps ci
Android apps ci
 
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
GABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CDGABC 2018 - Hands-On: DevOps, CI e CD
GABC 2018 - Hands-On: DevOps, CI e CD
 

CI/CD com Jenkins, Docker e Github

  • 1. Descomplicando o CI/CD com Jenkins, Docker Swarm e Github Marcelo de Souza Vieira
  • 2. Quando a gente lê sobre CI/CD “CI/CD é um método para entregar aplicações com frequência aos clientes. Para isso, é aplicada a automação nas etapas do desenvolvimento de aplicações. Os principais conceitos atribuídos a esse método são integração, entrega e implantação contínuas. Com o CI/CD, é possível solucionar os problemas que a integração de novos códigos pode causar para as equipes de operações e desenvolvimento (o famoso ‘inferno de integração’). Especificamente, o CI/CD aplica monitoramento e automação contínuos a todo o ciclo de vida das aplicações, incluindo as etapas de teste e integração, além da entrega e implantação. Juntas, essas práticas relacionadas são muitas vezes chamadas de ‘pipeline de CI/CD’ e compatíveis com o trabalho conjunto das equipes de operações e desenvolvimento com métodos ágeis.”
  • 3. Quando vamos aplicar pela primeira vez
  • 4. Simples assim? ● Projetos longos; ● Ficamos 1 mês fazendo uma atividade; ● Muitas vezes nem ambiente de homologação existe; Daí lembro de algumas características dos projetos que participei. Eu fico pensando. “Vai dar uma merda se for pra produção direto.”
  • 5. Em resumo ● Ter um processo de desenvolvimento eficiente; ● Ter um time com maturidade no processo de C/CD; ● Ter uma infraestrutura com monitoramento; ● etc... Não é bem assim. Implantar um CI/CD eficiente, com todos os seus benefícios, depende de muitos detalhes;
  • 6. Então vamos descomplicar. O que é o CI/CD? CI/CD é um método para entregar aplicações com frequência aos clientes. ● Monitoramento; ● Automatização continua a todo o ciclo de vida das aplicações; ● Entrega e implantações;
  • 7. Todo time de desenvolvimento, toda empresa, deseja desenvolver o melhor software, que no final, alcance uma alta qualidade técnica e que entregue maior valor às reais necessidades do negócio. Para atingir esses objetivos, não adianta chegar no final e testar toda a aplicação, para saber se está tudo funcionando.
  • 8. A chave é ter um feedback curto, tanto na qualidade do código quanto na validação do negócio. Quanto mais rápido for para desenvolver algo, fazer o code review, colocar em um ambiente de teste para ser validado pelo dono do produto e ir para a produção, melhor vai ser o resultado final.
  • 9. Mas o que é um CI (Continuos Integration) Então o CI é uma prática de desenvolvimento que tem o objetivo de fazer merges constantes com a branch principal, fazer automatização dos testes e code review. Essas práticas fazem com que as interações sejam curtas, evitando os métodos antigos, que ficávamos semanas ou meses trabalhando em uma atividade, sem atualizar o código e quando iríamos fazer os merges, dava conflito em tudo. A integração contínua coloca uma grande ênfase na automatização de testes para verificar se o código não está corrompido sempre que novos commits são integrados.
  • 10.
  • 11. O que é um CD (Continuous Delivery) É a automatização do processo de liberação para seu cliente. Com o CD você automatiza seu processo de liberação decidindo liberar diariamente, semanalmente, mensalmente, dependendo da maturidade do seu time.
  • 12. O que é um CD (Continuous Deployment) É o continuous delivery com um detalhe. Não tem interação humana.
  • 13.
  • 14. Estou desenvolvendo um produto complexo ou um MVP para minha startup, porque o CI/CD é importante?
  • 15. “Se sua empresa puder implantar coisas novas na produção centenas de vezes por dia, poderá se recuperar de erros quase instantaneamente. Se você puder se recuperar de erros quase instantaneamente, poderá assumir mais riscos. Se você poder assumir mais riscos, poderá fazer mais experimentos. Os resultados dos experimentos podem transformar na sua próxima vantagem competitiva.”