Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

After tests marzo 2017: Pruebas de Integración Automatizadas con Docker

208 views

Published on

After tests marzo 2017 Fernando Llaca: Pruebas de Integración Automatizadas con Docker

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

After tests marzo 2017: Pruebas de Integración Automatizadas con Docker

  1. 1. Pruebas de Integración automatizadas con Docker
  2. 2. ¡HoLA! Soy Fernando Llaca Software Engineer at BEEVA @nandollaca ferllarom@gmail.com
  3. 3. Objetivos ✖  Conceptos básicos sobre pruebas de  integración ✖ Qué son Docker y Jenkins ✖Configurar un plan de integración continua basado en contenedores Docker. ✖Aspectos a tener en cuenta al lanzar pruebas de integración “dockerizadas”
  4. 4. 1. Pruebas de Integración ¿Vemos algunas?
  5. 5. Pruebas de regresión Pruebas de Sistema Pruebas End-to-End Pruebas funcionales
  6. 6. Pruebas de regresión Pruebas de Sistema Pruebas End-to-End Pruebas funcionales
  7. 7. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Escalabilidad / Paralelización Costosa Mantenimiento (Upgrades del software)
  8. 8. Antes de continuar... ¿Os suenan Docker y Jenkins?
  9. 9. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Escalabilidad / Paralelización Costosa Mantenimiento (Upgrades del software)
  10. 10. DIFICULTADES Imágenes Docker pre-configuradas Instalación / Configuración compleja
  11. 11. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Internal DNS
  12. 12. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Containers creados al vuelo
  13. 13. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Docker images: probamos contra la aplicación real
  14. 14. DIFICULTADES Instalación / Configuración compleja Networking IPs/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Escalabilidad / Paralelización costosa Cluster Swarm / docker-compose
  15. 15. DIFICULTADES Instalación / Configuración compleja Networking: Ip/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Escalabilidad / Paralelización costosa Docker images: simplemente cambiar el tag/image Mantenimiento (Upgrades del software)
  16. 16. DIFICULTADES Instalación / Configuración compleja Networking Ip/puertos pueden cambiar Sucesivas ejecuciones Corrompen el entorno Stubs (Mucho esfuerzo) Escalabilidad / Paralelización costosa Mantenimiento (Upgrades del software)
  17. 17. ¡PROPUESTA! Sí, sí, muy bien, ¿pero cómo?
  18. 18. (Run tests) Containers External Dependencies VCS
  19. 19. 1. Crear Contenedores de las aplicaciones que queremos integrar PROCESO 1.1 Alimentar con datos 1.2. Enlazar contenedores 2. Ejecutar pruebas (¡también en un contenedor!) 3. Eliminar contenedores 4. Procesar resultado de las pruebas
  20. 20. Veamos la Demo https://github.com/fllaca/itests-docker-demo
  21. 21. CONSIDERACIONES Ojito con...
  22. 22. Networking o DNS interno de Docker o Docker compose
  23. 23. Software dependencies o Dependencias Maven o node_modules o ... Volúmenes Docker: docker run -v /home/ubuntu/.m2:/root/.m2 maven:latest
  24. 24. Test Data Storage o Montar en volúmenes o Subdirectorio en el control de versiones o Repositorio propio o Repositorio de artefactos o Docker imágenes (con datos de pruebas)
  25. 25. SAY MICROSERVICE!!!
  26. 26. Scalability o Red / nombres de contenedor únicos o Clustering (Docker Swarm)
  27. 27. ¡GRACIAS POR VUESTRO TIEMPO! ¿Preguntas? ✋ @nandollaca

×