Team span: Currently Active
Implementation Duration: 4 months
Technology: Angular, Express Js, Node Js, MySql, MongoDB, Kong, Kafka. Single-spa
Development Manager: Fahad Nisar
Engineer: Aman Ullah, Nabeel Muhammad
vteams started working on a product as an on line integrated solution for their in house needs to manag work of various departments like HR, Operations and Software Development Department.
The application also includes a PMS (Project Management System) targeting to fulfill the needs of various teams using various different Agile Methodologies.
The goal was to bring it all under one umbrella where all different departments are linked together through this application and different combined reports can be generated for all the departments and higher management to make effective decisions.
First Iteration and limitations:
In the first iteration the application was built using MEAN stack as a monolithic application but was divided effectively in different module and components which were being lazy loaded as required to make it work for a large user base.
The application was build successfully and was deployed. But over the period of one year there were certain limitations of (Monolithic Architecture) as well continuous new requirements and changes made it difficult to manage and scale the system.
Conversion to Microservices:
There are certain limitations that come with the Monolithic Architecture.
To avoid those and also to make the product more scalable and to align it with current industry standards and practices, vteams decided to convert this Monolithic application into a new scalable solution using Micro Services Architecture at the back-end and to use Micro Front-ends on the front-end.
One of the major challenge was to do the complete analysis of the exiting systems and to initially divide them in in different independent modules. The functionality of these modules were further analyzed and were divided into independent reusable Micro Services.
Once the analysis was done, the next phase was to select the technology stack. vteams selected the following tech stack:
- Angular to be used on the front end.
- Express Js , a framework for Node Js was used to write Microservices.
- Kong was used as an API Gateway.
- Mysql / MongoDB were used as DBs for different Microservices.
- Docker was used containerize each and every service independently
- Kafka was used as a message queue to generate real time reports.
- Angular by default doesn’t support Micro-frontends so single-spa (An open source framework for front-end Microservices ) was used for Micro Front-ends.
The application was successfully built and deployed and is in use for the last year or so.
Microservices Architecture made it technology independent on the back-end. Various new services written in different languages like PHP and Python were integrated over the last one year.
The application is now more scalable. Micro front-end made it easy to deploy only the required modules to different departments.