Integração Contínua

21
1 Integração Contínua

Transcript of Integração Contínua

Page 1: Integração Contínua

1

I n t e g r a ç ã o C o n t í n u a

Page 2: Integração Contínua

2

Quem somosAltamir

• 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

Page 3: Integração Contínua

3

Integração Contínua

O que éCustos-benefícios

Quando usar/recomendarOnde a CWI já está usando

Page 4: Integração Contínua

4

O que é (como não deve ser)

Page 5: Integração Contínua

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

Page 6: Integração Contínua

6

O que é – Níveis de maturidade

Code

Build

Integrat

e

Test

Release

Deploy

Operate

Development

Continuous Integration

Continuous Delivery

Continuous Deployment

Page 7: Integração Contínua

7

O que é – Utopia?

Page 8: Integração Contínua

8

O que é - Ferramentas

Jenkins Travis CI

TFS TeamCity

Page 9: Integração Contínua

9

O que é

Page 10: Integração Contínua

10

Custos-benefícios

BenefíciosDeploy automático

Escalabilidade

Velocidade/Foco

Transparência

Alertas de inconformidades

Execução automática de testes

Redução de riscos

CustosINFRA

Setup inicial da ferramenta

Setup do ambiente de execução

Integrar testes (PRJ em andamento)

Construção dos scripts de build

Construir testes

Page 11: Integração Contínua

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

Page 12: Integração Contínua

12

Custos-benefícios

Servidor ͞=pirata͞>Equipe Visual Studio OnlineAmazon AWS

Servidor Aplicação INFRA Cliente

Equipe

EquipeEquipe

Page 13: Integração Contínua

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

Page 14: Integração Contínua

14

Onde a CWI já está usandoUnimed 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."

Page 15: Integração Contínua

15

Onde a CWI já está usandoLojas 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."

Page 16: Integração Contínua

16

Onde a CWI já está usandoProjeto 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"

Page 17: Integração Contínua

17

Onde a CWI já está usandoMobile 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"

Page 18: Integração Contínua

18

Onde a CWI já está usandoCoca-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."

Page 19: Integração Contínua

19

FerramentasCultura

Page 20: Integração Contínua

20

“O software que fazemos para automatizar o processo dos nossos clientes deve nos motivar para automatizar nosso processo”

Page 21: Integração Contínua

21

Obrigado!

Alexandre Machado | [email protected] Júnior Dias | [email protected]