Skip to content

I-am-nk/ultimate-devops-project-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,046 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

End-to-End DevOps Project on AWS with CI/CD Pipeline

This project demonstrates a comprehensive end-to-end CI/CD infrastructure for a containerized application.
It leverages Terraform for AWS infrastructure provisioning, GitHub Actions for continuous integration, and ArgoCD for GitOps-based continuous deployment on a Kubernetes cluster.


Project overview


Project Architecture

new1


1. ☁️ AWS Infrastructure (Terraform Provisioned)

  • EC2 Instance: Required for accessing EKS and AWS CLI.
  • Backend for Terraform (S3 & DynamoDB):
    Stores state files in S3 and uses DynamoDB for state locking to ensure collaboration.
  • Amazon EKS (Elastic Kubernetes Service):
    Fully managed Kubernetes cluster with auto-healing and auto-scaling features. Used to deploy our applications with continuous deployment support.
  • Amazon VPC (Virtual Private Cloud):
    Provides secure VPC with public/private subnets, route tables, and isolated networking for security.
  • Amazon Route53:
    Used for DNS and routing traffic to our domain (e.g., https://iamnkdevopseng.shop).

2. 💻 Kubernetes Environment

  • EKS Cluster: Managed Kubernetes service for deploying and managing workloads.
  • Ingress Resource: Exposes the application publicly.

3. ⚙️ GitHub Actions (CI/CD Integration)

  • Automates the build, test, Docker image creation, and manifest update process.
  • Pipeline Stages:
    1. Build → Checkout code, setup Go, install dependencies, build services, and run unit tests.
    2. Code Quality → Runs golangci-lint for linting and code quality checks.
    3. Docker → Builds and pushes Docker images to Docker Hub.
    4. Update Manifests → Updates Kubernetes manifests with new image tags and pushes them to the repo.

4. 🔁 ArgoCD (Continuous Deployment)

  • Continuously syncs Kubernetes manifests from GitHub.
  • Ensures that the application is always deployed with the latest version on EKS.

✅ Prerequisites

  • AWS account with required IAM permissions
  • Docker, AWS CLI, Terraform & Git installed locally
  • EKS Cluster (provisioned via Terraform)

📁 Project Structure

.
├── .github/               # GitHub Actions & CI configs
├── ArgoCD/                # ArgoCD set up documentation  
├── internal/              # Internal tools/scripts
├── kubernetes/            # Kubernetes manifests for all services
├── pb/                    # Protocol buffers
├── src/                   # Source code of all services
├── test/                  # Testing configs
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── docker-compose.yml
├── buildkitd.toml
├── package.json
└── other configs (.env, renovate.json5, etc.)

🧱 Project Components

🚀 Terraform (Infrastructure as Code)

Automates provisioning of:

  • VPC, subnets, internet gateway
  • EKS Cluster
  • S3 bucket & DynamoDB for state management

📄 Terraform README


🐳 Docker Compose

  • Runs the project locally with a single docker-compose.yml file.
  • Helps test the application before deploying.

📄 Docker Compose README


☸️ Kubernetes (Container Orchestration)

  • Deployments, Services, Ingress, and LoadBalancer services.
  • Service Account setup.
  • Manifests are automatically updated by GitHub Actions.

📄 Kubernetes README →


🚀 ArgoCD (GitOps Continuous Deployment)

  • Auto-syncs Kubernetes manifests from GitHub.
  • Deploys the app to the EKS cluster continuously.

📄 ArgoCD README →


🛠️ GitHub Actions (CI/CD)

Defines the pipeline with:

  • Code checkout
  • Build & push Docker images
  • Code quality checks
  • Kubernetes manifest updates

📄 Github Actions README →)


👨‍💻 Author

Nandkishor Khandare
Cloud & DevOps / SRE Engineer

📬 Contact:

LinkedIn | Email

About

End-to-End DevOps Project of E-Commerce website on AWS with CI/CD Pipeline

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors