McDonald’s is the world’s largest restaurant company with 37,000 locations serving 64 million people per day.Using AWS,McDonald’s built home delivery — — — -a platform that integrates local restaurants with delivery patterns.
McDonald’s built and launched the Home Delivery platform in less than four months using a micro services architecture running on Amazon Elastic Container service , Amazon Elastic Container Registry ,Application Load Balance , Amazon Elastic Cache and Amazon Simple Queue Services ,Amazon Relational Database and Amazon Simple Storage Service.
How McDonald’s Built Home Delivery using Micro Services and Amazon Elastic Container ?????
— ->Review software development life cycle ,Why move to containers ,Setup image repository with Amazon Elastic Registry ,Deploy to Amazon Elastic Container , Log/Monitor and scale scale containers ,Automatic using CI/CD ,Deep dive McDonald’s home delivery platform.
Review Software Development life cycle
SOURCE CODE ,where developers write the code in local desktop and we also want to automate our way to actually go from a local desktop all the way to production without explicit approaches along the way and this mechanism is continuous delivery ,this enables us to reduce risk and deliver faster by providing some reliable software with short iteration ,this is where container fix well.
Benefits of container
They provide us with reproducible and consistent environment throughout the software life cycles so there will be few chances of introducing errors and containers are lightweight , increases speed in delivery
HOW TO GET STARTED……..
Source code : we want to containerize source code and we start by doing use of docker files ,they are simple text file with syntax that allows to define the environment our application is going to run.
Construction of docker file : Built a application and start with simple base image and run the application to update package cache and run it again to install Apache and use command instruction to run the application.
To build an application : To build an application with a docker file in it is typically docker image ,docker images are light in weight with executable package which includes everything we need to run our application, To get back to docker simply run docker bills locally and tag it with the bill number and the specify registry to push our image and to get stored ,In this case we use AWS Container Registry ,it is a docker container registry and has a tight integration with Amazon access management.
Amazon elastic container registry setup : It start with multiple command line interfaces and graphical user interfaces and create a repository we will get a registration URL, after we build a docker image tag that URL.
Test environment : we can run test inside/outside /black box test according to what make us validate and confirm now, build image ready to go for the production.
To deploy : Here, Amazon elastic service container comes into picture and we can spread our container across different availability zones.
AMAZON ELASTIC CONTAINER CORE CONCEPTS…..
Cluster , Container Instances ,Task Definition ,Task and Service……
CRITICAL BUSINESS REQUIREMENTS :
Speed to market ,Scalability and Reliability , Multi Country Support and Cost Sensitivity.
HOME DELIVERY ARCHITECTURE :
KEY ARCHITECTURE PRINCIPLES :
Micro services , containers and orchestration and synchronous & event based…..
New Relic agents configured to monitor the elastic container services and AWS and platform as a service components .
ELK stack configured for service logging and analytics.
MAJOR TECHNICAL CHALLENGES :
Out of memory error due to containers not having access to c group file systems to get memory limits , Solution ….incorporated a new file system to virtualization group views of /proc files .
Docker containers are not honoring the elastic container service instance routing rules , Solution…. Custom implementation of docker bridge.