Featured image of post Dockerización de aplicación multicapa

Dockerización de aplicación multicapa

Proyecto académico | Dockerización de aplicación multicapa, un primer contenedor para la capa de presentación con Nginx, un segundo contenedor para la capa de lógica de negocio con Nodejs y Express, y un tercer contenedor para la capa de peristencia con MongoDB.

Este proyecto fue desarrollado para la asignatura de Contenedores como parte del máster universitario oficial en Desarrollo y Operaciones (DevOps). El objetivo principal del presente proyecto es llevar a cabo la dockerización de un aplicativo multicapa de carácter sencillo, diseñado con un enfoque pedagógico para ilustrar la arquitectura por capas y su despliegue mediante contenedores. Esta aplicación se ha concebido con tres capas diferenciadas: presentación web, lógica de negocio y persistencia de datos. A pesar de que inicialmente se planteó un stack de tipo MEAN (Mongo - Express – Angular - Node), la capa de presentación basada en Angular y Nginx no ha sido implementada en su totalidad. Por ello, la estructura final del proyecto queda configurada de la siguiente manera:

• Primera capa, capa de presentación: Nginx + Sitio web

• Segunda capa, capa de lógica de negocio: Aplicación app.js desarrollada utilizando Express sobre Node.js.

• Capa de persistencia: Implementada mediante MongoDB.

La funcionalidad del aplicativo es deliberadamente simple, con el objetivo de centrarse en la estructura y el despliegue. Se trata de una especie de “Hola Mundo”, en la que el cliente se conecta inicialmente a la capa de presentación (Nginx), que le entrega un fichero index.html. Este fichero contiene una llamada que provoca una segunda petición HTTP al mismo servidor Nginx, pero que es procesada de forma distinta en función del PATH de la solicitud.

Index.html Nginx.conf

Esta petición es redirigida hacia la capa de backend, donde se encuentra desplegada la aplicación Express.

Desde allí, la aplicación trata de establecer conexión con la base de datos MongoDB.

En función del resultado de dicha conexión, el backend responde al cliente con un mensaje en formato JSON, indicando si la conexión ha sido exitosa (“Hola mundo, conexión establecida correctamente”) o si ha ocurrido algún error.

Arquitectura

Repositorio de GitHub: https://github.com/aleingmar/multi-layer-app-dockerisation

Vídeo de la experimentación y memoria del proyecto:

Documentación del proyecto: Visualizar documentación en pdf

Licensed under CC BY-NC-SA 4.0
Última actualización abr. 19, 2025 00:00 UTC
comments powered by Disqus
Creado con Hugo
Tema Stack diseñado por Jimmy