Hito 3º: Orquestación de máquinas virtuales

Descripción

En este hito se trata de usar Vagrant para provisionar una o preferiblemente varias máquinas virtuales, también preferiblemente en la nube.

Prerrequisitos

Haber alcanzado el 60% de los objetivos de las ocho primeras semanas de la asignatura.

Explicación

Generalmente el proceso de provisionamiento y despliegue comienza con la descripción a alto nivel de la infraestructura virtual que se vaya a usar, incluyendo la creación de las máquinas virtuales y la descripción de las mismas, incluyendo el aprovisionamiento correspondiente.

En esta práctica usaremos Vagrant para hacer este tipo de tarea. Vagrant es un sistema de orquestación de máquinas virtuales que permite usar diferentes tipos de provisionamiento para configurar las máquinas, así como la conexión entre las mismas. Vagrant también permite hacer cosas como copiar ficheros o crear usuarios, que aunque se pueden hacer en el momento del provisionamiento, puede que sea más conveniente hacerlo en el momento anterior al provisionamiento porque puede haber algún elemento que se necesite. Vagrant permite también elegir la imagen que se va a usar, de forma que se puede automatizar la creación, desde cero.

Salvo que las imágenes tienen formato diferente, en principio debería ser posible cambiar simplemente el proveedor de Vagrant y poder desplegar en diferentes entornos, aunque la infraestructura básica puede también tener alguna variación. En todo caso y como en casos anteriores, se pide al estudiante que use Vagrant en varios entornos, aunque uno de ellos puede ser un hipervisor local y otro en la nube. Siempre, en todo caso, hay que trabajar con un proveedor en la nube.

Entrega de la práctica

Subir los fuentes a GitHub y editar este fichero enlazando el último commit en el que se indique claramente el nombre del alumno y la dirección donde se ha subido el fuente. El commit se referirá al número de issue que se haya propuesto en el repositorio propio. Si se va a hacer en coordinación con otros proyectos se puede indicar en el mismo README.md.

Se recuerda que el README.md es la descripción del proyecto; por eso, deberá incluir las instrucciones para configurar la máquina virtual objetivo y ejecutar el provisionamiento desde nuestro ordenador, incluyendo lo que hay que hacer para instalarlo en nuestra máquina local. En la documentación (en una rama aparte o donde se haya elegido) se tendrá que mostrar que efectivamente se ha podido hacer provisionamiento de alguna máquina virtual o incluso de varias y que están ejecutando los servicios desplegados.

La explicación del proyecto deberá incluir los criterios usados para elegir la imagen base. Esta documentación se incluirá en ficheros MarkDown en una rama diferente a master.

Valoración

Si el repositorio no existe, tiene algún error, no se ha hecho pull request correctamente o no están los fuentes publicados, la práctica estará suspensa. Si no se ha aprobado el hito anterior no se corregirá hasta que no se haga correctamente.