Skip to main content

Bitácora

Bitácora es la aplicación orientada a maestros e instituciones para interactuar con Explorax. Provee las herramientas a las instituciones para gestionar a sus exploradores y ver métricas de su progreso. Para lograrlo obtiene información de muchisima

Backend

El backend de bitacora se implementó usando AWS Lambda y Api Gateway, siguiendo la misma estructura dicha en Backend de UMS

Redes

Los servicios de Bitacora viven dentro de la misma VPC que el UMS, permitiendoles compartir recursos entre ellos. Así como se explica en arquitectura de UMS (leer para mas detalles) se cuentan con subredes privadas y públicas y un servidor jumpbox que permiten el acceso a desarrolladores autorizados para acceder a recursos privados.

Arquitectura

Bitácura es una herramienta integral que ofrece varios servicios (administracion de usuarios, estadísticas, notificaciones...) Así que depende de otros servicios de Explorax para funcionar, y de varias fuentes de datos. A continuación un diagrama de la arquitectura:

Arquitectura general

  1. Los desarrolladores pueden interactuar con los recursos de la VPC utilizando diferentes canales, ver mas detalles en arquitectura de UMS.

    a. IAM Identity Center

    b. VPN

    c. Github Actions

  2. La misma jumpbox usada en el UMS es utilizada para enrutar el tráfico por VPN de desarrolladores a recursos privados.

  3. Información esencial de los usuarios se guardan en la BD del UMS, datos específicos de bitácora se guardan en una BD dedicada; ambas viven en la misma subred privada usando Postgres RDS. Bitácora solo tiene permisos de lectura para la BD de UMS.

  4. Bitácora tiene acceso a datos estadísticos a travez de un endpoint VPC a Mongo Atlas donde los datos del juego son guardados.

  5. El backend de bitácora consta de un REST Api implementada con Api Gateway y AWS Lambda.

  6. La API del UMS se utiliza para servicios de autenticación y manejo de cierta información de usuarios.

  7. La página web es hosteada utilizadan AWS Amplify.

  8. El contenido multimedia (imagenes, videos...) es guardado en S3 y distribuido con Cloudfront a la página web.

Manejo de contenido multimedia

Si nos enfocamos en como se maneja la distribución de multimedia, hay varios partes en juego.

Arquitectura general

Almacenamiento

A la hora de almacenar cualquier recurso, su información es separada en :

  • datos: el recurso en si.
  • metadatos: información extra sobre el recurso.

Los datos son guardados en S3 por el backend de Bitácora, una vez se conoce la localización del recurso en S3 se guarda junto con los metadatos en la BD de Bitácora.

Distribución

El contenido de S3 es distribuido con Cloudfront, este servicio le asigna una URI a todos los recursos multimedia, de tal manera que cuando un usuario quiere leer un recurso, el backend de bitácora responde con el URI de Cloudfront, ya es el cliente responsable de obtener el recurso con el URI proporcionado.

Para evitar el acceso para personas no autorizadas, a los usuarios se les proporciona tambien una cookie que es verificado en cada request que se hace a Cloudfront usando Cloudfront functions.