Upload
danilo-pereira-de-luca
View
266
Download
2
Embed Size (px)
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%