Atribuidos 2022 2023

DEI - FCTUC
Gerado a 2024-05-19 15:41:30 (Europe/Lisbon).
Voltar

Titulo Estágio

A microservices application for research purposes

Áreas de especialidade

Engenharia de Software

Local do Estágio

DEI

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.

As a consequence, observing microservices is a challenging task requiring considerable research. One of the problems for the academia, at the present time, is the lack of microservice applications that researchers can use to evaluate their tools and algorithms. Although some applications exist, like Instana Robot Shop, Train Ticket or DeathStarBench from Cornell, they have limitations, by either being too small or too big, or by not having tracing properly done.

Objetivo

In this internship, the student should develop an application for microservices. In the group we have developed a small shop application that is based on the microservices paradigm and that needs to evolve to include a reasonable number of microservices in different programming languages. They should be properly logged and instrumented, to cope with the research requirements. Also, communication between the different microservices should explore different patterns, like synchronous and asynchronous communication.

Once the application is ready, it is a goal of the work to produce data and make monitoring data available for the research community.

Plano de Trabalhos - Semestre 1

- Get to know the currently existing application. (1 month)
- Evaluate the state of the art and define the application (1 month).
- Define system requirements and architecture (1 month).
- Develop the microservices (1 months).
- Write intermediate report (1 month).

Plano de Trabalhos - Semestre 2

- Implement the application (2 months).
- Test and evaluate system performance, user testing (1 month).
- Collect and make data available (1 month).
- 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 Araújo and Jorge Cardoso (Huawei/UC)
filipius@uc.pt 📩