AWS Case Study_ McDonald’s Home Delivery
Here in this case study we'll focus more on :
→ About McDonald’s and Digital Acceleration.
→ McDonald’s Home Delivery Platform: Business Problem and Architecture.
→ How McDonald’s uses the ECS Service of AWS for Scale, Speed, Security, DevOps and Monitoring in their Home Delivery Platform.
Interesting facts about McDonald’s is that they have 37,000 restaurants spread across 120 countries globally and they proudly serve about 64 million customers every day.
As we know scalability is a difficult problem but scalability with a distributed network like this as well at this level of volumes in terms of scale is even a tougher problem for McDonald’s to solve.
As we go on here’s some of the velocity accelerators that McDonald’s use in their models :
→ being a digital transformation the whole premise of their digital transformation, which is to make it more convenient as well as personalized for the customers to make the whole experience personalized.
→ the second pillar is delivery, drawing on that convenience team how would they deliver the food to you when we want to have our food.
→ the third aspect is the experience of the future, this is to actually elevate the restaurant experience and modernize the restaurant experience for the customers right.
Let’s get to the home delivery solution :
→ This is where they use ECS to really scale, McDonald think of this as we as a customer going to something like uber eats and ordering McDonald’s food for delivery, so that’s kind of the business problem and use case as they work with multiple delivery partners in the world.
→ They use uber eats, and in European countries they have other partners, Asia countries they have furthermore partners.
They’ve used a generic experience flow for us to walk through,
The user experience, it starts by basically you were picking up a restaurant of to order from then you obviously browse through the menu and then you basically complete your order, build your order, basket and complete your order, at this point and the order is complete and then then the delivery Rider or driver is close to one of our restaurants the order gets released to the restaurant which we believe in making our food fresh as much as possible as well as giving it to them to the driver to be delivered to you so and so on...
that’s kind of the whole business problem that we’re going to talk about..
Some of the critical business requirements :
Basic Architecture :
Principles' that are used :
What aspects ECS will cover, We'll look below:
→ Speed to market: how they achieved that scalability and reliability .
→ What type of task placement strategies or auto scaling policies did they use .
→How they're going to meat of that security which is all about knowing how to reducing blast radius and attack vectors, they did that at the container level as well as at the service level .
→ DevOps- CI /CD: how did they integrate the DevOps pipeline that would just based out of Jenkins and then also monitoring once taken it to production how to monitor significantly, these all aspects are covered under ECS.
How ECS helps in Speed To Market :
→ 4 months : it’s not just about the four months though, it’s about also showing progress to back to the business. In this case how do they build this continuously and show progress and also had like two week dev iterations,here at this rate containers really help as you could really have your dev containers.
→ second thing is the Polygot tech stack where you’re bound to have code that’s written in different languages so in this case they have some code in .net and some code in Java, some of this might be legacy code that you need to port over right some of this might be like Java is better than .net for certain things right but you have to like do native integration from .net to Java so the beauty of something like containerization as well as ECS is now you could host it in two different containers and make the two containers talk to each other through an API, so that was also pretty big benefit to achieve speed .
→ typically we as good developers, we all write code right and then we basically do a level of performance testing, and then take this massive cycle of integration and scaling, so to hit these volumes normally takes a long time but the good news is if you containerize this and use ECS and with the correct auto scaling and task placement strategies we almost got this out of the box .
→ The DevOps integration is yes integrating with our DevOps tool chain very easily really helped us(McDonald’s) .