SlideShare a Scribd company logo
1 of 30
Download to read offline
CONTINUOUS
INTEGRATION
DELIVERY
DEPLOYMENT
DAN JESUS
Engenheiro de software / devops na F(x),
pai e jogador de basquete na horas vagas.
TÉCNICAS PARA
ENTREGAR SOFTWARE
RAPIDAMENTE
GITHUB
JANEIRO À SETEMBRO DE 2012 FORAM REALIZADOS
41.679 BUILDS E 12.602 DEPLOYS
NO DIA 23 DE AGOSTO DE 2012 REALIZADOS
563 BUILDS E 175 DEPLOYS.
AMAZON
REALIZA O DEPLOY DE UM NOVO
SOFTWARE A CADA SEGUNDO
“Integração Contínua é uma pratica de
desenvolvimento de software onde os
membros de um time integram seu
trabalho frequentemente…
-Martin Fowler
INTEGRAÇÃO CONTINUA
BASE INTEGRAÇÃO CONTÍNUA
‣ Controle de Versão (Git, Mercurial, Subversion, etc.)
‣ Principais ferramentas de controle de versão (Github,
Bitbucket e Gitlab)
BASE INTEGRAÇÃO CONTÍNUA
‣ Servidor de Integração Contínua (Jenkins, Travis, Codeship,
etc.)
BASE INTEGRAÇÃO CONTÍNUA
‣ Ferramenta de automação de build (Gulp, NPM, Grunt,
Webpack, Shell, Maven, Gradle.)
BASE INTEGRAÇÃO CONTÍNUA
‣ Testes Unitários (Mocha, Jest, Ava, JUnit, TestNG, phpunit,
etc.)
A Entrega Contínua é um conjunto de práticas
com o objetivo de garantir que um novo código
esteja apto para ser disponibilizado em
ambiente de produção.
ENTREGA CONTÍNUA
BASE ENTREGA CONTÍNUA
‣ Ambientes de Homologação, Dev e Produção configuráveis
BASE ENTREGA CONTÍNUA
‣ Ambientes de Homologação, Dev e Produção configuráveis
‣ Processo de deploy automatizado (Capistrano, Git Hook,
Rsync, DeployBot etc.)
BASE ENTREGA CONTÍNUA
‣ Ambientes de Homologação, Dev e Produção configuráveis
‣ Processo de deploy automatizado (Capistrano, Git Hook,
Rsync, DeployBot etc.)
‣ Ferramenta de integração contínua (Jenkins, Travis)
Código pronto para deploy.
DEPLOY CONTÍNUO
‣ Assim que o programador julga pronto seu código e aciona a
solicitação para deploy, são realizadas todas validações
previstas nas metodologias anteriores (Integração Contínua,
Entrega Contínua)
DEPLOY CONTÍNUO
NA PRÁTICA COM
NODE.JS
O PROJETO
Desenvolver api simples em node.js que
devolve um hello world quando fazemos
um get em seu endpoint principal.
CONFIGURANDO O PROJETO
➤ Testes unitários com jest
➤ Versão do node.js latest (v8)
➤ Projeto no GitHub 

https://github.com/danjesus/jenkins-pipeline-sample
CONFIGURANDO O JENKINS PIPELINE
‣ Configuração do Jenkins pipeline
pipeline {
agent {
docker 'node:7.10-alpine'
}
stages {
stage('Build') {
steps {
echo 'Building..'
sh 'npm install'
}
}
stage('Test') {
steps {
echo 'Testing..'
sh 'npm t'
}
}
}
}
DÚVIDAS?danper.jesus@gmail.com
jesus@fdex.com.br
github.com/danjesus
REFERÊNCIAS
‣ http://www.zdnet.com/article/how-amazon-handles-a-new-software-
deployment-every-second/
‣ http://cwisoftware.github.io/drops/integracao-continua-e-deploy-
continuo-tempo-e-dinheiro
‣ https://www.facebook.com/note.php?note_id=10150660826788920
‣ https://www.4linux.com.br/diferencas-entre-integracao-deploy-e-
entrega-continua
‣ http://blog.justdigital.com.br/devops-qual-a-diferencas-entre-
continuous-delivery-continuous-integration-e-continuous-
deployment/
‣ https://www.infoq.com/br/presentations/deploy-continuo-guilherme
REFERÊNCIAS
‣ http://blog.algorich.com.br/2014/05/07/integracao-e-deploy-
continuos/
‣ http://agiletesters.com.br/topic/171/qual-a-diferen%C3%A7a-entre-
entrega-cont%C3%ADnua-e-deploy-cont%C3%ADnuo
‣ https://github.com/fga-gpp-mds/00-Disciplina/wiki/
Integra%C3%A7%C3%A3o-Cont%C3%ADnua---Deploy-
Cont%C3%ADnuo
‣ https://medium.com/netflix-techblog/deploying-the-netflix-
api-79b6176cc3f0
‣ https://www.youtube.com/watch?v=ZLBhVEo1OG4
‣ https://pt.slideshare.net/bernardesmarlon/da-integrao-entrega-
contnua

More Related Content

What's hot

Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando OctopusAndré Minelli
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Renato Groff
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comandoRafael Gomes
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2Vinicius Moura
 
GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019Gabriel Machado
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Javatdc-globalcode
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Edison Costa
 
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
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao FlywayJadson Santos
 
Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Rafael Gomes
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Renato Groff
 
Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)viniciusban
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)viniciusban
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoDenis Santos
 

What's hot (20)

Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comando
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Interop git hubactions v2
Interop git hubactions v2Interop git hubactions v2
Interop git hubactions v2
 
GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019GitHub Actions @ Oktober Cloud 2019
GitHub Actions @ Oktober Cloud 2019
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Java
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
 
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
 
Webpack
Webpack Webpack
Webpack
 
Git na pratica
Git na praticaGit na pratica
Git na pratica
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao Flyway
 
Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!Cansei de trabalho manual, quero automatizar tudo!
Cansei de trabalho manual, quero automatizar tudo!
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
 
Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
 

Similar to CI/CD com Node.js

Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemGlenio Borges
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
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
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Construindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppConstruindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppMarcela Godoy Cruz
 
.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
 
[.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
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
 
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
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaLu
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 

Similar to CI/CD com Node.js (20)

Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Arquitetura Nativa na Nuvem
Arquitetura Nativa na NuvemArquitetura Nativa na Nuvem
Arquitetura Nativa na Nuvem
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Construindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppConstruindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor App
 
.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...
 
[.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
 
DevOps
DevOpsDevOps
DevOps
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
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
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Apres git geinfo2012
Apres git geinfo2012Apres git geinfo2012
Apres git geinfo2012
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 

CI/CD com Node.js