Cuando una aplicación no cabe en un solo contenedor por la existencia de varios tier, o simplemente nodos que sirven para almacenar datos, es necesario usar Docker compose para describir de forma repetible la forma como se van a conectar tales contenedores.
En esta práctica se trata de diseñar, usando Docker compose y describiendo la
infraestructura mediante un fichero docker-compose.yml
, un servicio
que incluya varios contenedores, incluyendo uno cuyo contenido
exclusivo sea almacenar datos.
Haber alcanzado el 60% de los objetivos del material correspondiente de la asignatura. En el caso de que no se haya hecho, no se calificará este hito del proyecto. Haber superado el hito anterior.
Docker-compose es una herramienta que, si bien no se usa en producción de forma habitual, sí es muy útil en entornos de desarrollo o de prueba. También se puede usar en producción, siempre que no se requieran escalado de cada uno de los nodos u algún tipo de orquestación complicada, para lo que habría que usar Kubernetes.
Lo importante es que la creación de ese entorno de pruebas sea reproducible. El énfasis de esta práctica es en la creación y uso de este entorno de pruebas, por lo que también se valorará cómo se han diseñado esas pruebas y lo realista que es ese entorno, es decir, la existencia de un programa real que implemente un servicio web de forma que se pueda monitorizar desde fuera si extá funcionando o no.
Para comprobar que funciona correctamente, se tendrá que desplegar usando Vagrant o alguna herramienta específica de un proveedor de nube, copiando todos los ficheros necesarios, desplegándolo y arrancando los servicios usando Docker compose.
Subir los fuentes a GitHub y hacer un pull request al documento de entregas como es habitual. El documento tendrá que incluir el nombre del proyecto y un enlace a un repositorio de contenedores docker o máquina virtual Azure o Amazon donde se haya desplegado (o cualquier otro sistema). En caso de que el proyecto no sea visible, una captura de pantalla, que como todas las capturas tendrá que ir en la rama de documentación, es suficiente.
El URL del servicio web desplegado en un contenedor se pondrá en una sola línea de esta forma
Hito6: http://dirección.url
El fichero docker-compose.yml
debe estar en el directorio principal
del proyecto.
Como en la práctica anterior, esta dirección tendrá que tener
instalado un servicio web que devuelva status: OK
, pero en este
caso, en la ruta status
, no en el directorio principal; es decir, se
tendrá que desplegar, como mínimo, el servicio web del hito anterior
del proyecto. Esto tendrá que implementarse como un servicio REST, y
se tendrá que devolver con el tipo MIME application/JSON
.
- Entrega de la práctica según especificación: 7 puntos.
- 3 puntos adicionales por originalidad del servicio web, desarrollo real del programa desplegado, trabajo adicional hecho sobre el mismo y diseño correcto de la composición de los servicios web.
Si la aplicación no funciona, no se realiza de forma individual o no están los fuentes publicados, la práctica estará suspensa.