Dimensionamiento, desarrollo, despliegue y análisis de rendimiento de una API GraphQL con una arquitectura de microservicios y clúster de base de datos altamente escalable en AWS para producción
Date
2024-07-09Author
Hospital Gómez, Ander
Metadata
Show full item recordAbstract
Este Trabajo Fin de Máster consiste en el dimensionamiento, desarrollo, despliegue y posterior análisis de rendimiento de una API (Application Programming Interface) unificada para todos los clientes del producto Profesiolan.
El trabajo está enmarcado en un caso real de necesidad de una Startup tecnológica que, por un crecimiento acelerado, debe migrar la totalidad de su MVP (Producto Mínimo Viable) a un nuevo producto que implemente escalabilidad, alta disponibilidad, una excelente calidad de servicio, mejor resiliencia ante fallos, seguridad, posibilidad de dar servicio en diferentes zonas geográficas y, sobre todo, un nuevo paradigma de arquitectura modular que permita integración y despliegue continuo (CI/CD).
Al tratarse de un reto que resuelve una problemática real, se presta especial atención al análisis de alternativas, siendo sendos puntos críticos la decisión de la pila tecnológica, el paradigma de arquitectura, y la valoración de uso de un sistema de computación en la nube basado en un sistema de infraestructura como servicio frente a un despliegue alternativo tradicional. Para el mencionado análisis de alternativas, además de parámetros de decisión y ponderación de carácter púramente técnicos, también se han incluido de carácter económico y financiero, precedidos por una serie de especificaciones directamente impuestas por la dirección de la empresa.
Debido al salto cualitativo de nivel tecnológico que proponen los proveedores de computación en la nube o Cloud Computing en el contexto del continuo y acelerado desarrollo de las tecnologías en la nube, este Trabajo Fin de Máster emplea muchos de los paradigmas de arquitectura que conforman, a día de hoy, el estado del arte en el sector del Software Como Servicio o SaaS. En este contexto, se debe hablar de microservicios, funciones Lambda, GraphQL y multi A-Z deployment, entre otros.