integração contínua

Post on 10-Jan-2017

330 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

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

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

3

Integração Contínua

O que éCustos-benefícios

Quando usar/recomendarOnde 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

Integrat

e

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í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

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 ͞=pirata͞>Equipe Visual Studio OnlineAmazon 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á 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."

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."

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"

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"

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."

19

FerramentasCultura

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.brAltamir Júnior Dias | ajdias@cwi.com.br

top related