Hito 4: Automatización de la creación de máquinas virtuales desde línea de órdenes

Descripción

El objetivo de este hito es mostrar el conocimiento en el uso de los clientes de línea de órdenes de los servicios en la nube para crear instancias de máquinas virtuales en la nube y otros recursos necesarios para las mismas. Estas instancias, posteriormente, se provisionarán y se instalará en ella la aplicación que se ha venido usando hasta ahora.

Prerrequisitos

Haber alcanzado el 60% de los objetivos de las semanas correspondientes.

Explicación

El proceso de despliegue de una aplicación comienza con la descripción a alto nivel de la infraestructura virtual que se vaya a usar, incluyendo, tras la creación de las máquinas virtuales, la descripción de las mismas. Usando herramientas de orquestación como se verán más adelante se puede trabajar de forma independiente del proveedor de nube; sin embargo, en algunos casos hay características específicas de un proveedor que no están disponibles en herramientas de propósito general.

Todos los proveedores de cloud usan un API para acceder al mismo; estas herramientas CLI se pueden usar desde tal API para crear servicios, monitorizarlos y manejarlos. En esta práctica usaremos las herramientas libres para hacer este tipo de tareas de creación de nodos completos de máquinas virtuales y su posterior provisionamiento con las herramientas creadas en el hito anterior.

Estas herramientas permite también elegir la imagen que se va a usar, de forma que se puede automatizar la creación, desde cero, usando shell scripts o usando el CLI como una biblioteca que se puede incluir desde diferentes lenguajes de programación, con preferencia, claro, de aquél en el que está escrito la propia biblioteca.

Aunque en el material de la asignatura hay dos ejemplos, Azure y OpenStack, se puede usar también Amazon y Google Cloud Platform si se desea. De hecho, se aconseja que se creen scripts de aprovisionamiento para el mismo tipo de máquina virtual en los dos.

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. Para aceptarse el PR, tendrá que pasar los tests, como es natural.

El script de aprovisionamiento tendrá que llamarse acopio.sh y estará en el directorio principal. La máquina virtual se tendrá que mantener encendida al menos hasta que se corrija, y se tendrá que incluir la dirección en el README.md de esta forma

MV2: mv.servicioclo.ud

Se hará constar el nombre del DNS de la máquina o su IP.

En esa dirección IP tendrá que estar desplegado el servicio web programado anteriormente, devolviendo los mismos valores que antes para comprobación del mismo.

Se recuerda que el README.md es la descripción del proyecto; por eso, deberá incluir una descripción general del proyecto, 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.

La documentación tendrá que estar enlazada correctamente desde ese fichero principal, que estará en una rama aparte o donde se haya elegido, se tendrá que mostrar explicar las diferentes decisiones que se han tomado como la imagen de sistema operativo elegida y el sistema cloud que se ha usado, qué tipo de facilidades específicas del sistema se han elegido y mostrar mediante pantallazos que efectivamente se ha podido hacer provisionamiento de alguna máquina virtual o incluso de varias y que están ejecutando los servicios desplegados. Las explicaciones deben ser lo más claras posibles, de forma que más adelante un compañero pueda corregirlo.

La explicación del proyecto deberá incluir los criterios usados para elegir la imagen base. Esta documentación se incluirá en ficheros MarkDown en el sitio que se haya elegido para la misma, preferiblemente un subdirectorio docs que se haya publicado desde GitHub.

Valoración