The path towards observability in a microservices architecture
Autor(a) principal: | |
---|---|
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_ |
1817553127423868928 |