Project Overview
This project is an implementation of the Cloud Resume Challenge Kubernetes Extension, where the objective is to deploy a scalable, containerized e-commerce application using Kubernetes on a public cloud provider. The challenge emphasizes hands-on experience with Kubernetes and cloud-native deployment practices.
Key Objectives
- Containerization: Package the e-commerce application and its MariaDB database into Docker containers.
- Kubernetes Deployment: Deploy the containers to a Kubernetes cluster on a cloud provider (AWS EKS, Azure AKS, or GCP GKE).
- Service Exposure: Expose the application to the internet using Kubernetes Services and LoadBalancer.
- Configuration Management: Utilize Kubernetes ConfigMaps and Secrets for managing application configurations securely.
- Scaling and Reliability: Implement Horizontal Pod Autoscalers, liveness and readiness probes, and rolling updates to ensure application reliability and scalability.
Tools & Technologies Used
Infrastructure as Code (IaC)
- Terraform: An open-source IaC tool utilized to provision and manage the AWS infrastructure, including the EKS cluster, VPC, subnets, and security groups. Terraform's declarative configuration ensures reproducibility and version control of the infrastructure setup.
Containerization and Orchestration
- Docker: Employed to containerize the e-commerce application and its dependencies, enabling consistent and portable deployments across environments.
- Kubernetes: A container orchestration platform used to automate the deployment, scaling, and management of the containerized application within the EKS cluster.
- Amazon EKS (Elastic Kubernetes Service): A managed Kubernetes service by AWS that simplifies the setup and operation of Kubernetes clusters, providing scalability and high availability for containerized applications.
Command-Line Tools
- kubectl: The Kubernetes command-line tool used to interact with the EKS cluster, manage resources, and monitor the application's health and performance.
Detailed Overview