Enhancing Performance and Scalability of a Flutter-Based Food Ordering Application through Microservices on AWS
摘要
In the world of mobile applications, food ordering services have surged in popularity. This research addresses the performance and scalability challenges faced by a Flutter-based food ordering app. Common issues like slow performance, server downtime, payment failures, and order errors during high traffic periods necessitated a robust solution. We propose a microservices architecture hosted on Amazon Web Services (AWS), coupled with Docker containerization and Kubernetes orchestration. Each major app function (login, signup, menu, ordering, and payment) is encapsulated in distinct microservices. Deployment strategies vary across services, encompassing AWS EC2 instances with load balancing, autoscaling, and Kubernetes deployments on Elastic Kubernetes Service (EKS). This approach results in enhanced scalability, improved availability, and better resource utilization. The metrics considered for evaluation encompass response time, request throughput, error rates, CPU and memory utilization, and network latency. Evaluation metrics for the microservice-based application running on AWS ALB and EKS leverage AWS CloudWatch, allowing continuous monitoring and assessment. The food ordering application is designed to handle a dynamic workload with varying levels of user traffic, ranging from a moderate load during off-peak hours to a high influx of requests during peak times, such as lunch or dinner hours. The scalability improvements aim to enhance the application’s ability to seamlessly accommodate increased traffic, ensuring optimal performance and responsiveness.