tests de integración automatizados con docker y bamboo

27
Pruebas de Integración automatizadas con Docker y Bamboo

Upload: fernando-llaca-romero

Post on 08-Jan-2017

57 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Tests de integración automatizados con Docker y Bamboo

Pruebas de Integración automatizadas con

Docker y Bamboo

Page 2: Tests de integración automatizados con Docker y Bamboo

¡HoLA!Soy Fernando Llaca

Atlassian Expert en atSistemasPuedes contactar conmigo en:

@[email protected]

Page 3: Tests de integración automatizados con Docker y Bamboo

Objetivos ✖  Conceptos básicos sobre pruebas de 

integración

✖ Qué son Docker y Bamboo

✖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: Tests de integración automatizados con Docker y Bamboo

1.Pruebas de Integración

¿Vemos algunas?

Page 5: Tests de integración automatizados con Docker y Bamboo

Pruebas de regresión

Pruebas de Sistema

Pruebas End-to-End

Pruebas funcionales

Page 6: Tests de integración automatizados con Docker y Bamboo

Pruebas de regresión

Pruebas de Sistema

Pruebas End-to-End

Pruebas funcionales

Page 7: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

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

Page 9: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

DIFICULTADES

Imágenes Docker pre-configuradas

Instalación /Configuración compleja

Page 11: Tests de integración automatizados con Docker y Bamboo

DIFICULTADES

Instalación /Configuración compleja

Networking IPs/puertos pueden cambiar

Internal DNS

Page 12: Tests de integración automatizados con Docker y Bamboo

DIFICULTADES

Instalación /Configuración compleja

Networking IPs/puertos pueden cambiar

Sucesivas ejecuciones Corrompen el entorno

Containers creados al vuelo

Page 13: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

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

Page 18: Tests de integración automatizados con Docker y Bamboo

(Run tests)

Containers

External Dependencies

VCS

Page 19: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

Veamos la Demo

Page 21: Tests de integración automatizados con Docker y Bamboo

CONSIDERACIONESOjito con...

Page 22: Tests de integración automatizados con Docker y Bamboo

Networkingo DNS interno de Dockero Docker compose

Page 23: Tests de integración automatizados con Docker y Bamboo

Software dependencieso Dependencias Maveno node_moduleso ...

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

maven:latest

Page 24: Tests de integración automatizados con Docker y Bamboo

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: Tests de integración automatizados con Docker y Bamboo

SAY MICROSERVICE!!!

Page 26: Tests de integración automatizados con Docker y Bamboo

Scalabilityo Red / nombres de

contenedor basados en el número del build

o Clustering (Docker Swarm)

Page 27: Tests de integración automatizados con Docker y Bamboo

¡GRACIAS POR VUESTRO TIEMPO!¿Preguntas?

@nandollaca