Introdcution

The Cloud-Native Web Voting Application is a modern, scalable, and secure solution that enables users to cast votes for their preferred programming language through a web interface. Leveraging Kubernetes for orchestration and management, the application ensures high availability, scalability, and efficient resource utilization.

Technical Stack:

  1. Frontend: The frontend is developed using React and JavaScript, offering a responsive and intuitive interface for users to easily participate in the voting process.
  2. Backend and API: Powered by Go (Golang), the backend serves as the API handling user voting requests. MongoDB is employed as the database backend, configured with a replica set for data redundancy and high availability.

Kubernetes Resources:

To streamline deployment and management, the project utilizes various Kubernetes resources:

  1. Namespace: Kubernetes namespaces provide isolated environments for different components, ensuring organization and separation of concerns within the application.
  2. Secrets: Kubernetes secrets securely store sensitive information, such as API keys and credentials, required by the application.
  3. Deployment : Kubernetes deployments define the number of instances of the application, offering instructions for updates and scaling, ensuring a smooth and controlled deployment process.
  4. Service : Kubernetes services facilitate user access to the application by directing incoming traffic to the appropriate instances, ensuring a seamless user experience.
  5. StatefulSet: For components requiring statefulness, such as the MongoDB replica set, Kubernetes StatefulSets are employed to maintain order and unique identities, ensuring data consistency and integrity.
  6. PersistentVolume and PersistentVolumeClaim : These Kubernetes resources efficiently manage the storage required for the application, ensuring data persistence and scalability as the application grows.