Publicação

An observability approach for microservices architectures based on opentelemetry

Ver documento

Detalhes bibliográficos
Resumo:The rapid adoption of microservices and cloud-native architectures has revolutionized the way modern applications are developed and deployed. However, this shift has introduced new challenges in terms of ensuring the reliability and performance of these distributed systems. In response, observability is proposed as a new methodology to address these challenges. Observability refers to the collection of telemetry data (including traces, metrics, and logs) from a system components in real time, allowing for a comprehensive understanding of its internal status and behavior. This capability is essential for troubleshooting, performance optimization, and enhancing system reliability by facilitating the detection of errors and anomalies. The main objective of this thesis is to implement an observability concept within a Python Flask based system. The system follows a cloud-native, microservices, and event-driven architecture. The main motivation for this study is the recent, but important development of observability and the culture of Development and Operations (DevOps). The chosen method for implementation is OpenTelemetry, a neutral and open-source approach to observability. This decision aims to avoid vendor lock-in, which can be a concern with vendor-specific agents. Furthermore, a study is carried out to make a choice among the vendors considered which are compat ible with OpenTelemetry, e.g. Jaeger, Zipkin, Prometheus, Elastic Search, New Relic, Datadog, Dynatrace, Grafana, Splunk, and AppDynamics. Each vendor offers different approaches to observability and visual ization of the telemetry data. In addition, a weighted decision matrix is used to aid in the decision along with a decision criterion defined by the development team. The results of this study not only highlight the vendor selection process for telemetry data visualization but also emphasize that OpenTelemetry is a viable and standardized approach to observability, offering an effective means to prevent vendor lock-in.
Autores principais:Moreira, André Cunha Azevedo
Assunto:Observability Monitoring Cloud-native Microservices Opentelemetry Tracing Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
Ano:2023
País:Portugal
Tipo de documento:dissertação de mestrado
Tipo de acesso:acesso aberto
Instituição associada:Universidade do Minho
Idioma:inglês
Origem:RepositóriUM - Universidade do Minho
Descrição
Resumo:The rapid adoption of microservices and cloud-native architectures has revolutionized the way modern applications are developed and deployed. However, this shift has introduced new challenges in terms of ensuring the reliability and performance of these distributed systems. In response, observability is proposed as a new methodology to address these challenges. Observability refers to the collection of telemetry data (including traces, metrics, and logs) from a system components in real time, allowing for a comprehensive understanding of its internal status and behavior. This capability is essential for troubleshooting, performance optimization, and enhancing system reliability by facilitating the detection of errors and anomalies. The main objective of this thesis is to implement an observability concept within a Python Flask based system. The system follows a cloud-native, microservices, and event-driven architecture. The main motivation for this study is the recent, but important development of observability and the culture of Development and Operations (DevOps). The chosen method for implementation is OpenTelemetry, a neutral and open-source approach to observability. This decision aims to avoid vendor lock-in, which can be a concern with vendor-specific agents. Furthermore, a study is carried out to make a choice among the vendors considered which are compat ible with OpenTelemetry, e.g. Jaeger, Zipkin, Prometheus, Elastic Search, New Relic, Datadog, Dynatrace, Grafana, Splunk, and AppDynamics. Each vendor offers different approaches to observability and visual ization of the telemetry data. In addition, a weighted decision matrix is used to aid in the decision along with a decision criterion defined by the development team. The results of this study not only highlight the vendor selection process for telemetry data visualization but also emphasize that OpenTelemetry is a viable and standardized approach to observability, offering an effective means to prevent vendor lock-in.