Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose

487 visualizações

Publicada em

Palestra apresentada no Regional Scrum Gathering Rio 2016, no dia 24 de Junho.

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose

  1. 1. Conteinerizando Testes com Docker Compose 🐳🐙 Stefan Teixeira @stefan_teixeira stefanfk@gmail.com stefanteixeira.com.br stefanteixeira.com
  2. 2. • QA Automation Engineer @ Toptal • Blogs técnicos: stefanteixeira.com.br (pt-br) / stefanteixeira.com (en) • Co-organizador dos meetups DevOps Carioca e Grupo de Testes Carioca Contatos: • E-mail: stefanfk@gmail.com • Twitter: twitter.com/stefan_teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira Sobre
  3. 3. Docker Compose
  4. 4. Docker Compose • Ferramenta para definir/rodar aplicações multi-container https://docs.docker.com/compose/
  5. 5. Docker Compose • Ferramenta para definir/rodar aplicações multi-container • Conhecido antigamente como Fig https://docs.docker.com/compose/
  6. 6. Docker Compose • Ferramenta para definir/rodar aplicações multi-container • Conhecido antigamente como Fig • YAML ❤ https://docs.docker.com/compose/
  7. 7. Compose File (v1)
  8. 8. Compose File (v2)
  9. 9. Conteinerizando testes com Docker Compose
  10. 10. Como assim?
  11. 11. Containers != mini-VMs https://twitter.com/rhein_wein/status/662995114235678720
  12. 12. Motivações
  13. 13. #1 Se os testes (exceto testes unitários) são trabalhosos para rodar localmente, os devs não vão rodar. ¯_( )_/¯
  14. 14. #2 Configurar um ambiente para rodar testes pode ser um inferno. 👹
  15. 15. “Docker delivers a predictable, reproducible testing environment.” (Laura Frank, Codeship) 🐳❤
  16. 16. Exemplos
  17. 17. App A
  18. 18. App A DB
  19. 19. App A DB Mock Service
  20. 20. App A DB Mock Service API Tests
  21. 21. App A DB Mock Service API Tests UI Tests
  22. 22. App A DB Mock Service API Tests UI Tests Security Tests
  23. 23. App A DB Mock Service API Tests UI Tests Security Tests Smoke Tests
  24. 24. Demo
  25. 25. Demonstração • Exemplo mais simples possível, com três containers: • App (uma API REST) • DB (banco de dados MongoDB) • API Tests (testes de API escritos com Supertest) • https://github.com/stefanteixeira/demo-testing- compose
  26. 26. Pontos de atenção • Logs
  27. 27. Pontos de atenção • Logs • volumes ou data containers
  28. 28. Pontos de atenção • Logs • volumes ou data containers • Tempo de inicialização
  29. 29. Pontos de atenção • Logs • volumes ou data containers • Tempo de inicialização • netcat (nc), curl, wait-for-it, wait_for module (Ansible)
  30. 30. Pontos de atenção • Logs • volumes ou data containers • Tempo de inicialização • netcat (nc), curl, wait-for-it, wait_for module (Ansible) • Geração de imagens
  31. 31. Pontos de atenção • Logs • volumes ou data containers • Tempo de inicialização • netcat (nc), curl, wait-for-it, wait_for module (Ansible) • Geração de imagens • Alpine-linux, Phusion (minimal base images)
  32. 32. Pontos de atenção • Logs • volumes ou data containers • Tempo de inicialização • netcat (nc), curl, wait-for-it, wait_for module (Ansible) • Geração de imagens • Alpine-linux, Phusion (minimal base images) • Automatizar processo
  33. 33. Referências • "Stop Being Lazy and Test Your Software”: • https://www.youtube.com/watch?v=Mx1Il9wIepw • http://www.slideshare.net/rheinwein/stop-being-lazy-and-test-your- software • https://hharnisc.github.io/2016/06/19/integration-testing-with-docker- compose.html • https://docs.docker.com/compose/startup-order/ • https://github.com/vishnubob/wait-for-it • https://www.ansible.com/blog/six-ways-ansible-makes-docker-compose-better • https://www.vivaolinux.com.br/artigo/Tutorial-Netcat
  34. 34. Obrigado! Stefan Teixeira @stefan_teixeira stefanfk@gmail.com stefanteixeira.com.br stefanteixeira.com

×