En este hito se trata de usar Vagrant
para provisionar una o
preferiblemente varias máquinas virtuales usando un proveedor de
servicios cloud.
Haber alcanzado el 60% de los objetivos de las sesiones correspondientes.
El proceso de provisionamiento y despliegue comienza generalmente 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.
Esto se puede hacer usando los SDK o interfaces de línea de órdenes del proveedor de nube, pero 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 tenga que estar presente antes de que los provisionadores comiencen a funcionar. Finalmente, permite también elegir la imagen que se va a usar, de forma que se puede automatizar la creación, desde cero; esta imagen es independiente del proveedor, siempre que use alguno de los formatos estándar y también provisonarla usando uno de los muchos sistemas de provisionamiento que existen, tales como Chef o Ansible.
Salvo que las imágenes pueden 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. Uno de ellos será siempre el proveedor en la nube de alguno al que el estudiante tenga acceso.
También se solicita que se elabore en el README.md
del proyecto la razón por la que han
elegido una infraestructura determinada y si se usa una o varias
máquinas virtuales en la nube. Cuanto más complejo sea la
arquitectura, más se valorará.
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
.
El Vagrantfile
y todos los ficheros que precise estarán en un
subdirectorio llamado orquestacion
. La IP a la que se ha desplegado,
que se comprobará igual que en el hito anterior, estará en una línea
de este tipo
Despliegue Vagrant: mv.servicioclo.ud
donde mv.servicioclo.ud
será el nombre o la IP donde se ha hecho el
despliegue mediante Vagrant.
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.
- 2 puntos: Revisión de la entrega y comprobación del funcionamiento correcto del sistema de aprovisionamiento de otra persona de clase, con un issue o un pull request para corregir en caso de error.
- 6 puntos: Elección correcta de herramienta y cobertura de todos los servicios que se quieren desplegar; buena justificación de la misma.
- 2 puntos: uso de herramientas adicionales, entrega a tiempo, ayuda a los compañeros.