Third-party monolith to microservices
We have always offered Master´s Thesis opportunities to university students to support their academic and professional qualifications. There are more than 40 Master´s Theses completed for Vertex during the years. The research results are implemented in our product development to provide cutting-edge software solutions for our customers. In the “My Master´s Thesis Journey” blog series, our young professionals tell about their Master´s theses and what they have learned and accomplished during the journey.
Background
I had dreaded working on my master’s thesis for a long time. After my third year as a summer trainee at Vertex Systems Oy, it was time to finally start working on it. Vertex offered me an opportunity to make my thesis for them and I naturally took it as it gave me an opportunity to work on a very practical and interesting topic while also getting paid to do it! Even though I had dreaded the thesis for a while it ended up being an interesting and valuable experience.
At the start of the thesis process I didn’t have any idea on what the subject of the thesis could be, so I received some guidance from our CTO. He first suggested something to do with IFC models (a highly standardized CAD model file format), which sounded like an interesting subject and also potentially a very suitable topic for a thesis. The plan was originally to develop something for our CAD software, but there was also a simultaneous need to develop IFC support for our microservice system under development. I had a budding interest in web development, so we decided to change the subject to be related to the microservice platform.
Vertex had found a third-party web service that provided support for IFC and some other features that were possibly necessary for the future of the microservice platform. The thesis’ topic was decided to be something related to the service, but the exact title and content took a while to form. There was difficulty in refining the topic to be scientific enough for the university, practical for Vertex Systems Oy and of reasonable scope for a master’s thesis. After many derivations the title of the thesis ended up being “Integrating a monolithic web service into a microservice-based cloud platform”.
The problem
During the early stages of the thesis the topic was supposed to be about some specific area or feature of the third-party web service. Developing or researching anything useful for the web service required first integrating it into our microservice platform, but the integration ended up being much more complex than initially thought. Several significant issues were faced during the integration process which didn’t have any literature on how they should be solved. This integration process and the issues faced during it ended up being the main subject of the thesis.
The issues in the integration stemmed from the particular nature of the web service being integrated. The web service is a self-hosted, deployable monolith, meaning that it is a standalone web service complete with all the necessary features for it to be run without needing any external components. The monolith was also not very configurable, and all parts of the system had to be used for it to be functional. This required working around specific areas of the web service so that it could be integrated in a technically viable and user-friendly way.
Three main issues were faced during the integration process that were related to user authentication, file uploading, and the implementation and integration of the front-end. The thesis focuses on these three problems by detailing what they cause and how can they be solved or mitigated. The details about these problems are a big technical mess and way outside the scope of this blog post. The figure below shows an example of one of many technical diagrams used in the thesis to describe and solve the problems.
The future
The resulting integration of the third-party web service into our microservice platform was deemed to be a good fit for our platform, so it was decided that the implemented system will be a part of the complete product we are developing. The implementation was however done as a proof of concept to see whether the web service is a good fit, so further development is needed until the implementation is in a state suitable to be used by our customers.