The client is one of the Big 4 consulting firms that provide professional services like strategy, digital, technology, operations and outsourcing for businesses, government organizations, and institutions worldwide. The client intended to transform the legacy on-premises monolithic application as its developers faced significant delays in their ability to make changes. The client wanted to transform its architecture and adopt microservices-based architecture to enable faster time to market and reduce the turnaround time for each release in order to meet the delivery timelines.
Client: Professional Services
Services: Microservices
Year: 2022
Contents
Key Challenges
- The client faced challenges with monolith architecture that caused the server to hang and did not allow scaling up to handle heavy traffic
- As the client’s application grew large and complex, it was challenging to maintain and make changes fast and correctly
- Single codebase and tightly coupled architecture increased complexity and limited flexibility and reusability
- The client wanted to speed up their software release cycles as they were not happy with the pace at which new features were being released to production
- A Single Point of Failure (SPOF) – any bug/issue can potentially breakdown the entire application
- Furthermore, the client wanted to adopt new and advanced technologies – but any changes in languages or frameworks could potentially affect the entire application
Solution
- Sparity implemented a number of product and process improvements, including test automation, implementation of CI/CD practices at the organization-wide level, and development of deliverable strategies for the whole software development lifecycle
- Decoupled the dependencies in the monolithic system and implemented new functionality as services in the new architecture
- Deployed the new microservices Application into Amazon Elastic Kubernetes Service (EKS) and used Ingress for load balancing
- Used ELK stack for centralized, comprehensive monitoring solution
- Developed an API Gateway that acts as a single point of entry for microservices
- Utilized Couchbase DB that provides multiple levels of isolation to support multiple microservices
- Employed Kafka for asynchronous communication between microservices
- Implemented CI/CD to deploy microservices with AWS CodeBuild and CodePipeline
- Cleaned up unnecessary code from the monolithic app
- The system was monitored for performance, speed, load capacity, stability, optimization, and data normalization
- Test automation embedded in the system to ensure security and governance compliance
Benefits
- Assisted the client in reducing the overall complexity and opened the architecture for future extensibility
- Migrating to a microservice architecture enabled better testability and shortened development cycles, so releases are ready for the market faster
- Reduced the cost of development and maintenance of the application by 30%
- Eliminated any long-term commitment to a specific technology stack
- Improved fault isolation offered by individual modules – hence larger applications remain unaffected by a single failure
- As a result of the microservices architecture, cross-functional teams can now develop, test, troubleshoot, deploy, and update services independently, resulting in quicker deployment and troubleshooting turnaround times
- Improved the speed, quality, and manageability of new development by assigning specific services to individual development teams
- Better scalability – each microservice can be scaled individually depending on load and processing power requirements