This project focuses on deploying a two-tier application consisting of a Frontend (Python) and Backend (Redis) microservices on Kubernetes. The deployment is orchestrated using Docker for containerization and Kubernetes for management.
- Docker: Containerization of application components with images stored on Dockerhub registry.
- Terraform: Infrastructure provisioning on AWS, including secure storage of backend configuration files in an AWS S3 bucket, configured with a DynamoDB table to ensure exclusive access.
- Kubernetes: Deployment of application components, with the implementation of Horizontal Pod Autoscaler (HPA) to automatically scale the backend (Redis) based on CPU utilization.
- Containerization: Utilizing Docker to encapsulate application components, ensuring consistency and portability across environments.
- Infrastructure as Code (IaC): Leveraging Terraform to automate the provisioning of AWS resources, promoting reproducibility and scalability.
- Secure Configuration Management: Storing sensitive backend configuration files securely in an AWS S3 bucket, with access controlled via DynamoDB table to prevent concurrent modifications.
- Scalability: Implementing Horizontal Pod Autoscaler (HPA) in Kubernetes to dynamically scale the backend microservice based on CPU usage, ensuring optimal resource utilization.
The application can be accessed through the browser via the vote service, which is exposed through a load balancer.