Café + Código 
Rocket-engine 
Danilo De Luca 
Francisco Portillo
Histórico da 
situação do projeto
Nossos testes 
Selenium+Integração 
1090 10h 
80% core business coberto
Nossos testes 
Selenium+Integração Unitários 
1090 10h 410 9min 
80% core business coberto 3% core business coberto
Nossos testes 
Selenium+Integração Unitários 
1090 10h 410 9min 
1 ou mais versões toda semana 
80% 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 ...
Iniciativas 
MyContainer Grid 
Rodar vários containers numa mesma máquina - Escalabilidade vertical 
Testes rodaram em 15m...
Iniciativas 
MyContainer Grid 
Rodar vários containers numa mesma máquina - Escalabilidade vertical 
Testes rodaram em 15m...
Rocket-engine 
Como surgiu?
Por que não 
automatizar o 
processo manual tal 
como já era feito?
Tests distribuídos
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce 
Display over ssh
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce 
Display over ssh 
Agregação de ...
Tests distribuídos 
Map Map 
Results 
Map Map 
Results Results 
Results
Primeiras versões 
Divisão simples de suítes por máquinas, verificamos 
que algumas máquinas ficavam ociosas 
Identificamo...
Resultados 
Recuperação de 20 a 30% da produtividade do time 
Recuperação do humor do time às segundas e terças 
feiras o/...
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado)
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado) 
False negatives 
75% success 99...
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado) 
False negatives 
75% success 99...
Resultados 
Selenium+Integração Unitários 
1090 1350 410 
1920 
80% core business coberto 19% core business coberto
Melhorias 
Adaptações para ser utilizável para 
outros projetos 
Inclusão de novas máquinas em tempo 
de build (testing)
Melhorias no SOCC 
Aumento da granularidade nas suítes 
de testes 
100% success, atualmente estamos 
em 99%
Confidence   rocket engine
Confidence   rocket engine
Confidence   rocket engine
Confidence   rocket engine
Próximos SlideShares
Carregando em…5
×

Confidence rocket engine

548 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
548
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Confidence rocket engine

  1. 1. Café + Código Rocket-engine Danilo De Luca Francisco Portillo
  2. 2. Histórico da situação do projeto
  3. 3. Nossos testes Selenium+Integração 1090 10h 80% core business coberto
  4. 4. Nossos testes Selenium+Integração Unitários 1090 10h 410 9min 80% core business coberto 3% core business coberto
  5. 5. Nossos testes Selenium+Integração Unitários 1090 10h 410 9min 1 ou mais versões toda semana 80% core business coberto 3% core business coberto
  6. 6. Execução manual…
  7. 7. 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
  8. 8. Iniciativas MyContainer Grid Rodar vários containers numa mesma máquina - Escalabilidade vertical Testes rodaram em 15min, porém com falsos negativos/positivos e resultados intermitentes
  9. 9. Iniciativas MyContainer Grid Rodar vários containers numa mesma máquina - Escalabilidade vertical Testes rodaram em 15min, porém com falsos negativos/positivos e resultados intermitentes Problemas encontrados Có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
  10. 10. Rocket-engine Como surgiu?
  11. 11. Por que não automatizar o processo manual tal como já era feito?
  12. 12. Tests distribuídos
  13. 13. Tests distribuídos Distribuição do código entre as máquinas da Dextra
  14. 14. Tests distribuídos Distribuição do código entre as máquinas da Dextra Estilo Map-Reduce
  15. 15. Tests distribuídos Distribuição do código entre as máquinas da Dextra Estilo Map-Reduce Display over ssh
  16. 16. Tests distribuídos Distribuição do código entre as máquinas da Dextra Estilo Map-Reduce Display over ssh Agregação de resultados ao final de cada parte
  17. 17. Tests distribuídos Map Map Results Map Map Results Results Results
  18. 18. Primeiras versões Divisã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
  19. 19. Resultados Recuperaçã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/
  20. 20. Resultados Build time 2h em 4 máquinas 10h boa parte do time alocado (ninguém alocado)
  21. 21. Resultados Build time 2h em 4 máquinas 10h boa parte do time alocado (ninguém alocado) False negatives 75% success 99% success
  22. 22. Resultados Build time 2h em 4 máquinas 10h boa parte do time alocado (ninguém alocado) False negatives 75% success 99% success Build 10x ao dia Segurança para mudar ou criar novas features
  23. 23. Resultados Selenium+Integração Unitários 1090 1350 410 1920 80% core business coberto 19% core business coberto
  24. 24. Melhorias Adaptações para ser utilizável para outros projetos Inclusão de novas máquinas em tempo de build (testing)
  25. 25. Melhorias no SOCC Aumento da granularidade nas suítes de testes 100% success, atualmente estamos em 99%

×