Skip to content

AndresEncalada/Virtualizaci-n-en-la-Nube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gestión de Recursos Académicos - Arquitectura Distribuida

Este proyecto implementa una solución de tres capas desplegada en Google Cloud Platform (GCP). El sistema simula un portal académico que permite la gestión, carga y consulta de recursos multimedia, utilizando servicios de almacenamiento distribuido, bases de datos relacionales y balanceo de carga para garantizar alta disponibilidad y escalabilidad.

Descripción de la Arquitectura

La solución se divide en tres capas lógicas y físicas:

Capa de Presentación (Frontend): Servidor web que aloja la interfaz de usuario, permitiendo la interacción con el sistema mediante peticiones HTTP.

Capa de Negocio (Backend): Cluster de instancias Node.js gestionadas por un Grupo de Autoescalado y un Balanceador de Carga Regional. Esta capa procesa la lógica y orquesta la persistencia de datos.

Capa de Datos (Persistencia Híbrida):

Metadatos: Google Cloud SQL (PostgreSQL) para almacenar información de usuarios, categorías y referencias a archivos.

Archivos Físicos: Google Filestore (NFS) montado en los servidores de backend para el almacenamiento compartido de archivos binarios.

Tecnologías Utilizadas

Nube: Google Cloud Platform (GCP)

Lenguajes: JavaScript (Node.js), SQL

Base de Datos: PostgreSQL 14 (Cloud SQL)

Almacenamiento: NFSv3 (Google Filestore)

Servidor Web/API: Express.js

Gestor de Procesos: PM2

Endpoints de la API La API RESTful expone los siguientes puntos de acceso a través del Balanceador de Carga:

1. Registrar Usuario

Método: POST

Ruta: /api/register

Descripción: Crea un nuevo usuario en la base de datos relacional.

Body (JSON):

JSON

{ "username": "usuario_ejemplo", "email": "correo@ejemplo.com", "password": "password_seguro" }

2. Subir Recurso

Método: POST

Ruta: /api/upload

Descripción: Almacena el archivo físico en el servidor NFS y registra sus metadatos en PostgreSQL.

Tipo de contenido: multipart/form-data

Parámetros:

file: El archivo binario a subir.

user_id: ID del usuario propietario.

category_id: ID de la categoría del recurso.

3. Listar Recursos

Método: GET

Ruta: /api/resources

Descripción: Recupera el listado de todos los archivos disponibles en el sistema consultando la base de datos.

Infraestructura y Despliegue

Configuración de Red

Se configuró una VPC personalizada (red-universidad) con dos subredes:

Subred Pública: Para el acceso al Frontend y Balanceador de Carga.

Subred Privada: Para las instancias de Backend y Base de Datos.

Subred Proxy: Reservada para el funcionamiento del Balanceador de Carga Regional.

Montaje de Almacenamiento

Las instancias de Backend se conectan al servicio Filestore mediante el protocolo NFS. La configuración de persistencia se encuentra en /etc/fstab para asegurar el montaje automático tras reinicios o escalado automático.

About

El repositorio presenta la práctica de virtualización en la nube realizada para la materia de Sistemas distribuidos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors