after tests marzo 2017: pruebas de integración automatizadas con docker

27
Pruebas de Integración automatizadas con Docker

Upload: fernando-llaca-romero

Post on 06-Apr-2017

35 views

Category:

Engineering


5 download

TRANSCRIPT

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

Pruebas de Integración automatizadas con

Docker

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

¡HoLA!Soy Fernando Llaca

Software Engineer at BEEVA

@[email protected]

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

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”

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

1.Pruebas de Integración

¿Vemos algunas?

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

Pruebas de regresión

Pruebas de Sistema

Pruebas End-to-End

Pruebas funcionales

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

Pruebas de regresión

Pruebas de Sistema

Pruebas End-to-End

Pruebas funcionales

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

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)

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

Antes de continuar...¿Os suenan Docker y Jenkins?

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

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)

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

DIFICULTADES

Imágenes Docker pre-configuradas

Instalación /Configuración compleja

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

DIFICULTADES

Instalación /Configuración compleja

Networking IPs/puertos pueden cambiar

Internal DNS

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

DIFICULTADES

Instalación /Configuración compleja

Networking IPs/puertos pueden cambiar

Sucesivas ejecuciones Corrompen el entorno

Containers creados al vuelo

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

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

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

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

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

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)

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

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)

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

¡PROPUESTA!Sí, sí, muy bien, ¿pero cómo?

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

(Run tests)

Containers

External Dependencies

VCS

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

1. Crear Contenedores de las aplicaciones que queremos integrar

PROCESO

1.1 Alimentar con datos1.2. Enlazar contenedores

2. Ejecutar pruebas (¡también en un contenedor!)

3. Eliminar contenedores

4. Procesar resultado de las pruebas

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

Veamos la Demohttps://github.com/fllaca/itests-docker-demo

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

CONSIDERACIONESOjito con...

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

Networkingo DNS interno de Dockero Docker compose

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

Software dependencieso Dependencias Maveno node_moduleso ...

Volúmenes Docker:docker run -v /home/ubuntu/.m2:/root/.m2 \

maven:latest

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

Test Data Storageo Montar en volúmeneso Subdirectorio en el

control de versioneso Repositorio propioo Repositorio de

artefactos o Docker imágenes (con

datos de pruebas)

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

SAY MICROSERVICE!!!

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

Scalabilityo Red / nombres de

contenedor únicoso Clustering (Docker Swarm)

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

¡GRACIAS POR VUESTRO TIEMPO!¿Preguntas?

@nandollaca