The path towards observability in a microservices architecture

Detalhes bibliográficos
Autor(a) principal: Ferreira, Sónia Cristina Teixeira
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10400.22/24322
Resumo: The availability and performance of client applications is a huge factor for the success of organizations. The digital transformation of manufacturing processes is making use of modern development paradigms, such as microservice architectural styles, a growing trend for the last years. Like any other architectural style, it has its costs and benefits. Microservices use a distributed system to improve modularity but, distribution is a cost. One other cost is the operational complexity. While being able to deploy small independent services it also has increased the demands on managing and monitoring those services. Observability becomes essential to ensure stable services, allowing us to understand and explain the inner workings of our applications, even in unpredictable situations. The aim of this dissertation is to design a road map to develop and implement observability and monitoring for distributed systems. This includes exploring the current tools available that allow monitoring, using the three pillars of observability (logs, metrics, and tracing) and evaluate which one or which ones are the most efficient and effective for the microservices architecture being studied, since identifying an appropriate solution, out of all available options, actively exploring and evaluate it, takes time that usually developers don’t have. Several approaches were tested and compared using Chaos Testing, measuring the time it took from the moment a fault was injected into the system until an alert was generated. Additionally, for each approach, the quality of the information obtained in logs, traces, and metrics was evaluated. Although the results obtained did not provide sufficient evidence to conclude that any ap proach was more efficient than the others, the knowledge gained during the development of this dissertation has enabled us to define the necessary steps to make Target App into an observable system.
id RCAP_05fea8e3d894a607a5c598c3a669360f
oai_identifier_str oai:recipp.ipp.pt:10400.22/24322
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling The path towards observability in a microservices architectureMicroservicesObservabilityMonitoringTracingCentralized loggingDomínio/Área Científica::Engenharia e TecnologiaThe availability and performance of client applications is a huge factor for the success of organizations. The digital transformation of manufacturing processes is making use of modern development paradigms, such as microservice architectural styles, a growing trend for the last years. Like any other architectural style, it has its costs and benefits. Microservices use a distributed system to improve modularity but, distribution is a cost. One other cost is the operational complexity. While being able to deploy small independent services it also has increased the demands on managing and monitoring those services. Observability becomes essential to ensure stable services, allowing us to understand and explain the inner workings of our applications, even in unpredictable situations. The aim of this dissertation is to design a road map to develop and implement observability and monitoring for distributed systems. This includes exploring the current tools available that allow monitoring, using the three pillars of observability (logs, metrics, and tracing) and evaluate which one or which ones are the most efficient and effective for the microservices architecture being studied, since identifying an appropriate solution, out of all available options, actively exploring and evaluate it, takes time that usually developers don’t have. Several approaches were tested and compared using Chaos Testing, measuring the time it took from the moment a fault was injected into the system until an alert was generated. Additionally, for each approach, the quality of the information obtained in logs, traces, and metrics was evaluated. Although the results obtained did not provide sufficient evidence to conclude that any ap proach was more efficient than the others, the knowledge gained during the development of this dissertation has enabled us to define the necessary steps to make Target App into an observable system.A disponibilidade e o desempenho das aplicações são um fator importante para o sucesso das organizações. A transformação digital dos processos de fabricação está a utilizar paradigmas modernos de desenvolvimento, como estilos de arquitetura de microserviços, que tem sido uma tendência crescente nos últimos anos. Como qualquer outro estilo arquitetónico, tem seus custos e benefícios. Os microserviços usam um sistema distribuído para melhorar a modularidade, mas a distribuição é um custo. Um outro custo é a complexidade operacional. Ao mesmo tempo em que pode instalar pequenos serviços independentes, também aumentou os pedidos de gestão e monitorização desses serviços. A observabilidade torna-se deste modo essencial para garantir serviços estáveis, permitindo-nos compreender e explicar o funcionamento interno das nossas aplicações, mesmo em situações imprevisíveis. O objetivo desta dissertação é desenhar um guia para desenvolver e implementar observabilidade e monitorização para sistemas distribuídos. Isso inclui explorar as ferramentas atualmente disponíveis que permitem a monitorização, usando os três pilares da observabilidade (logs, métricas e tracing) e explorar qual ou quais são as mais eficientes e eficazes para a arquitetura de microserviços em estudo. Uma vez que a identificação de uma solução adequada, a partir de todas as opções disponíveis, explorar e avaliar todas essas opções, é um processo moroso, que consome tempo que os programadores normalmente não têm. Várias abordagens foram testadas e comparadas usando a plataforma Chaos Testing, medindo o tempo demorado desde o momento em que uma falha foi injetada no sistema até um alerta ser gerado. Além disso, para cada abordagem, foi avaliada a qualidade das informações obtidas em logs, traces e métricas. Embora os resultados obtidos não tenham fornecido evidências suficientes para concluir que qualquer abordagem fosse mais eficiente que as outras, o conhecimento adquirido durante o desenvolvimento desta dissertação permitiu-nos definir os passos necessários para implementar observabilidade na Target App.Sousa, Paulo Manuel Baltarejo deRepositório Científico do Instituto Politécnico do PortoFerreira, Sónia Cristina Teixeira2023-11-162026-11-16T00:00:00Z2023-11-16T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.22/24322TID:203414616enginfo:eu-repo/semantics/embargoedAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-12-27T01:49:13Zoai:recipp.ipp.pt:10400.22/24322Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T00:56:13.979002Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv The path towards observability in a microservices architecture
title The path towards observability in a microservices architecture
spellingShingle The path towards observability in a microservices architecture
Ferreira, Sónia Cristina Teixeira
Microservices
Observability
Monitoring
Tracing
Centralized logging
Domínio/Área Científica::Engenharia e Tecnologia
title_short The path towards observability in a microservices architecture
title_full The path towards observability in a microservices architecture
title_fullStr The path towards observability in a microservices architecture
title_full_unstemmed The path towards observability in a microservices architecture
title_sort The path towards observability in a microservices architecture
author Ferreira, Sónia Cristina Teixeira
author_facet Ferreira, Sónia Cristina Teixeira
author_role author
dc.contributor.none.fl_str_mv Sousa, Paulo Manuel Baltarejo de
Repositório Científico do Instituto Politécnico do Porto
dc.contributor.author.fl_str_mv Ferreira, Sónia Cristina Teixeira
dc.subject.por.fl_str_mv Microservices
Observability
Monitoring
Tracing
Centralized logging
Domínio/Área Científica::Engenharia e Tecnologia
topic Microservices
Observability
Monitoring
Tracing
Centralized logging
Domínio/Área Científica::Engenharia e Tecnologia
description The availability and performance of client applications is a huge factor for the success of organizations. The digital transformation of manufacturing processes is making use of modern development paradigms, such as microservice architectural styles, a growing trend for the last years. Like any other architectural style, it has its costs and benefits. Microservices use a distributed system to improve modularity but, distribution is a cost. One other cost is the operational complexity. While being able to deploy small independent services it also has increased the demands on managing and monitoring those services. Observability becomes essential to ensure stable services, allowing us to understand and explain the inner workings of our applications, even in unpredictable situations. The aim of this dissertation is to design a road map to develop and implement observability and monitoring for distributed systems. This includes exploring the current tools available that allow monitoring, using the three pillars of observability (logs, metrics, and tracing) and evaluate which one or which ones are the most efficient and effective for the microservices architecture being studied, since identifying an appropriate solution, out of all available options, actively exploring and evaluate it, takes time that usually developers don’t have. Several approaches were tested and compared using Chaos Testing, measuring the time it took from the moment a fault was injected into the system until an alert was generated. Additionally, for each approach, the quality of the information obtained in logs, traces, and metrics was evaluated. Although the results obtained did not provide sufficient evidence to conclude that any ap proach was more efficient than the others, the knowledge gained during the development of this dissertation has enabled us to define the necessary steps to make Target App into an observable system.
publishDate 2023
dc.date.none.fl_str_mv 2023-11-16
2023-11-16T00:00:00Z
2026-11-16T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10400.22/24322
TID:203414616
url http://hdl.handle.net/10400.22/24322
identifier_str_mv TID:203414616
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/embargoedAccess
eu_rights_str_mv embargoedAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799136447655051264