From monolith to microservice-based application: Arsys Use Case in DECIDE

In its role as an industrial partner and provider of use case analyses, Arsys evaluated various tools and applications for the exploitation of the framework that would be developed within the DECIDE. The opportunities offered by some corporate developments were analysed from the point of view of both business and improving the life cycle of the software. In the end, the chosen option was to use the Change Tracking Center (CTC) tool.

The main objective of CTC is to maintain the traceability of any change, intervention or development in any of the company's processes, keeping all interested parties correctly informed.

Originally, CTC was a monolithic application composed of three services (Web Interface, Database, Email Service) which were run simultaneously on a dedicated server. This model meant that the application was practically unscalable, non-replicable and intolerant of errors, and this led to no few problems in the past, seeing as the only way of improving the application's performance, when its database grew and when user demand increased, was to upgrade the server's hardware capacities as much as technically possible and, in extreme cases, to migrate the application to more powerful and modern hardware.

When we looked at the possibility of using DECIDE as an environment for the development and operations of Arsys's CTC, we were given a fantastic opportunity to modernise the architecture of our application. Having assessed the microservices into which we could divide our application, having identified the docker images which could be best adapted to each case and having slightly adjusted the development of our application so that it would start to function in this new architecture, we were ready to enter the flow of DECIDE.

The benefits offered by this new scenario are bountiful. On the one hand, the microservice-based architecture will enable us to maintain and scale each of the services independently, seeing as interactions with the other services will be unnecessary in the majority of circumstances. The level of flexibility is such that we can have the services dispersed through different areas of availability, data centers or even on-premises clouds if we need to. On the other hand, DECIDE is becoming our greatest ally when managing the application's entire life cycle, seeing as it will help us in all parts of the process - from deciding which location is the best for each of our services, to warning us of any service violations and helping us to run quick redeployments whenever necessary.