Confidence rocket engine

Preview:

Citation preview

Café + Código Rocket-engine

Danilo De Luca Francisco Portillo

Histórico da situação do projeto

Nossos testes

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

Nossos testes

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

3% core business coberto80% core business coberto

Nossos testes

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

1 ou mais versões toda semana

80% core business coberto 3% core business coberto

Execução manual…

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

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

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

Rocket-engineComo surgiu?

Por que não automatizar o

processo manual tal como já era feito?

Tests distribuídos

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

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

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

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

Tests distribuídosMapMap

MapMap

Results

ResultsResults

Results

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

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/

Resultados

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

(ninguém alocado)

Resultados

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

(ninguém alocado)

False negatives75% success 99% success

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

Resultados

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

1920

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

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

Melhorias no SOCCAumento da granularidade nas suítes de testes

100% success, atualmente estamos em 99%

Recommended