Skip to content
This repository has been archived by the owner on Jan 7, 2020. It is now read-only.

Latest commit

 

History

History
77 lines (59 loc) · 3.32 KB

6.Compose.md

File metadata and controls

77 lines (59 loc) · 3.32 KB

Sexto hito: composición de servicios

Descripción

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.

Prerrequisitos

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.

Explicación

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.

Entrega de la práctica

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.

Valoración

  • 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.