You are on page 1of 2

Exercise

Design an infrastructure for a rapid growing app


You are a DevOps architect for a Food Delivery service FoodLeLo which is getting
hugely popular in your country, adding thousands of Users & Delivery partners every
day.
Current State

There is a Backend API Service that is hosted on one In-House server with 64GB
RAM & 1TB HDD right now, and running on ubuntu 16.04
Postgres is being used as the database on the same server
Few background jobs that are triggered by cron throughout the day
To reduce the load on the DB, the team is considering using some sort of
caching and search engine.
A React application, being hosted on the same server using NGINX
Everything being used in the application is on this one server
There is an Android App

Issues

As demand grows, at peak times in the day(Lunch/Dinner) the server comes
under immense load & make the application unresponsive
Creating an Order takes a long time sometimes
Logging In/Registration takes a lot of time
Huge log files make searching for issues a hassle
Images don't load sometimes
DB backup is a manual weekly task
Single point of failure
Everytime server is unresponsive, someone have to restart the server and
change C-Name to point domain to new public DNS assigned to EC2

Requirements
you need to architect a system leveraging AWS as the Cloud Platform & using their
managed services to make everyone's lives easier.

Create a modular system architecture with a clear separation of responsibilities


Keeps in mind the best security practices, i.e. Only few authorized developers
should be able to access the application servers directly
How can the infrastructure evolve so we can get a performance gain without
changing the application code?
Automated testing of the application on every release

Create an Architecture Diagram on how you will design the system for FoodLeLo for
maximum Availability, Security, Scalability & Performance. You are free to use any tool
to create architecture design, draw.io, google drawing, power point, anything of your
choice.
Notes:

You are free to use any number of AWS services you need to design the
architecture
The Infrastructure should be easy/quick to replicate. For example, the team may
want to have a pre-production environment which is running on similar
infrastructure as production. Or the team may want to create a production
equivalent environment to test every release.

You need to create an architecture diagram for the solution.


Please draw the diagram on paper/draw.io or any tool and share the link of the solution.
Feel free to make any assumptions if something is not clear but let us know about them.
It will not be considered if shared after time allocated.

You might also like