Architecture of the application
This architecture will require 1 Mount Volume(for database), 2 Networks and 5 Stack services.
Steps:
Frontend network
docker network create -d overlay front_end_ntw
Backend network
docker network create -d overlay back_end_ntw
Deploying the voting frontend app docker service create --name vote -p 5000:80 --network front_end_ntw --replicas 5 dockersamples/examplevotingapp_vote:before
docker service create --name redis --network front_end_ntw --replicas 5 redis:3.2
docker service create --name worker --network front_end_ntw --network back_end_ntw dockersamples/examplevotingapp_worker:latest
Deploying postgres database docker service create --name db --network back_end_ntw --mount type=volume,source=db-data,target=/var/lib/postgresql/data postgres:9.4
docker service create --name result --network back_end_ntw -p 5001:80 dockersamples/examplevotingapp_result:before