Summary.Created a Database as a Service for
the RideShare Application utilizing the
Amazon Web Services EC2 instance. I created the
RideShare Application, which was hosted on Amazon EC2
instance and an SQLite Database was used to store data.
The application provided services to create a user, ride,
add cab sharers to the ride, cancel a ride, delete a user.
The user and rides functionalities were hosted as
microservices on separate containers with a load balancer
- NGINX. High availability and
Fault-Tolerant Database as a Service was then
created for this RideShare application. I implemented a
custom database orchestrator engine that performed
database read and write. RabbitMQ (Advanced Message
Queueing Protocol) was used as the Message Broker.
Round Robin Load Balancing was implemented in the
master-slave configuration, using NGINX.
Zookeeper was used as the
cluster coordinating service, keeping a watch on
all the nodes for faults. Automatic scaling was
implemented, where if the number of requests increased,
more workers were spawned, and workers were killed after a
preset time if the requests decreased.
Fault tolerance was implemented for workers and
master if the master failed, a custom developed
re-election was held based on priority and if a
worker failed, another worker was spawned only if the
failure did not take place due to scaling down. High
availability was introduced into the application through
zookeeper. The whole application was launched and managed
on the instance in the form of docker containers.
Technology used. Python, RabbitMQ, Zookeeper, Docker
Containers, AWS EC2, NGINX, Amazon Elastic Load Balancer.