Microservices allow organisations to better align their IT structure with the specifics of their activities. This is critical in today's economy, where businesses need to be ready to develop, test, integrate and deliver the applications customers require - continuously and in near real-time. Wilfried Trombini, Enterprise Architect at the Luxembourg Stock Exchange (LuxSE), explains the reasons for choosing a microservice architectural design and the benefits this model brings to the company's transformational journey.
"Today, we no longer design systems for the sole needs of the moment. IT environments must be flexible enough to anticipate future demands, adapt to rapid market changes, and offer the capacity to experiment, which was sorely lacking in old, rigid systems," says Wilfried Trombini. "The microservices approach enables us to meet these expectations and design long-lasting systems whose components can be re-used repeatedly," he acknowledges.
"Using microservices allows us to reduce time-to-market for new products, as we have a set of easily re-usable building blocks at our disposal. Therefore, when a new need arises, we just have to re-use components that already exist and only develop what is missing. This is a complete game changer," he underlines.
Transforming monoliths into agile components
"Before implementing our new transformation strategy, we were using what can be referred to as monoliths, meaning large applications that include a whole set of functionalities, along with components resulting from previous SOA-based developments," Wilfried Trombini explains. "Microservices are a means of improving application developments inherited from those two architectures."
One of the challenges of LuxSE architects was to imagine how to transition from the existing environment to the new microservice architecture. To do so, the teams broke down the company's systems to identify the scope of each component in the overall target vision. The architects drew inspiration from the Domain Driven Design concept, an effective approach to segmenting target services.
"The tactic we chose was to look at certain types of components that we call common components." The new architecture of LuxSE must indeed serve the needs of the two entities of the group, the Luxembourg Stock Exchange and Fundsquare, hence the common software elements. "As a first step, we gathered all the common components potentially useful to both companies - sufficiently low level elements to allow us to build our architecture on existing components step by step, and to use them as a foundation. As a result, we were able to enrich these common components gradually and, at a later stage, to plug business services on top of them."
Enriching the chassis
"In terms of transversality, our objective was relatively simple", says Wilfried Trombini. "It was about having a standard that could bring everyone together around the same type of microservices. We opted for a Java microservice chassis associated with the Spring Boot framework". This choice was made based on the skills of LuxSE developers, already familiar with the Java technology. Some of them had even previously experimented Spring Boot. "We also wanted to make the migration as easy as possible for developers," he adds.
"We enriched our chassis with a series of specific modules intended for common needs so that the different teams could benefit from re-using them," he continues. "This covers essential needs such as observability, data access, configuration, documentation, or communication, to name a few."
This enriched chassis is called a boilerplate by the teams at LuxSE because all the common re-usable functionalities are offered in a demo component illustrating them. One of the advantages of this boilerplate is that it includes an initialiser that enables developers to completely recreate a project by choosing certain modules among those offered according to their individual preferences. The initialiser then generates a skeleton of the application that can be started in a containerised environment in a few clicks.
Smart deployment modes
Such transformation is no trivial undertaking. "Hundreds of services are at stake, and we can’t afford to freeze our development for three years, until we are able to migrate them into the new environment," says Wilfried Trombini. Another issue was to associate these components with each other: on the one hand, those remaining in the old systems and on the other hand, the new services being deployed in the cloud. In the context of the migration of the company's IT services and given the obligation to ensure business continuity, this point gave rise to the creation of hybrid solutions, in which both types of components are assembled.
"The migration of our infrastructure to the cloud is a tremendous enabler to get the most out of our new microservices architecture," notes Wilfried Trombini. "The move to the cloud and the associated containerisation process bring us substantial gains in terms of ease of deployment, service availability, and controlled scalability. Some advanced functionalities allow us, for example, to manage several releases of an application in parallel and to switch from one to another depending on the context."
"Using smaller work units - microservices - allows us to ensure shorter delivery cycles, to confront the end users with a part of the solution sooner and to enter into a constructive dialogue with them," Wilfried Trombini summarises. This architecture also enables significant cost savings since it reduces the development effort while ensuring shorter time-to-market. With regard to LuxSE business lines, the ability to run different releases of the same functionality is important. This allows for a much more adapted and user-friendly migration.
"Microservices might not be the ultimate solution for all needs," Wilfried Trombini acknowledges, "but they are central to our information system."
By Michael Renotte