29

Confidence rocket engine

Embed Size (px)

Citation preview

Page 1: Confidence   rocket engine
Page 2: Confidence   rocket engine

Café + Código Rocket-engine

Danilo De Luca Francisco Portillo

Page 3: Confidence   rocket engine

Histórico da situação do projeto

Page 4: Confidence   rocket engine

Nossos testes

Selenium+Integração1090 10h80% core business coberto

Page 5: Confidence   rocket engine

Nossos testes

UnitáriosSelenium+Integração1090 10h 410 9min

3% core business coberto80% core business coberto

Page 6: Confidence   rocket engine

Nossos testes

UnitáriosSelenium+Integração1090 10h 410 9min

1 ou mais versões toda semana

80% core business coberto 3% core business coberto

Page 7: Confidence   rocket engine

Execução manual…

Page 8: Confidence   rocket engine

Demorava….- 1 a 2 dias boa parte da equipe executando os testes durante na semana

- Causava mau humor na equipe- Em 1 semana boa, conseguíamos ter 3 dias de desenvolvimento

- Testes eram executados 1x por semana

Page 9: Confidence   rocket engine

IniciativasMyContainer Grid

Rodar vários containers numa mesma máquina - Escalabilidade vertical Testes rodaram em 15min, porém com falsos negativos/positivos e resultados intermitentes

Page 10: Confidence   rocket engine

IniciativasMyContainer Grid

Problemas encontradosCódigo do MyContainer Grid ficou muito desatualizado muito rápido, não conseguimos fazer o merge da branch atualizada. Na máquina mais rápida da época no EC2: - 32 processadores físicos - 64Gb+ RAM Custo alto por hora($$) Mostrou mais de 100% de utilização de CPU para algumas instâncias

Rodar vários containers numa mesma máquina - Escalabilidade vertical Testes rodaram em 15min, porém com falsos negativos/positivos e resultados intermitentes

Page 11: Confidence   rocket engine

Rocket-engineComo surgiu?

Page 12: Confidence   rocket engine

Por que não automatizar o

processo manual tal como já era feito?

Page 13: Confidence   rocket engine

Tests distribuídos

Page 14: Confidence   rocket engine

Tests distribuídosDistribuição do código entre as máquinas da Dextra

Page 15: Confidence   rocket engine

Tests distribuídosDistribuição do código entre as máquinas da DextraEstilo Map-Reduce

Page 16: Confidence   rocket engine

Tests distribuídosDistribuição do código entre as máquinas da DextraEstilo Map-ReduceDisplay over ssh

Page 17: Confidence   rocket engine

Tests distribuídosDistribuição do código entre as máquinas da DextraEstilo Map-ReduceDisplay over sshAgregação de resultados ao final de cada parte

Page 18: Confidence   rocket engine

Tests distribuídosMapMap

MapMap

Results

ResultsResults

Results

Page 19: Confidence   rocket engine

Primeiras versõesDivisão simples de suítes por máquinas, verificamos que algumas máquinas ficavam ociosas

Identificamos que existiam vários testes intermitentes 75-80% de sucesso

Page 20: Confidence   rocket engine

ResultadosRecuperação de 20 a 30% da produtividade do time

Recuperação do humor do time às segundas e terças feiras \o/

Escalabilidade horizontal

Build todo dia, mais de 1x ao dia \o/

Page 21: Confidence   rocket engine

Resultados

10h boa parte do time alocadoBuild time 2h em 4 máquinas

(ninguém alocado)

Page 22: Confidence   rocket engine

Resultados

10h boa parte do time alocadoBuild time 2h em 4 máquinas

(ninguém alocado)

False negatives75% success 99% success

Page 23: Confidence   rocket engine

Resultados

10h boa parte do time alocadoBuild time 2h em 4 máquinas

(ninguém alocado)

False negatives75% success 99% success

Build 10x ao diaSegurança para mudar ou criar novas features

Page 24: Confidence   rocket engine

Resultados

UnitáriosSelenium+Integração1090 1350 41080% core business coberto 19% core business coberto

1920

Page 25: Confidence   rocket engine

MelhoriasAdaptações para ser utilizável para outros projetos

Inclusão de novas máquinas em tempo de build (testing)

Page 26: Confidence   rocket engine

Melhorias no SOCCAumento da granularidade nas suítes de testes

100% success, atualmente estamos em 99%

Page 27: Confidence   rocket engine
Page 28: Confidence   rocket engine
Page 29: Confidence   rocket engine