It is very common to have doubts about how should we architect an application that needs to be scaled. These questions appear and I find very complicated to find resources that can exemplify that in an easy way.
This project is intended to be a boilerplate or a microservices hello world for those who are not very familiar with devops and with deploying and scaling applications.
For that purpose, this project simulates a delivery system that has three microservices:
- Frontend service Will display a table with all the orders and its status.
- Consumer service
Will ask to the
delivery_service
to retrieve the next delivery to be processed. It's important to mention that we want to simulate a lot of consumers asking to a singledelivery_service
for orders, that's why this service will be scaled in a docker swarm. - Delivery service
Will retrieve the next delivery to the
consumer_service
.
- In your terminal, go to the root of the project
- Execute in a unix terminal
make build
- Execute in a unix terminal
make run
That will build and run the containers locally so you can access and run them.
In order to run and scale the application, run the following commands: