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.

ClientProfessional ServicesServicesMicroservicesYear 2022

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