Saltar la navegación

9. Integración y despliegue continuo con Jenkins y docker

Para acabar el curso vamos a salirnos un poco del tema pero sin salirnos del todo. Pretendo que ,usando contenedores, podamos montar un "pseudo" flujo de despliegue continuo mediante  un servidor Jenkins que lanzaremos desde un contenedor. De esta manera mostraremos otro entorno donde los contenedores son útiles y abriremos el campo de conocimientos demostrando la utilidad de este tipo de conceptos dentro del mundo del desarrollo de software actual.

¿Qué es Jenkins?

Jenkins es un servidor de automatización opensource  que me va a permitir automatizar ciertas partes del proceso de desarrollo de software.  Tiene un sistemas de plugins muy completo que permite integrar en cada una de estas fases herramientas para el control de versiones, construcción de software, testing etc...

Jenkins
https://commons.wikimedia.org/wiki/File:Jenkins_logo_with_title.svg. Jenkins, servidor de automatización (CC BY-SA)

 ¿Pero qué vamos a automatizar?

Una vez hayamos levantado un servicio de Jenkins definiremos un flujo automático (PIPELINE) con las siguientes fases:

  1. PRIMER PASO: Descarga de un código desde un repositorio de GitHub y construcción (build)
  2. SEGUNDO PASO: Simulación de Testing. No entraremos más en esta fase porque no es materia para este curso.
  3. TERCER PASO: Generación de una nueva imagen docker que contenga ese código a través de un fichero Dockerfile que esté conectado con DockerHub.
  4. CUARTO PASO: Despliegue del código en un servidor que serán también un contenedor.

Este flujo es un flujo ad-hoc para este  curso que no responde exactamente a las definiciones generales que  vamos a presentar en el próximo apartado, pero nos va a servir para repasar conceptos que hemos visto a la vez que nos introducimos en el mundo de la automatización.

Creado con eXeLearning (Ventana nueva)