Experimentos de Arquitectura - dfgoUniandes/proyecto-final-uniandes-grupo-02 GitHub Wiki
Experimento 1 - Disponibilidad
Propósito del experimento.
Comprobar y verificar el funcionamiento de la táctica de arquitectura para la detección de fallas, Monitor; enfocada en disponibilidad de la comunicación asíncrona .
Resultados esperados.
Se espera que con el experimento se pueda verificar el estado de vida de los componentes el 100% de las veces
Recursos requeridos.
Servidor de aplicación (Despliegue de Microservicios), Flask.
Elementos de arquitectura involucrados.
- Monitor, verificar el estado de los componentes.
- Microservicios. Se encuentran en la vista funcional.
Como elementos involucrados en la arquitectura del experimento propuesto, mediante la vista de información como mecanismo para expresar las decisiones de diseño, de esta forma se pueden buscar los componentes que pueden comprometer la disponibilidad del sistema.
API Gateway, Servir como punto único de superficie de entrada al sistema que por medio del patrón de fachada ocultar los microservicios al mismo tiempo que aloja el componente monitor.
Monitor, verificar el estado de los componentes por medio de la táctica de ping - echo.
Microservicios, al hacer uso de microservicios se busca favorecer la disponibilidad de cada microservicio y del sistema en general ya que al presentarse una falla en uno no debería afectar el comportamiento de los demás.
Esfuerzo estimado
60 Horas
Distribución de esfuerzo
Integrante | Tareas a realizar | Esfuerzo estimado |
---|---|---|
Diego F. Garcia O | Realización de tareas relacionadas a la creación, integración e implementación de microservicio Sincronizador. Apoyo transversal. | 15 Horas |
Jorge E. Pacheco R. | Realización de tareas relacionadas a la creación, integración e implementación de microservicio de instancia de registro de información. | 15 Horas |
Oscar E. Cortes Medina | Realización de tareas relacionadas a la integración, ejecución e implementación API Gateway | 15 Horas |
Javier Elkin Rativa | Realización de tareas relacionadas a la creación, integración e implementación de microservicio de instancia de verificación de táctica monitor. | 15 Horas |
Hipótesis de diseño
Punto de sensibilidad
Componente monitor
Historia de arquitectura asociada
Todas
Nivel de incertidumbre
Medio-Alto: 8
Estilo de arquitectura basado en microservicios.
Atributos favorecidos
- Disponibilidad
- Bajo Acoplamiento
Atributos desfavorecidos
- Complejidad en la gestión de los MS
Tácticas de Arquitectura asociadas al experimento
Monitor
Usar un componente monitor dentro del API Gateway para revisar el estado de cada uno de los microservicios por medio de la táctica de ping - echo. El experimento se centrará en la configuración de la técnica desde el API Gateway y como esta manejara los eventos recibidos de cada microservicio
Listado de componentes (Microservicios) involucrados en el experimento
Monitor - API Gateway
El propósito del monitor es vigilar el estado de los microservicios presentes en el sistema y generar un diagnóstico de estos y a partir de esto tomar decisiones de escalabilidad.
Reportes
Generar los reportes necesarios para el médico. Para el experimento se espera que este MS responda su estado de salud mediante el endpoint de /health
Notificaciones
Generar notificaciones a los pacientes cuando se realiza un diagnóstico. Para el experimento se espera que este MS responda su estado de salud mediante el endpoint de /health.
Tecnología asociada con el experimento
-
Lenguajes de programación utilizado: Python: Facilita la construcción y la implementación del modelo propuesto
-
Plataforma de despliegue: Localmente: Para el desarrollo del experimento se trabajará de forma local.
-
Herramientas de análisis: POSTMAN, Swagger: Herramientas necesarias para realizar las peticiones y la documentación de los microservicios.
-
Librerías: Requests, Collections: Librerías necesarias para implementar los microservicios y realizar los llamados además microservicios y cola de mensajería.
-
Frameworks de desarrollo: Flask: Framework de desarrollo necesario para la implementación de los microservicios necesarios.