Transforming the monolithic architecture of a consumer application into a cloud and microservices-oriented architecture
Paquay, Joachim
Promotor(s) : Leduc, Guy ; Rigaux, Sébastien
Date of defense : 24-Jun-2021/25-Jun-2021 • Permalink : http://hdl.handle.net/2268.2/11456
Details
Title : | Transforming the monolithic architecture of a consumer application into a cloud and microservices-oriented architecture |
Translated title : | [fr] Transformation de l'architecture monolithique d'une application grand public en une architecture orientée cloud et microservices |
Author : | Paquay, Joachim |
Date of defense : | 24-Jun-2021/25-Jun-2021 |
Advisor(s) : | Leduc, Guy
Rigaux, Sébastien |
Committee's member(s) : | Mathy, Laurent
Donnet, Benoît |
Language : | English |
Number of pages : | 86 |
Discipline(s) : | Engineering, computing & technology > Computer science |
Institution(s) : | Université de Liège, Liège, Belgique |
Degree: | Master : ingénieur civil en informatique, à finalité spécialisée en "computer systems security" |
Faculty: | Master thesis of the Faculté des Sciences appliquées |
Abstract
[en] This project consists in transforming the backend of an existing monolithic architecture of a postcard sending application into a cloud and microservices-oriented architecture.
The point of this transformation is to be able to solve the problems of the monolithic architecture when there is a lot of customers using the application.
Indeed, we want the application to be more scalable. This scalability is achieved thanks to the properties of the microservices architecturea and thanks to the cloud-oriented architecture.
The first step of this work was to analyse the existing monolithic architecture in order to determine what are the parts that needed to be scaled in priority.
After analyse, only three features were targeted because the project is too big to be totally finished within the given time. These targeted features are the feature that deals with the postcard generation (i.e. the postcard really printed and sent via the postal system), the feature that deals with the storage of the assets (i.e. the postcard generated, the images used on the postcard, etc.) and the feature that deals with the card printing (i.e. sending the generated card to the printer's server).
Even though this project consists in a transformation, the assets' storage part didn't exist at all in the initial architecture and the postcard generation part had to be rebuilt from scratch.
The second step was to understand the different needs of these features and how they should be implemented and interconnected with each other since they are now isolated in their own microservice. Since the project is too big, there is still one big block containing all the remaining features which corresponds to the monolithic block minus the features corresponding to the microservices. So the monolithic block remains as is for a big part of the application.
During the development of these features, the monolithic architecture has evolved step by step to become a microservices and cloud-oriented architecture as more and more features were isolated in their own microservice.
As the features were isolated inside their own microservices, one sub-step was to deal with the communications between the microservices. These microservices will communicate with each other in order to either send some messages or to get some information. This communication is done in a cloud-friendly way thanks to some synchronous and asynchronous protocols. They need to communicate with defined protocols since they can be deployed on different machines or in the cloud.
They will also use some cloud-oriented storage in order to deal with the assets. This cloud-oriented storage is used so that the company doesn't have to manage a storage (for instance a/some disk/s) containing the assets as it can be big and, also, to decouple the data from the services since for now these assets are stored inside a database. Furthermore, the company doesn't have to deal at all with the infrastructure regarding the assets storage.
Finally, there is a microservices and cloud-oriented architecture that contains the three microservices and the original block. These three microservices are using the cloud and are cloud-ready. Furthermore, they can communicate with each other (and with the block) in order to achieve their goal.
Even though this can be considered as a microservices architecture, the project is not finished yet since more features can be isolated in their own microservice.
File(s)
Document(s)
Description: Report
Size: 2.85 MB
Format: Adobe PDF
Description: Summary
Size: 53.43 kB
Format: Adobe PDF
Annexe(s)
Description: Ce .zip contient une très grand partie du code écrit durant ce travail. Cependant, certain fichiers de configurations ont été retirés vi à vis de la confidentialité de l'entreprise. De plus, il manque tout la partie liée au block monolithique étant donné qu'elle contenait du code de l'entreprise, elle ne voulait pas le partager.
Size: 30.53 MB
Format: Unknown
Cite this master thesis
The University of Liège does not guarantee the scientific quality of these students' works or the accuracy of all the information they contain.