Ir al contenido principal

Disponibilidad: Health Endpoint Monitoring pattern

Chequea el estado de salud de la aplicación


Problema:

Tenemos una aplicación web que recibe un request de un cliente. Este servicio se comunica con
 - Un servicio de cache
 - Una cola
 - Una Base de datos
 - Un CDN* (Content Delivery Network)


Que ocurre si se presenta una falla?

Al cliente se le va a presentar un error.

Solución:
Tener un endpoint que va a dar la información de cada uno de los servicios o recursos que estamos consumiendo. Adicional tener un aplicación que nos de metricas, por ejemplo Application Insights, Amazon CloudWatch

- Frecuencia de request
- MĆ©tricas (Performance, falla) y tomar acciones  (Dar de baja instancia, disparar acciones)

Consideraciones

- Que datos se van a exponer, ya que cualquiera podrĆ­a verla /health
- Cuantos endtpoints se van a exponer (Uno total o uno por servicio)
- Seguridad del endpoint (https, autenticación..etc)
- Menor impacto (No puede degradar a la aplicación)


Cuando?
- Siempre que se publique una aplicación o servicio en el cloud.
- Conocer el estado de nuestros servicios (A alguien le debe interesar)
- Tener una actitud proactiva ante posibles errores.
- Evitar dowtimes, evitar que nuestra aplicación este abajo.



* Distribución de contenidos: Un CDN es un servicio que nos permite servir contenidos estĆ”ticos (imĆ”genes, PDF, vĆ­deos, CSS, JS, etc.) desde servidores que estĆ”n mĆ”s cercanos geogrĆ”ficamente al visitante que entra a la web.




Referencias:


Comentarios

Entradas mƔs populares de este blog

Antipatrones Microservicios

1. Migración de Manejo de Datos Antipatron. El antipatrón de migración basado en datos se produce principalmente cuando se migra de una aplicación monolĆ­tica a una arquitectura de microservicios. La razón por la que esto es un antipatrón es que al principio parece una buena idea migrar la funcionalidad del servicio y los datos correspondientes al crear microservicios, pero como aprenderĆ” en este capĆ­tulo, esto lo llevarĆ” por un mal camino que puede resultar en alto riesgo, exceso de costo y esfuerzo de migración adicional. Comprender los riesgos relacionados con la migración de datos y la importancia de "datos sobre funcionalidad" es el primer paso para evitar este antipatrón. La tĆ©cnica para evitar este antipraton consiste en realizar primero una migración de la funcionalidad, es decir, primero refactorizar el código fuente, pasando por primero modularizar el contexto o dominio y continuar con la definición y construcción de servicios, a medida que se conoce el código que se...

Microservice Architecture | Arquitectura de microservicios

QuĆ© es  Arquitectura de microservicios ?   El estilo arquitectónico de microservicios es un enfoque para desarrollar una sola aplicación como un conjunto de pequeƱos servicios, cada uno de los cuales se ejecuta en su propio proceso y se comunica con mecanismos ligeros, a menudo una API de recursos HTTP. El hecho de que los  servicios son implementables y escalables de manera independiente, cada servicio tambiĆ©n permite que se escriban diferentes servicios en diferentes lenguajes de programación. TambiĆ©n pueden ser gestionados por diferentes equipos. Las aplicaciones creadas a partir de microservicios pretenden ser lo mĆ”s desacopladas y cohesivas posible: poseen su propia lógica de dominio y actĆŗan mĆ”s como ltros en el sentido clĆ”sico de que reciben una solicitud, aplican la lógica segĆŗn corresponda y producen una respuesta. Un servicio es una funcionalidad que se expone para su uso por otros procesos .  Que otros protocolos puedo us...

Referencia | Material de Apoyo

Arquitectura .NET Architecture Guides Architectural Patterns: Uncover essential patterns in the most indispensable Domain Driven Design Quickly Microservicios Practical Microservices: By Umesh Ram Sharma Building Microservices: Designing Fine-Grained Systems By Sam Newman SOA Design Patterns By Thomas Erl