Mocking microservice architectures through message sequence models

Abstract

Microservice Architecture (MSA) is a modern architectural style of building software applications where a single application gets broken down into a suite of granular services called a microservice. Individually microservice is designed to have a single responsibility within a defined bounded context. As a result of this fine decomposition based on bounded context, a need for intercommunication and cooperation between other microservices materialises to realise complex functionalities. Enterprise applications can consist of hundreds of microservices distributed across multiple data centres. The communication network between microservices can become extraordinarily complex in such distributed applications. Consequently, designing and developing such complex distributed applications or migrating existing monolithic architectural style applications to MSA is a challenging task where inaccurate designs can give rise to severe performance issues and lead to the accumulation of technical debt for the future. To avoid this, it is common in industries to test and create prototypes to provide proof of concept before adopting or implementing any major architectural changes. In such situations, the ability to model and mock MSA systems with the specific desired changes can help observe their behaviour in real-time, identify design issues and mitigate risks at earlier stages of software development/migration lifecycles. In order to facilitate such novel use cases, in this thesis, we explore the idea of mocking MSAs by relying on message sequence models, which we use to model inter-service communications between microservices for functional requirements of MSAs. As part of this, we propose a metamodel to capture microservices data with associated communication to model MSAs. We also develop a prototype that transforms concrete instance models of our metamodel into mocked-up microservices. Lastly, we present an approach to build, compose and deploy observable polyglot microservice applications in an automated way to mock MSAs.

Resources

Project information

Status:

Finished

Thesis for degree:

Master

Student:

Pavan Nadkarni

Supervisor:
Id:

2023-004