Tech mahindra
Tech mahindra

Migrating Monolithic applications into Microservices architecture on AWS

Posted by: Kautham Dhanasekaran On September 12, 2019 02:29 PM facebook linked in twitter

Tech Mahindra has executed a cloud migration engagement successfully for a Europe based Telecom provider. This blog post talks about how we created a cloud-native architecture to migrate legacy CIM (Customer Information Management) platform from monolithic to Microservices for flexibility and scalability. The customer was hosting its CIM platform in an on-premises DC.

They had the following challenges:

• Large, monolithic application with reliability and performance issues.

• Increased blast radius due to the tightly coupled architecture, where an issue in one component could take down the entire system.

• Dependency on costly, third-party licensed applications.

• More downtime due to the increase in maintenance cycles.

• Tedious manual deployments for new-feature releases.

Tech Mahindra Solution Overview

Tech Mahindra suggested using this migration opportunity to rebuild the application in a cloud-native architecture. It was also an opportunity to transform the current monolithic architecture to a loosely coupled, Microservices-based architecture.

The team decoupled the new architecture into the following Microservices:

• CIM service stores, fetches, and updates customer information.

• Customer information bridge service connects the on-premises database to CIM service, which was built on the cloud-native database Aurora PostgreSQL.

• Search indexes customer information for easier record retrieval.

• Customer identification service integrates the third-party customer identification system to verify unique, government-issued identities.

• Subscription service fetches customer subscriptions.

• Device service fetches customer device information.

Each of the application components were re-architected to a Microservices framework and containerized using AWS Fargate for Docker deployment. Tech Mahindra used AWS DMS to migrate database from on-premises Oracle to cloud-native Amazon Aurora, which helped customer to save costs on licensing.

Tech Mahindra also set up a continuous integration and continuous deployment (CI/CD) pipeline to automate the deployment process by reducing application downtime. The Microservices were containerized using a serverless model with AWS Fargate, which can run Docker containers without having to manage any servers or clusters. Amazon ECS was used for Docker container orchestration and ECR to store, manage, and deploy Docker container images.

Route 53 was configured to provide CIM application accessibility for customers and on-premises applications. After getting a customer request, Route 53 routes traffic to the Application Load Balancer (ALB), which distributes the workload between multiple Fargate Docker containers. All of the application logs are captured and stored in Amazon CloudWatch for analysis and alerts.

The Application Load Balancer was configured with Fargate for high availability and performance. Fargate uses automatic scaling to achieve elasticity and scale resources in or out as the workload requires. When the load breaches the memory utilization threshold of 90 percent, horizontal scaling takes place and launches one more Docker container, attaching it to the load balancer. When the memory utilization threshold is less than 50 percent, it scales in automatically and removes the corresponding resources gracefully from the load balancer.

Database Migration

The source database was Oracle on-premises and the target database deployed on AWS was Aurora with the PostgreSQL relational database service (RDS) engine. Tech Mahindra used AWS DMS for this heterogeneous database migration, along with automation scripts for accurate and accelerated migration execution to the cloud.

After the data was migrated to Amazon Aurora PostgreSQL with AWS DMS, they used custom PL/SQL scripts to handle the schema changes. They also used Oracle’s advanced queuing to transfer the incremental data load to the target DB.

Database Migration

Customer had over 70 million records of entries in its current system that had to be moved within a short span of time. The Tech Mahindra team migrated those records to AWS through an extensive data migration approach using AWS DMS.

Value Delivered to customer:

• Greatly improved the availability and reliability of the application as the application is leveraging some of the core AWS Services such as ALB and Auto Scaling and AWS Database Service

• Successfully migrated 70+ million records of data in a span of few hours to AWS Cloud

• Business witnessed significant performance improvement as the application designed to use various native AWS services

• Automated deployment of Microservices as a Docker container in AWS Fargate

• Environments were secured using AWS best practices and recommendations incorporated with AWS WAF. Dynamic rules were updated using AWS Lambda along with IAM, AWS Config and AWS

CloudTrail

In summary, Tech Mahindra was able to overall reduce total cost of ownership (TCO), enhanced the security posture, improved the overall response time and Improved availability using AWS services.

About Author

Kautham Dhanasekaran – Cloud Architect, AWS Practice, Tech Mahindra

Kautham has more than 7 years of IT experience. He is AWS Certified Solution Architect Professional. Part of Tech Mahindra AWS Practice, he is responsible for providing AWS solutions as well as managing cloud operations. He has extensive experience in implementing CICD solutions for multiple customers using AWS cloud native services and 3rd party tool-sets.

Tags: Connected Platforms & Solutions
 
(*) symbol is mandatory field
Name:
* Email Address:

Comments

(*) symbol is mandatory field

Post a Comment

* First Name:
* Email Address:
URL:
Comments:
 
Image Code
* Enter Image Code



Contact Us

Archives

For further information please write to connect@techmahindra.com

For further information please write to connect@techmahindra.com