Dissertação

{en_GB=Melange: A Hybrid Approach to Tracing Heterogeneous Distributed Systems} {} EVALUATED

{pt=Os sistemas de software estão, cada vez mais, a tornar-se distribuidos para suportar os requisitos de performance e disponibilidade dos utilizadores modernos, bem como a crescente quantidade de dados colecionada por uma base global de utilizadores. Apesar dos sistemas distribuidos apresentarem inúmeras vantagens, colocam em simultâneo alguns desafios para os programadores que necessitam de depurar e analizar a sua performance. Alguns projectos recorreram a distributed tracing para reduzir essas dificuldades proporcionando uma visualização de alto nível da execução completa de requests individuais, que pode ser anotada com informação de debugging e métricas de performance. No entanto, estas ferramentas requerem a modificação dos componentes que nem sempre é viável, ou sequer possível. Outros trabalhos procuraram conceptualizar os sistemas como conjuntos de black-boxes, e implementar tracing através de inferencia estatistica baseada em dados capturados de forma não intrusiva, ou baseando-se em conhecimento especializado dos componentes do sistema. Apesar destes sistemas não modificarem o software traced, são frequentemente lentos, susceptiveis a falsos positivos, ou requerem conhecimento de muito baixo-nível dos componentes, algo dificil de obter para utilizadores de software closed-source. Neste documento apresentamos um estudo do estado-da-arte do distributed tracing, e propomos uma nova framework de instrumentação para tracing de sistemas distribuidos que combina modificação do source code e extracção de dados com base em Aspect-Oriented Programming, para implementar tracing em sistemas distribuidos heterogéneros constituidos por black-boxes. Fazemos isto recorrendo a tecnologias open-source., en=Software systems are becoming increasingly distributed to deal with the performance and availability requirements of modern users, as well as an ever-increasing amount of data collected from a global user base. While distributed systems pose numerous advantages, they present a challenge for the developers who wish to debug and analyze their performance. Some works have used distributed tracing to offset these difficulties by providing a high level view of the end-to-end execution of single requests, which can be annotated with debugging and performance metrics. However, most of these tools require the modification of the traced components which is often not viable or even possible. Other works have attempted to trace systems as sets of black-boxes, through statistical inference based on non-intrusive data-capturing, or by leveraging expert knowledge of the system’s components. While these systems require no modification of the traced software, they are often slow, susceptible to false positives, or require very low-level knowledge of components which is difficult for users of closed source software. In this document, we present a survey of the current state-of-the-art in distributed tracing, and propose an alternative distributed tracing instrumentation framework that combines source-code modification and Aspect-Oriented Programming based data extraction, to implement distributed tracing in heterogeneous distributed systems containing black-boxes. We do this by leveraging commonly available open-source tools.}
{pt=Sistemas Distribuidos, Monitorização, Instrumentação, en=Distributed Systems, Distributed Tracing, Performance Engineering, Monitoring, Instrumentation}

Novembro 25, 2019, 9:0

Orientação

ORIENTADOR

Luís Manuel Antunes Veiga

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

Nuno Diegues

Feedzai

Engineering Manager