Microservices development architecture for PSS
Delivered services
- Microservices-based architecture
Technologies and platforms
- Spring Boot-Framework
- Apache Kafka
- ELK stack
- Docker
The Customer - Prvá stavebná sporiteľňa
"Prvá stavebná sporiteľňa" was founded in 1992 as the first specialised savings bank of its kind in Central and Eastern Europe. It focuses on construction savings and since its foundation has served 2.5 million customers, concluded 5 million contracts and granted 700 thousand home loans worth € 11.4 billion. It has thus had a dominant share of the building savings market for a long time. PSS is aware that not only high-quality services but also an efficient IT infrastructure will ensure that it maintains its dominant position in the future. This was also the reason why we successfully collaborated on several projects in the field of digitalisation and IT modernisation. One of them was the development of a microservices architecture.
The Issue
Given the trends towards IT modernisation and digital transformation, PSS decided to move to a new infrastructure platform (a containerisation platform that we also provided) based on Docker technology. However, the existing software services were based on old technologies, were highly interconnected and integrated via a common database. As a result, they could not take full advantage of the new platform's capabilities, especially in terms of scalability and independent deployment. At the same time, major extensions to the core banking system were planned for the future, but these would be difficult to integrate into the existing architecture.
Migration Process and Strategy
The ideal solution to this problem was to move to a microservices architecture. This type of architecture (as opposed to the 'traditional' monolithic architecture) uses an approach where a single application is made up of many loosely coupled and independently non-additive smaller components or services. This approach has a number of advantages, such as fast and inexpensive upgrades, easier and cheaper scaling of certain parts of the application without affecting the rest, and so on. To ensure optimal functionality of the chosen solution, we decided to implement a new generation of REST services built on the Spring Boot framework. Thanks to containerisation, services can also have their own NoSQL database instances, which helps reduce their interdependencies. In addition to the REST interface, the services also use asynchronous communication via the Apache Kafka platform.
We used the ELK stack to manage the logs. Logging is asynchronous and it is possible to perform analysis and visualisation over the logs.
Results and benefits
The result is a scalable and maintainable platform based on modern technologies. The architecture we designed has proven itself in practice and, with a few exceptions, all services have been comprehensively migrated. New services are already being developed for the new platform alone, including outsourcing. Asynchronous communication helps to loosen dependencies between services, speed up development and, above all, simplify the integration of new components. The solution has also ensured that new components are deployed without downtime, which greatly simplifies the entire deployment process. Services are run in multiple instances, which also increases resilience while allowing the capacity of the solution to adapt to increased demand (e.g. migrations).
- Accelerated development of new services and integration of new components;
- increased resilience;
- reduced interdependence of services;
- scalability.