MODERNX expertise in cloud native micro-services architecture secure applications' superior user experience
An application is a complete system, linking hardware, software and user experience linking everything together to deliver value. It is composed of different services, visible to the end user (user interface) and invisible (such as databases, storage, etc) all connected together to deliver an outcome to the end user. With the rise of internet, users can scale in time and space. That is the reason why we opt to design application natively in the cloud to allow auto-scaling when and where required. In order, to control services performance and secure a quality service any time, anywhere, modern applications are designed in micro-services architecture enabling easy updates of services and an optimum resources management.
Design of real-time content delivery application on AWS
When we started working with this client, the initial design of its application presented several challenges:
- Initial application design is using a unique full code structure (monolithic)
- Difficulty to maintain the code and create new features
- Poor real-data processing capabilities
- Weak security and orchestration features
MODERNX solution approach
The idea was to assess the current applications and understood the long-term objectives of the delivery platform. Our recommendation was to migrate the application from a monolithic to a micro-services architecture. As the Initial code uses Spring Boot thus, we suggested to move towards a Spring Cloud OSS based micro-services architecture design.
Conscious of the impact of migrating to a micro-services architecture on the existing team that was actually developing the application, we introduced a new programming paradigm to facilitate the knowledge transfer. That is “Pair-programming”, which consists of sitting together with the client development team and actually mentor the team to the new micro-services concept and related development frameworks such as CI/CD and DevOps, resulting in restructuring the client teams to become cross function (DevOPS).
Besides, we introduced the “Test-Driven Development” concept: Use registration, discovery, config, security and other support services as well as circuit breakers between services for fault tolerance.
Solution features and customer benefits
The target solution is fully configurable, scalable, and secure. It comes with various set of features, helping the application to offer real-time recommendations (scheduling, next best offer, etc):
- Review of the data store technology to opt for an Infrastructure as a Service approach using AWS to reduce cost of storage and increase the application scalability and overall performance
- Clean up and refactoring of the application front-end for a easier updates and modernization
- Introduction of machine intelligence use cases (machine learning driven application) to develop custom recommendation’s algorithms
- Structured the developers’ testing, quality and documentation approach.