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

Miniatura

Fecha

2021-06-28

Fecha

2021-06

Título de la revista

ISSN de la revista

Título del volumen

Editor

Proyecto curricular de Ingeniería de Sistemas

Descripción

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.

Resumen

This document provides an alternative for observability and monitoring on distributed systems using free software tools, presenting an observability visualisation platform. In addition to identifying best practices when monitoring reactive applications in scalable distributed systems. Also, exploring the different reactive frameworks available within free software that make use of the Java virtual machine. Showing how some free frameworks that use asynchronous programming in the Java virtual machine are accessible and efficient tools to write scalable cloud-focused applications asynchronously. And finally, build a reactive observable prototype with its respective load client. T he fast grow of internet companies, and subsequent cloud by-products such as Amazon AWS or Google Cloud, combined with infrastructure-focused tools such as Containers and Kubernetes, have opened a new era of distributed systems operating in hundreds of nodes around multiple hubs. Architectures focused on microservices currently have increasing the complexity of these systems exponentially, although they allow systems to respond in an acceptable time, scale vertically and horizontally allowing data flows asynchronously is making more difficult to monitor the current status of such systems. Asynchronous programming is key to maximising the use of these new hardware resources, allowing to deal with more concurrent connections than with traditional I/O blocking paradigms. Services must cater for workloads that can change dramatically from hour to hour, therefore we must design code that naturally supports horizontal scalability. But this only increases the complexity of the applications, something for which reactive microservices monitoring was not designed initially. The monitoring of reactive microservices can be carried out by making combined use of the classic event logging and distributed tracing in the environments where these systems are deployed.

Palabras clave

Quarkus, Java, Jaeger, Búsqueda elástica, Observabilidad, Rastreo

Materias

Ingeniería de Sistemas - Tesis y disertaciones académicas, Java (Programa para computador), Sistemas de archivos distribuidos, Sistemas multimedia distribuidos, Software libre

Citación

20-2021-040