Propostas submetidas

DEI - FCTUC
Gerado a 2024-05-04 08:47:45 (Europe/Lisbon).
Voltar

Titulo Estágio

A Visualization Tool for Microservices

Áreas de especialidade

Engenharia de Software

Local do Estágio

DEI/CISUC

Enquadramento

Breaking large software systems into smaller functionally interconnected components is a trend on the rise. This architectural style, known as "microservices", simplifies development, deployment and management at the expense of complexity and observability. Microservice-based architectures and Function-as-a-Service (FaaS) platforms are being favored for the flexibility they afford. This trend is only accelerated by the financial benefits and reduced development times promised by Platforms-as-a-Service (PaaS) and serverless deployments. The benefits are faster development cycles, development team independence (because scope is limited and well defined), ease of deployment, management, scaling and governance. Microservices, and FaaS are the building blocks of modern, highly dynamic distributed systems. We can see this trend in many large international companies, like LinkedIn, Netflix, Uber, Ebay, Amazon, among many others, but the same trend can be found in important national companies as well.

On the downside, companies face increasing visibility challenges into the health and performance of their systems, as cloud and micro-service architectures become more complex and dynamic, with more changing parts. The complexity moves from the components to their interaction, and their emergent behaviors. Since developers and operators lack a complete view of the system, the result is impaired observability, which turns debugging and monitoring into a challenge that keeps getting harder, as systems grow larger with additional components and version iterations. In large-scale systems, it is particularly difficult to determine the set of microservices responsible for delaying a client’s request. While all services involved in such request might seem to be working properly, their sequence is more likely to produce slow requests. Cascading effects, where one module impacts several other invoking microservices are also possible. Components cannot be analyzed in isolation, and system operators lack an overall view of the system, to determine the bottlenecks and trace their root causes.

At the present time, the market is still missing a good open-source tool providing a visual display of all the architecture to system administrators, while letting them navigate through the components and check accessory information, like performance, health state, neighboring information and so on. To mitigate this problem, we have been working on an interactive visualization tool to provide an overall view of microservice architectures. This tool should advance the state of the art in monitoring, by providing a broad range of statistical and visual insights on the system, including of its architecture and existing workflows.

Objetivo

In this internship the student should develop a visualization tool for microservice applications. This work should build on a previously existing set of requirements. The visualization tool should fetch data from a generic format and provide an overall view of the existing services, instances and workflows. It should allow system owners to inspect each one of these services, by zooming in and out from parts of the system, showing response distribution times of the services, enabling observation of the instances that comprise each service, providing hints regarding the importance of each interaction, among other features. The ultimate goal is to enhance the observability of the system, to improve knowledge of the system itself.

Plano de Trabalhos - Semestre 1

- Evaluate the state of the art (1 month);
- Assess the current requirements (1 month);
- Define system architecture (1 months);
- Start implementation (1 month)
- Write intermediate report (1 month);

Plano de Trabalhos - Semestre 2

- Continue implementation (4 months);
- Test and evaluate performance (1 months);
- Write final report (1 month);

Condições

- The work should take place at the Centre for Informatics and Systems of the University of Coimbra (CISUC) in the Software and Systems Engineering Group at the Department of Informatics Engineering of the University of Coimbra.

Orientador

Filipe Araujo / Prof. Raul Barbosa
filipius@uc.pt 📩