Time: 3 weeks
Team: 1
Language: Docker, JS, Python
Docker is one of today’s most popular containerization software.
It allows the packaging of applications, and the runtime environments (down to the operating systems) they need, which in return allows them to work wherever Docker is installed.
Like the brave sailor that Popeye is, containers can also confidently sail across the vast ocean of operatingsystems and configurations, being sure of working wherever they might end. As such, containers can beused on any host OS where Docker is installed.
During this project, you are going to master the basics of containerizing applications and describing multi-containers infrastructures with Docker and Docker Compose.
You will have to containerize and define the deployment of a simple web poll application. There are five elements constituting the application:
- Poll, a Flask Python web application that gathers votes and push them into a Redis queue.
- Redis queue, which holds the votes sent by the Poll application, awaiting for them to be consumed bythe Worker.
- The Worker, a Java application which consumes the votes being in the Redis queue, and stores them intoa PostgreSQL database.
- PostgreSQL database, which (persistently) stores the votes stored by the Worker.
- Result, a Node.js web application that fetches the votes from the database and displays the result.
>> sudo docker-compose build
>> sudo docker-compose run
>> sudo docker-compose down -v
Author Corentin COUTRET-ROZET