VotingApp
The VotingApp is an application mainly used for demos and follows a microservices architecture.
While this application may not adhere to all architectural best practices, it serves as a great example of an application utilizing multiple languages, various databases, and is an excellent way to learn concepts related to Docker and Kubernetes.
The VotingApp consists of 7 microservices as illustrated in the following diagram:
- vote-ui: A Vue.js frontend that allows users to choose between Cat and Dog
- vote: A backend API built with Python / Flask
- redis: A database where votes are stored
- worker: A service that retrieves votes from Redis and stores the results in a Postgres database
- db: The Postgres database where vote results are stored
- result: A backend that sends the scores to a user interface via websocket
- result-ui: An Angular frontend that displays the voting results
The container images for each microservice are available in the DockerHub. The images’ tag follow a Semantic Version (vX.Y.Z).
You can view a live version of this application at https://vote.votingapp.xyz.
Let’s now explore Kubernetes’ main resources