As time goes by, newer and newer technologies, engineering methods appear, that bring a newer vision with them, that increases the effectiveness of engineering or the application itself. This is nowhere as true, as in the world of computing, where even annually comes a new, uprising trend, which could be called the main streamline of the future to follow – some of these work out, some do not.
Currently one of the strongest streamline of these is the microservice (or microservices) architecture, which tries to get in the place of the earlier monolithic approach, in order for the (primarily backend) applications’ developing could be done quicker and more effeciently, while also making the applications more resistant to failures due to their deployment and operating capabilities. Because of this, in the past few years, technologies like Docker, Kubernetes or OpenShift, and the DevOps and agile practices popularity has risen drastically.
The problem with this is, what should be done with the earlier, monolithic applications? These are obviously still working, and in terms of functionality are completely good – but if these need some upgrades, the DevOps practice for example could not be used with the same effeciency, or the operation could not be as simple as with the case of an application created in microservice architecture.
The objective is clear: the existing monolithic applications should be migrated to this new, microservice environment. In my thesis I will focus on this problem: first of all, what type of general description, requisites are given for such a migration, that should be done. What problems should be expected, what should we care about? After this, I will use these predefined steps on a relatively simple application, that has given to me by Alerant Zrt. and Erste Bank Zrt., I will deduce the lessons learnt from this, and prove that the new application has the same functionality (or has an even more rational functionality) as the original, and I will compare the two in terms of performance and operability.