SlideShare uma empresa Scribd logo
1 de 21
1
I n t e g r a ç ã o C o n t í n u a
2
Quem somos
Altamir
• 21 anos de TI
• 5 anos de agilidade
• 4 anos com automação e
Integração Contínua
• 2 anos de CWI
2 projetos na CWI com
Integração Contínua
Alexandre
• 14 anos de TI
• 4 anos de agilidade
• 3 anos com Integração
Contínua
• 4 anos de CWI
8 projetos na CWI com
Integração Contínua em 6
clientes
3
Integração Contínua
O que é
Custos-benefícios
Quando usar/recomendar
Onde a CWI já está usando
4
O que é (como não deve ser)
5
O que é – By the book
“Integração Contínua é uma pratica de desenvolvimento de
software onde os membros de um time integram seu trabalho
frequentemente, geralmente cada pessoa integra pelo menos
diariamente – podendo haver múltiplas integrações por dia.
Cada integração é verificada por um build automatizado
(incluindo testes) para detectar erros de integração o mais
rápido possível. Muitos times acham que essa abordagem leva
a uma significante redução nos problemas de integração e
permite que um time desenvolva software coeso mais
rapidamente.”
- Martin Fowler, Chief Scientist, ThoughtWorks
6
O que é – Níveis de maturidade
Code Build Integrate Test Release Deploy Operate
Development
Continuous Integration
Continuous Delivery
Continuous Deployment
7
O que é – Utopia?
8
O que é - Ferramentas
Jenkins Travis CI
TFS TeamCity
9
O que é
10
Custos-benefícios
Benefícios
Deploy automático
Escalabilidade
Velocidade/Foco
Transparência
Alertas de inconformidades
Execução automática de testes
Redução de riscos
Custos
INFRA
Setup inicial da ferramenta
Setup do ambiente de
execução
Integrar testes (PRJ em
andamento)
Construção dos scripts de build
Construir testes
11
Custos-benefícios
“Continuous Integration doesn’t get rid of bugs,
but it does make them dramatically easier to
find and remove.”
- Martin Fowler, Chief Scientist, ThoughtWorks
“Integração Contínua não te livra dos bugs, mas
torna o processo de encontrar e resolver
drasticamente mais fácil” – Tradução livre
12
Custos-benefícios
Servidor pirataEquipe
Visual Studio Online
Amazon AWS
Servidor Aplicação INFRA Cliente
Equipe
EquipeEquipe
13
Quando usar/recomendar
• Quando você disponibiliza um serviço online (Web,
SaaS, Apis)
• Novas funcionalidades com urgência
• Quando o tempo para entrega é muito extenso
• Quando o projeto é para uma startup
• Quando a equipe de DEV é relativamente grande
• Quando o projeto necessita de correções frequentes
de segurança
14
Onde a CWI já está usando
Unimed POA / Mais Unimed
• Jenkins como ferramenta de integração contínua
• O servidor fica no cliente
• Usado para:
• Automatização do Build
• Deploy
• Testes
• Usado a mais de 2 anos
• Todo o processo roda em 40 minutos, executando 41 casos de testes de aceitação
(13 processos de negócios diferentes)
• Segundo Diego Haggstron (CWI) "Queremos atingir um percentual maior de
cobertura de testes de aceitação."
15
Onde a CWI já está usando
Lojas Renner (todos os projetos)
• Jenkins como ferramenta de integração contínua
• O servidor fica na CWI
• Usado para garantir:
• Qualidade do código produzido
• Cobertura de testes unitários
• Usam desde o início do projeto
• Todo o processo roda em 10 minutos
• Segundo Gustavo Jotz (CWI) "Conseguimos manter uma qualidade e muito boa
cobertura de testes, mas ainda há espaços para melhorar."
16
Onde a CWI já está usando
Projeto TNT Express – EMS
• Jenkins como ferramenta de integração contínua
• Durante o desenvolvimento ficou no mesmo servidor da aplicação. Quando os
fontes foram migrados para um servidor do cliente, o CI foi junto
• Usado para a execução:
• De testes unitários
• De integração
• Visualização dos resultados, Build e package da aplicação
• Liberação em diversos ambientes para teste e homologação.
• Usam desde o início do projeto
• Todo o processo roda em 3 minutos, executando mais 800 testes, cobrindo 85% do
código do projeto
• Segundo Lucas Balensiefer (CWI) "Atingimos o objetivo esperado com a utilização"
17
Onde a CWI já está usando
Mobile Commerces de Casas Bahia, Extra e Ponto Frio
• Go como ferramenta de integração contínua
• O servidor de integração contínua esta em uma instância EC2 da Amazon.
• Usado para a execução:
• De integração do que é instalado em cada ambiente
• De testes unitários e funcionais
• Automação do deploy de ambientes de DEV, QA e STG e Status check de produção (em
planejamento)
• Usam desde o início do projeto, no sprint de iniciação
• Todo o processo roda em 23 minutos
• Segundo Daniel Wayhs (CWI) "Conseguimos delegar para a fabrica de testes os
triggers de deploy para os ambientes. Eles conseguem verificar as features que
estão entrando em cada deploy. E consigo fazer um deploy em produção com
tranquilidade sabendo que o build passou por todos os níveis do pipeline"
18
Onde a CWI já está usando
Coca-Cola – Embaixadores
• Jenkins e uDeploy como ferramenta de integração contínua
• O servidor Jenkins fica na CWI e o uDeploy no cliente
• Usado para:
• Build
• Testes unitários
• Testes de aceitação de serviços
• Deploy (apenas este no cliente)
• Usado desde o início do projeto
• Todo o processo roda em 3 minutos
• Segundo Jonas Flesch (CWI) "O processo só não esta melhor por que a ferramenta
do cliente (uDeploy) exige alguns processos manuais."
19
Ferramentas
Cultura
20
“O software que fazemos para automatizar
o processo dos nossos clientes deve nos
motivar para automatizar nosso processo”
21
Obrigado!
Alexandre Machado | alexandrelima@cwi.com.br
Altamir Júnior Dias | ajdias@cwi.com.br

Mais conteúdo relacionado

Mais procurados

Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...iMasters
 
Gerenciamento de custos na cloud
Gerenciamento de custos na cloudGerenciamento de custos na cloud
Gerenciamento de custos na cloudMarcelo Anton
 
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaAzure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaRenato Groff
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureDr. Spock
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAmazon Web Services LATAM
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus DadosAlvaro Viebrantz
 
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
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemAmazon Web Services LATAM
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?Rafael Salerno de Oliveira
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerNewton Angelini
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Amazon Web Services LATAM
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaEvandro Pires da Silva
 

Mais procurados (19)

Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
 
Gerenciamento de custos na cloud
Gerenciamento de custos na cloudGerenciamento de custos na cloud
Gerenciamento de custos na cloud
 
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaAzure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & Azure
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
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
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 
Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm Webinar: Apresentando AWS Device Farm
Webinar: Apresentando AWS Device Farm
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
 

Semelhante a Integração Contínua

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
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsQaladies
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
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
 
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
 
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
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Jaqueline Ramos
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryRodrigo Russo
 
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
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing Walter Farias
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest LabsJaqueline Ramos
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 
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
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubMarcelo Souza Vieira
 
Entrega Contínua e Aplicações em Produção
Entrega Contínua e Aplicações em ProduçãoEntrega Contínua e Aplicações em Produção
Entrega Contínua e Aplicações em ProduçãoVanessa Gomes
 

Semelhante a Integração Contínua (20)

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
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps Projects
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e 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...
 
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
 
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
 
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
Women@MicrosoftCommunities - DevOps e Azure: uma combinação perfeita!
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
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
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
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
 
Entrega Contínua e Aplicações em Produção
Entrega Contínua e Aplicações em ProduçãoEntrega Contínua e Aplicações em Produção
Entrega Contínua e Aplicações em Produção
 

Integração Contínua

  • 1. 1 I n t e g r a ç ã o C o n t í n u a
  • 2. 2 Quem somos Altamir • 21 anos de TI • 5 anos de agilidade • 4 anos com automação e Integração Contínua • 2 anos de CWI 2 projetos na CWI com Integração Contínua Alexandre • 14 anos de TI • 4 anos de agilidade • 3 anos com Integração Contínua • 4 anos de CWI 8 projetos na CWI com Integração Contínua em 6 clientes
  • 3. 3 Integração Contínua O que é Custos-benefícios Quando usar/recomendar Onde a CWI já está usando
  • 4. 4 O que é (como não deve ser)
  • 5. 5 O que é – By the book “Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” - Martin Fowler, Chief Scientist, ThoughtWorks
  • 6. 6 O que é – Níveis de maturidade Code Build Integrate Test Release Deploy Operate Development Continuous Integration Continuous Delivery Continuous Deployment
  • 7. 7 O que é – Utopia?
  • 8. 8 O que é - Ferramentas Jenkins Travis CI TFS TeamCity
  • 10. 10 Custos-benefícios Benefícios Deploy automático Escalabilidade Velocidade/Foco Transparência Alertas de inconformidades Execução automática de testes Redução de riscos Custos INFRA Setup inicial da ferramenta Setup do ambiente de execução Integrar testes (PRJ em andamento) Construção dos scripts de build Construir testes
  • 11. 11 Custos-benefícios “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” - Martin Fowler, Chief Scientist, ThoughtWorks “Integração Contínua não te livra dos bugs, mas torna o processo de encontrar e resolver drasticamente mais fácil” – Tradução livre
  • 12. 12 Custos-benefícios Servidor pirataEquipe Visual Studio Online Amazon AWS Servidor Aplicação INFRA Cliente Equipe EquipeEquipe
  • 13. 13 Quando usar/recomendar • Quando você disponibiliza um serviço online (Web, SaaS, Apis) • Novas funcionalidades com urgência • Quando o tempo para entrega é muito extenso • Quando o projeto é para uma startup • Quando a equipe de DEV é relativamente grande • Quando o projeto necessita de correções frequentes de segurança
  • 14. 14 Onde a CWI já está usando Unimed POA / Mais Unimed • Jenkins como ferramenta de integração contínua • O servidor fica no cliente • Usado para: • Automatização do Build • Deploy • Testes • Usado a mais de 2 anos • Todo o processo roda em 40 minutos, executando 41 casos de testes de aceitação (13 processos de negócios diferentes) • Segundo Diego Haggstron (CWI) "Queremos atingir um percentual maior de cobertura de testes de aceitação."
  • 15. 15 Onde a CWI já está usando Lojas Renner (todos os projetos) • Jenkins como ferramenta de integração contínua • O servidor fica na CWI • Usado para garantir: • Qualidade do código produzido • Cobertura de testes unitários • Usam desde o início do projeto • Todo o processo roda em 10 minutos • Segundo Gustavo Jotz (CWI) "Conseguimos manter uma qualidade e muito boa cobertura de testes, mas ainda há espaços para melhorar."
  • 16. 16 Onde a CWI já está usando Projeto TNT Express – EMS • Jenkins como ferramenta de integração contínua • Durante o desenvolvimento ficou no mesmo servidor da aplicação. Quando os fontes foram migrados para um servidor do cliente, o CI foi junto • Usado para a execução: • De testes unitários • De integração • Visualização dos resultados, Build e package da aplicação • Liberação em diversos ambientes para teste e homologação. • Usam desde o início do projeto • Todo o processo roda em 3 minutos, executando mais 800 testes, cobrindo 85% do código do projeto • Segundo Lucas Balensiefer (CWI) "Atingimos o objetivo esperado com a utilização"
  • 17. 17 Onde a CWI já está usando Mobile Commerces de Casas Bahia, Extra e Ponto Frio • Go como ferramenta de integração contínua • O servidor de integração contínua esta em uma instância EC2 da Amazon. • Usado para a execução: • De integração do que é instalado em cada ambiente • De testes unitários e funcionais • Automação do deploy de ambientes de DEV, QA e STG e Status check de produção (em planejamento) • Usam desde o início do projeto, no sprint de iniciação • Todo o processo roda em 23 minutos • Segundo Daniel Wayhs (CWI) "Conseguimos delegar para a fabrica de testes os triggers de deploy para os ambientes. Eles conseguem verificar as features que estão entrando em cada deploy. E consigo fazer um deploy em produção com tranquilidade sabendo que o build passou por todos os níveis do pipeline"
  • 18. 18 Onde a CWI já está usando Coca-Cola – Embaixadores • Jenkins e uDeploy como ferramenta de integração contínua • O servidor Jenkins fica na CWI e o uDeploy no cliente • Usado para: • Build • Testes unitários • Testes de aceitação de serviços • Deploy (apenas este no cliente) • Usado desde o início do projeto • Todo o processo roda em 3 minutos • Segundo Jonas Flesch (CWI) "O processo só não esta melhor por que a ferramenta do cliente (uDeploy) exige alguns processos manuais."
  • 20. 20 “O software que fazemos para automatizar o processo dos nossos clientes deve nos motivar para automatizar nosso processo”
  • 21. 21 Obrigado! Alexandre Machado | alexandrelima@cwi.com.br Altamir Júnior Dias | ajdias@cwi.com.br

Notas do Editor

  1. Inconformidades: Build ou Testes quebrados, ambiente inacessível, violações de métricas de qualidade de código (StyleCop, Sonar...)
  2. A muito tempo atrás existia um desenvolvedor de software que não aguentava mais encontrar bugs em seu sistema. Certo dia ele pensou: como posso diminuir estes bugs? Tem como eu testar mais fácil meu software?
  3. Por que gostamos de usar? Por que é bonito.
  4. SCM: TFS, Git, SVN
  5. Inconformidades: Build ou Testes quebrados, ambiente inacessível, violações de métricas de qualidade de código (StyleCop, Sonar...)
  6. Dois anos de utilização BDD Consolidado
  7. Package para projetos com RDM/GMUD
  8. Fábrica de testes tem controle sobre o deploy
  9. Continuous Delivery
  10. Acredito que duas coisas definem o que precisamos para essa caminhada. As ferramentas nós já temos.