Business imperative
As organizations continue to look for ways to increase business agility, reduce costs, and improve business resilience, accelerating the move to the cloud and modernizing their legacy apps are high on CIO agendas to help their business achieve those objectives.
Cost and risk are chief among the modernization challenges faced by organizations.
Cost: Complete refactoring of applications using microservices architectures can be a costly exercise, as companies have to pay a premium to hire staff with experience in modern software development tools, re-skill their workforce and possibly outsource to speed up development effort.
Risk: Organizations already saddled with technology debt are often fearful of venturing into full-scale modernization projects due to potential cost and schedule over runs, that could impact benefit realization and return on investment (RoI).
Current strategies
Organizations embarking on cloud migrations have a number of choices –including rehosting and/or refactoring their on-premises monolith applications. Rehosting is often the easiest, as they can quickly lift and shift their monoliths to AWS with minimal effort, resulting in quick time to value.
With rehosting onto AWS, Wipro FullStride Cloud Services has seen clients immediately start taking advantage of the benefits of the cloud – such as getting access to elastic, on-demand scalable infrastructure; high availability of applications; and migrating managed database services.
The other choice they have is to refactor their applications into modern, microservices-based, cloud native architectures and then bring them across to AWS. While this approach will drive higher agility for the organization, it will require significantly more effort resulting in longer time to value realization.
Wipro FullStride Cloud Services Framework for Application Modernization and Monolith Refactoring leveraging Strangler Pattern on AWS cloud
Wipro FullStride Cloud Services has a robust framework for Application Modernization that covers various modernization levers and initiatives. Typically, application modernization has multiple dimensions and a few of them are depicted in the figure below.
A more specific guided approach for application modernization on AWS is elaborated further below.
Modernizing Applications on AWS
An alternative approach to modernizing applications—called the strangler (or fig) pattern—is increasingly being adopted by organizations. The strangler pattern offers a cost-effective, middle-of-the-road option to incrementally modernize your monoliths once they have been rehosted on the AWS Cloud, delivering incremental value along the modernization journey.
Strangler pattern strategy
Let’s see how the strangler pattern can be put into practice to modernize a monolith.
Step 1: Rehost-application
The first step is to rehost your application using Amazon EC2 Auto Scaling Groups and Elastic Load Balancers in a multi-AZ design with a managed database service such as Amazon Relational Database Service (RDS).
Step 2: Façade with Amazon API Gateway
API Gateway can act as a proxy to your application, creating the façade and allowing you to safely rearchitect your application.
Step 3: Detect and measure hot spots
Using observability services like AWS X-Ray or Amazon CloudWatch, you can identify hotspots to help you locate potential seams or domains to decompose the monolith.
Step 4: Create AWS Lambda for top hot spot
The parallel system functionality can be built using AWS Lambda for compute and Amazon Dynamo DB for transactional databases. To migrate data from the Amazon RDS to the new DynamoDB tables, Amazon Database Migration Service can be utilized.
Step 5: Canary release
You can use API Gateway Canary release to redirect a portion of traffic to the new service to test the functionality, before cutting over fully.
Step 6: Iteratively strangulate
Repeating steps 3-5 you can identify and decompose areas of the monolith, using the appropriate services.
Step 7: ”Not with a bang but with a whimper”
When you have completely decomposed and modernized the application you can remove the monolith resources, not with a “big bang” cut-over, but quietly and without any disruption to your end-users.
Wipro FullStride Cloud Services and AWS Cases for Application Modernization
Wipro FullStride Cloud Services and AWS have assisted several customers for application modernization that has resulted in incremental business value, cost reduction and increased feature agility. Some of examples are as below:
Summary/Conclusions
For organization wanting to modernize their legacy apps but have little or no appetite for big-bang refactoring due to cost and risk considerations, iterative app modernization using the strangler pattern offers a compelling value proposition. Once functional decomposition of the monolith has been performed, use observability data to find components which have scalability requirements and offer high modernization value to the business. Apply the strangler pattern to modify these components first to showcase time savings/realized business value of iterative app modernization to stakeholders. AWS services like API Gateway and AWS Lambda are accelerators and they don’t require you to “spend to save” – no extra infrastructure is required.
Gautam Nadkarni
Chief Architect, Wipro FullStride Cloud Services, leads the Enterprise Architecture and Application Cloud Services for the APMEA region. He assists the Wipro customers in technology transformations and architecting technology solutions for business problems.
Ian Hughes
Ian Hughes is a Sr. Partner Solutions Architect at AWS based in Perth, Australia. His area of depth is in Serverless Architecture, and he works with partners in Australia to help them modernize workloads in the AWS cloud.
Senaka Ariyasinghe
Senaka Ariyasinghe is a Partner Solutions Architect at AWS based in Sydney, Australia. In his role, Senaka supports Wipro’s cloud migration and app modernization teams in the APJ region.