Propostas atribuidas

DEI - FCTUC
Gerado a 2024-05-11 20:28:47 (Europe/Lisbon).
Voltar

Titulo Estágio

A microservices application digital twin

Áreas de especialidade

Engenharia de Software

Local do Estágio

Departamento de Engenharia Informática, Polo II - Pinhal de Marrocos 3030-290 Coimbra

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 in 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 requests might seem to be working properly, their sequence is more likely to produce slow responses. Cascading effects, where one module impacts several other invoking microservices are also possible. Components cannot be analyzed in isolation, and operators lack an overall view of the system, to determine the bottlenecks and trace their root causes.

Therefore, observing microservices is a challenging task requiring considerable research. One of the problems for academia, at the present time, is the lack of microservice applications that researchers can use to evaluate their tools and algorithms. Running these applications can be difficult, time consuming, and expensive. Furthermore, installing appropriate monitoring tools to collect data from such applications is also challenging. This creates a large chasm between theory and practice, as only a handful of research or industrial teams do have the means to cover the entire set of operations from creating and deploying the application, configuring monitoring tools, collecting operational data, and elaborate on monitoring and control algorithms.

To overcome this separation, we propose to create a digital twin of a microservice application, to let practitioners more easily try their own approaches to monitoring, scaling, and, in general, optimize their applications.

Objetivo

In this internship, the student should deploy an application for microservices, e.g., Instana Robot Shop, Train Ticket, or DeathStarBench from Cornell. Based on this installation, the student should represent this application using a simulator that approximates the behavior of the different microservices and of the whole set. The result should enable researchers to test the digital twin, collect monitoring data from as many points as possible, program control algorithms for auto-scaling for example, submit the system to load, and perform other operations that would take a great deal of effort in the real system.

Plano de Trabalhos - Semestre 1

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

Plano de Trabalhos - Semestre 2

- Develop the simulation model (1 month).
- Implement the digital twin (1 month).
- Test and evaluate model fidelity (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 Araujo e Fernando Barros
filipius@dei.uc.pt 📩