- Docker instalado en tu máquina virtual (o WSL).
- Docker Desktop (si tienes WSL).
- Visual Studio Code.
Deberá desplegar una plataforma que cumpla con los siguientes requerimientos:
-
Debe tener un repositorio de Github que corresponda a un fork del repositorio sd-exam1.
-
El repositorio debe tener varios Dockerfile que permita el despliegue de los contenedores especificados en el diagrama.
-
El usuario desde la consola o navegador web realiza peticiones al API Gateway.
-
El API GATEWAY redireccionará las peticiones hacia el LOAD BALANCER.
-
El Load Balancer deberá redireccionar las peticiones entrantes hacia el servicio de Registry and Discovery.
-
El servicio de Registry and Discovery debera ser capaz de resolver la comunicación hacia el frontend.
-
El frontend recibirá imágenes/videos/archivos o cualquier cosa que desee guardar la persona en un servicio de almacenamiento centralizado.
-
El backend recibe el archivo desde el frontend y almacena el archivo en el servico de almacenamiento centralizado.
-
El frontend debería de mostrar a lo mínimo una lista de archivos ya cargados actualmente.
-
El sistema de almacenamiento centralizado deberá ser persistente con los datos, es decir, en caso de fallo del servidor de almacenamiento centralizado, este podrá recuperar información que existía previamente.
-
Emplee tecnologías para frontend y backend diferentes a las empleadas en clase.
-
El contexto de la app es LIBRE, es decir, el grupo le puede dar el enfoque que desea (libros, juegos, inventario, musica, videos, etc). pero NO debe haber un mismo lenguaje backend entre dos grupos.
-
Endpoint /health con información del sistema.
- Script para lanzar todo el ambiente desde un solo comando. (Docker compose es valido)
- Se puede hacer update y delete de un archivo, tener db.
master: Es la rama donde cada commit refleja un estado listo para uso por parte del cliente, todas las funcionalidades han pasado las pruebas y han sido revisadas por todos los administradores del proyecto.
develop: Es la rama principal de trabajo, cualquier cambio, adelanto, mejora o arreglo pasa primero por aquí antes de llegar a Master. Aquí están los últimos avances en el desarrollo, todas las funcionalidades listas, etc.
Para ejecutar la aplicación, simplemente es necesario ejecutar el archivo Docker Compose proporcionado. Este archivo contiene la configuración necesaria para iniciar todos los servicios y componentes requeridos para que la aplicación funcione correctamente. Al ejecutar Docker Compose, se encargará de crear y configurar los contenedores Docker según las especificaciones definidas en el archivo YAML. Una vez que los contenedores estén en funcionamiento, la aplicación estará lista para ser utilizada.
docker-compose up
-
El usuario en Samba no contaba con los permisos necesarios para modificar cualquier elemento dentro de la carpeta donde estaba almacenado en Samba. Como consecuencia, al intentar guardar algo dentro de Samba, el sistema rechazaba la solicitud.
-
El inconveniente con haproxy se debía a que no podía levantarse o crearse correctamente debido a un problema con el archivo de configuración, el cual no especificaba adecuadamente el final de línea. Esto resultaba en un mal funcionamiento del servicio, impidiendo su correcta inicialización.
-
Otro desafío fue familiarizarse con la base de datos CouchDB. Aprender sus particularidades y cómo interactuar con ella supuso un proceso de aprendizaje adicional para el equipo.
Una mejora importante sería la implementación de un servicio DNS para eliminar la necesidad de consultar todo a través de localhost y aprovechar los nombres de los servicios disponibles. Además, si contáramos con más tiempo, dedicaríamos esfuerzos al frontend, especialmente para mejorar su apariencia gráfica, la paleta de colores y la experiencia de navegación del usuario.
Para llevar nuestro software a producción de manera efectiva, es fundamental asegurarnos de adquirir los nombres de dominio adecuados para garantizar una presencia sólida en línea. Además, debemos invertir en mejorar la seguridad cibernética del sistema, implementando medidas robustas para proteger los datos y la infraestructura de posibles amenazas. Esto incluye la implementación de prácticas de seguridad, como la autenticación de usuarios, el cifrado de datos y la monitorización constante del sistema para detectar y responder rápidamente a posibles intrusiones o vulnerabilidades.
- Docker - Docker is an open platform for developing, shipping, and running applications.
- Nicolas Gomez Botero - A00365529
- Camilo González Velasco - A00370263
- Alexander Sanchez Sanchez - A00368238