A large e-commerce company operates a legacy order processing system that frequently experiences outages during peak sales events, leading to significant lost revenue. The system is a monolithic application running on a single, oversized on-premises server. The company wants to migrate this system to AWS to improve reliability, scalability, and reduce operational overhead, but they cannot afford a complete rewrite due to business-critical deadlines. They need a solution that allows for incremental modernization while keeping the existing system operational during the transition. Which approach should the Solutions Architect recommend?
- ARewrite the entire application from scratch as a serverless microservices architecture on AWS Lambda and Amazon DynamoDB, then switch over to the new system once complete.
- BPerform a 'lift and shift' of the entire monolithic application to a single Amazon EC2 instance, and then scale up the instance type during peak events.
- CImplement the Strangler Fig Pattern by gradually extracting microservices from the monolith and deploying them on AWS Lambda or Amazon ECS, redirecting traffic as services are migrated.
- DMigrate the monolithic application to a containerized environment using Amazon EKS, and then use Kubernetes horizontal pod autoscaling to handle peak loads.
Show answer & explanationAnswer & explanation
Correct answer: C. Implement the Strangler Fig Pattern by gradually extracting microservices from the monolith and deploying them on AWS Lambda or Amazon ECS, redirecting traffic as services are migrated.
The Strangler Fig Pattern allows for incremental modernization of a monolithic application without a complete rewrite, which aligns with the company's need to keep the existing system operational and avoid a 'big bang' migration. This approach mitigates risk and allows for continuous delivery of value.
Why the other options are wrong
- A. A complete rewrite is explicitly stated as not feasible due to business-critical deadlines. This approach is high-risk and time-consuming, contradicting the requirement for incremental modernization.
- B. A lift and shift to a single EC2 instance still retains the monolithic architecture's choke points and does not inherently improve scalability or reliability beyond the EC2 instance's capabilities, especially under peak load. Scaling up might not be fast enough or cost-effective.
- D. While containerization with Amazon EKS offers some benefits, it still treats the application as a monolith within containers initially and doesn't address the architectural deficiencies of the monolith itself. It's a re-platforming, not an incremental modernization strategy for breaking down the monolith.
Strangler Fig Pattern
A technique for incrementally transforming a monolithic application into a microservices architecture by gradually replacing specific functionalities with new services, while the old system continues to operate.
- Enables modernization without a complete rewrite.
- Reduces risk by allowing phased migration.
- Traffic redirection is key to cut over to new services.
Memory trick: Imagine a strangler fig slowly engulfing a monolithic tree, replacing it bit by bit.