Identificación del impacto de la observación y el monitoreo sobre sistemas reactivos en ambientes distribuidos

El presente documento provee una alternativa de observabilidad y monitoreo sobre sistemas distribuidos utilizando herramientas de software libre, presentando una plataforma de visualización de observabilidad. Además de identificar las mejores prácticas a la hora de monitorear aplicaciones reactivas...

Full description

Autores:
Benedetti Velasquez, Adolfo Enrique
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2021
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/29109
Acceso en línea:
http://hdl.handle.net/11349/29109
Palabra clave:
Quarkus
Java
Jaeger
Búsqueda elástica
Observabilidad
Rastreo
Ingeniería de Sistemas - Tesis y disertaciones académicas
Java (Programa para computador)
Sistemas de archivos distribuidos
Sistemas multimedia distribuidos
Software libre
Quarkus
Java
Jaeger
Elastic search
Observability
Tracking
Rights
License
Atribución 4.0 Internacional
Description
Summary:El presente documento provee una alternativa de observabilidad y monitoreo sobre sistemas distribuidos utilizando herramientas de software libre, presentando una plataforma de visualización de observabilidad. Además de identificar las mejores prácticas a la hora de monitorear aplicaciones reactivas en sistemas distribuidos escalables. Explorar los diferentes frameworks reactivos disponibles dentro del software libre que hagan uso de la máquina virtual de Java. Presentar como algunos frameworks libres que usan programación asincrónica en la máquina virtual de Java, son herramientas accesibles y eficientes para escribir de forma asíncrona aplicaciones escalables enfocadas a la nube. Y para finalizar construye un prototipo observable reactivo con su respectivo cliente de carga usando alguno de estos frameworks. El rápido escalamiento de compañías de internet, y posteriores subproductos de la nube como Amazon AWS o Google Cloud, combinado con herramientas enfocadas a infraestructura como Containers y Kubernetes, han abierto una nueva era de sistemas distribuidos operando en cientos de nodos alrededor de múltiples centros de datos. Arquitecturas enfocadas a microservicios actualmente han incrementando la complejidad de estos sistemas exponencialmente, a pesar de que permiten a los sistemas responder en un tiempo aceptable, escalar vertical y horizontalmente, permitir flujos de datos de forma asíncrona, hace aún más difícil monitorear el estatus actual de dichos sistemas. La programación asincrónica es clave para maximizar el uso de estos nuevos recursos de hardware, ya que permite lidiar con más conexiones concurrentes que con los paradigmas tradicionales de bloqueo de E / S (Entrada/ Salida). Los servicios deben atender las cargas de trabajo que pueden cambiar drásticamente de una hora a otra, por lo tanto, debemos diseñar un código que admita naturalmente la escalabilidad horizontal. Pero esto solo incrementa la complejidad de las aplicaciones, algo para lo cual el monitoreo de microservicios reactivos no estaba diseñado inicialmente. El monitoreo de microservicios reactivos se puede realizar haciendo uso combinado del clásico registro de eventos (Logging), rastreo distribuido y combinado esto con métricas, en los ambientes donde estos sistemas sean desplegados.