Three-Tier Web Application Deployment on AWS EKS using AWS EKS, ArgoCD, Prometheus, Grafana, and Jenkins
Welcome to the Three-Tier Web Application Deployment project! 🚀
This repository hosts the implementation of a Three-Tier Web App using ReactJS, NodeJS, and MongoDB, deployed on AWS EKS. The project covers a wide range of tools and practices for a robust and scalable DevOps setup.
- Application Code
- Jenkins Pipeline Code
- Jenkins Server Terraform
- Kubernetes Manifests Files
- Project Details
The Application-Code
directory contains the source code for the Three-Tier Web Application. Dive into this directory to explore the frontend and backend implementations.
In the Jenkins-Pipeline-Code
directory, you'll find Jenkins pipeline scripts. These scripts automate the CI/CD process, ensuring smooth integration and deployment of your application.
Explore the Jenkins-Server-TF
directory to find Terraform scripts for setting up the Jenkins Server on AWS. These scripts simplify the infrastructure provisioning process.
The Kubernetes-Manifests-Files
directory holds Kubernetes manifests for deploying your application on AWS EKS. Understand and customize these files to suit your project needs.
🛠️ Tools Explored:
- Terraform & AWS CLI for AWS infrastructure
- Jenkins, Sonarqube, Terraform, Kubectl, and more for CI/CD setup
- Helm, Prometheus, and Grafana for Monitoring
- ArgoCD for GitOps practices
🚢 High-Level Overview:
- IAM User setup & Terraform magic on AWS
- Jenkins deployment with AWS integration
- EKS Cluster creation & Load Balancer configuration
- Private ECR repositories for secure image management
- Helm charts for efficient monitoring setup
- GitOps with ArgoCD - the cherry on top!
📈 The journey covered everything from setting up tools to deploying a Three-Tier app, ensuring data persistence, and implementing CI/CD pipelines.
To get started with this project, refer to our comprehensive guide that walks you through IAM user setup, infrastructure provisioning, CI/CD pipeline configuration, EKS cluster creation, and more.
We welcome contributions! If you have ideas for enhancements or find any issues, please open a pull request or file an issue.
This project is licensed under the MIT License.
Happy Coding! 🚀