Name: | Description: | Size: | Format: | |
---|---|---|---|---|
7.01 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
Over the years, software architectures have undergone significant transformations, driven by
the constant changes in market demands. The imperative to empower organizations and
teams for independent and agile application development has culminated in the adoption of
loosely coupled architectures that consist of small, independent services. Emphasizing an
asynchronous communication methodology through events, this approach enhances flexibility
and speed while also reducing the dependency between services and teams. Concurrently,
the escalating requirements for robust, resilient, and highly available systems have propelled
a heightened need for better observability, particularly in these systems. While fundamental
techniques like logging, monitoring, and alerting are essential for individual services, they
may fall short in the context of an event-driven architecture where services are independent
of each other and possess resilience mechanisms such as clustering, load balancing, and data
replication.
With the adoption of such software architectures, organizations face difficulties in achiev ing sufficient visibility of end-to-end business flows that span across multiple services. This
thesis explores this challenge, taking into account the difficulties identified in the implemen tation posed by existing resilience mechanisms, such as clustering, load balancing, and data
replication strategies.
The proposed solution addresses these challenges by introducing an easy-to-set-up, open source tracing solution designed to enable tracing in a pre-defined set of services. This
solution aims to bridge the gap in observability within event-driven architectures, allowing
organizations to overcome the limitations posed by these implementations. By leveraging
distributed tracing tools, the proposed solution provides a comprehensive analysis of the
ecosystemās current state, offering insights and actionable data for improved monitoring
and understanding of end-to-end business processes.
In conclusion, the work done in this thesis contributes not only to the theoretical understand ing of observability challenges in dynamic software architectures but also provides a practical
and accessible solution to enhance traceability in the context of event-driven architectures
with resilience mechanisms. The open-source nature of the proposed solution promotes
widespread adoption and collaboration within the software development community.
Ao longo dos anos, as arquiteturas de software sofreram transformaƧƵes significativas, impulsionadas pelas constantes mudanƧas nas exigĆŖncias do mercado. A necessidade de capacitar organizaƧƵes e equipas para o desenvolvimento independente e Ć”gil de aplicaƧƵes culminou na adoção de arquiteturas pouco acopladas, compostas por pequenos serviƧos in dependentes. Enfatizando uma metodologia de comunicação assĆncrona atravĆ©s de eventos, essa abordagem aprimora a flexibilidade e velocidade de entrega, reduzindo a dependĆŖncia entre serviƧos e equipas. Simultaneamente, os requisitos por sistemas robustos, resilientes e altamente disponĆveis impulsionaram a necessidade acentuada de ter melhor observabilidade, particularmente nesses sistemas. Enquanto tĆ©cnicas fundamentais como logging, monitorização e alertas sĆ£o essenciais para ter observabilidade sobre um serviƧo, pode nĆ£o ser suficiente no contexto de uma arquitetura orientada a eventos, onde os serviƧos sĆ£o independentes e possuem mecanismos de resiliĆŖncia como clustering, balanceamento de carga e replicação de dados. Com a adoção de tais arquiteturas de software, as organizaƧƵes enfrentam dificuldades em alcanƧar uma boa visibilidade nos fluxos de negócios de ponta a ponta que abrangem vĆ”rios serviƧos. Esta tese explora esse desafio, tendo em conta as dificuldades identificadas na implementação causadas pelos mecanismos de resiliĆŖncia existentes, como clustering, balanceamento de carga e estratĆ©gias de replicação de dados. A solução proposta introduz uma ferramenta de tracing open-source, fĆ”cil de configurar, projetada para permitir realizar tracing num conjunto predefinido de serviƧos. Esta solução visa colmatar a lacuna na observabilidade dentro de arquiteturas orientadas a eventos, permitindo que as organizaƧƵes superem as limitaƧƵes impostas por essas implementaƧƵes. Ao aproveitar ferramentas de tracing distribuĆdo, a solução proposta fornece uma anĆ”lise abrangente do estado atual do ecossistema, oferecendo insights e dados acionĆ”veis para melhorar a monitorização e compreensĆ£o dos processos de negócios de ponta a ponta. Em conclusĆ£o, o trabalho realizado nesta tese contribui nĆ£o apenas para a compreensĆ£o teórica dos desafios de observabilidade em arquiteturas de software dinĆ¢micas, mas tambĆ©m fornece uma solução prĆ”tica e acessĆvel para aprimorar a rastreabilidade no contexto de arquiteturas orientadas a eventos. A natureza open-source da solução proposta promove a adoção generalizada e a colaboração dentro da comunidade de desenvolvimento de software.
Ao longo dos anos, as arquiteturas de software sofreram transformaƧƵes significativas, impulsionadas pelas constantes mudanƧas nas exigĆŖncias do mercado. A necessidade de capacitar organizaƧƵes e equipas para o desenvolvimento independente e Ć”gil de aplicaƧƵes culminou na adoção de arquiteturas pouco acopladas, compostas por pequenos serviƧos in dependentes. Enfatizando uma metodologia de comunicação assĆncrona atravĆ©s de eventos, essa abordagem aprimora a flexibilidade e velocidade de entrega, reduzindo a dependĆŖncia entre serviƧos e equipas. Simultaneamente, os requisitos por sistemas robustos, resilientes e altamente disponĆveis impulsionaram a necessidade acentuada de ter melhor observabilidade, particularmente nesses sistemas. Enquanto tĆ©cnicas fundamentais como logging, monitorização e alertas sĆ£o essenciais para ter observabilidade sobre um serviƧo, pode nĆ£o ser suficiente no contexto de uma arquitetura orientada a eventos, onde os serviƧos sĆ£o independentes e possuem mecanismos de resiliĆŖncia como clustering, balanceamento de carga e replicação de dados. Com a adoção de tais arquiteturas de software, as organizaƧƵes enfrentam dificuldades em alcanƧar uma boa visibilidade nos fluxos de negócios de ponta a ponta que abrangem vĆ”rios serviƧos. Esta tese explora esse desafio, tendo em conta as dificuldades identificadas na implementação causadas pelos mecanismos de resiliĆŖncia existentes, como clustering, balanceamento de carga e estratĆ©gias de replicação de dados. A solução proposta introduz uma ferramenta de tracing open-source, fĆ”cil de configurar, projetada para permitir realizar tracing num conjunto predefinido de serviƧos. Esta solução visa colmatar a lacuna na observabilidade dentro de arquiteturas orientadas a eventos, permitindo que as organizaƧƵes superem as limitaƧƵes impostas por essas implementaƧƵes. Ao aproveitar ferramentas de tracing distribuĆdo, a solução proposta fornece uma anĆ”lise abrangente do estado atual do ecossistema, oferecendo insights e dados acionĆ”veis para melhorar a monitorização e compreensĆ£o dos processos de negócios de ponta a ponta. Em conclusĆ£o, o trabalho realizado nesta tese contribui nĆ£o apenas para a compreensĆ£o teórica dos desafios de observabilidade em arquiteturas de software dinĆ¢micas, mas tambĆ©m fornece uma solução prĆ”tica e acessĆvel para aprimorar a rastreabilidade no contexto de arquiteturas orientadas a eventos. A natureza open-source da solução proposta promove a adoção generalizada e a colaboração dentro da comunidade de desenvolvimento de software.
Description
Keywords
Event-Driven Tracing Observability Logging Monitoring