Skip to content

# XYZ E-Commerce DevOps Project ## Overview This project sets up a scalable, observable, and fully automated e-commerce web application using the following DevOps stack: - **Terraform** for infrastructure provisioning on AWS - **Ansible** for server configuration - **GitLab CI/CD**

License

Notifications You must be signed in to change notification settings

harishgedi/Ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XYZ E-Commerce DevOps Project

Overview

This project sets up a scalable, observable, and fully automated e-commerce web application using the following DevOps stack:

  • Terraform for infrastructure provisioning on AWS
  • Ansible for server configuration
  • GitLab CI/CD for continuous integration and deployment
  • Kubernetes for container orchestration
  • Prometheus & Grafana for monitoring and alerting

Directory Structure

xyz-ecommerce/
├── terraform/                    # Infrastructure as Code (IaC)
│   ├── main.tf
│   ├── variables.tf
│   └── outputs.tf
│
├── ansible/                      # Configuration management
│   ├── playbook.yml
│   └── inventory
│
├── ci-cd/                        # GitLab CI/CD pipeline
│   └── .gitlab-ci.yml
│
├── monitoring/                   # Monitoring configuration
│   ├── prometheus.yml
│   ├── grafana_dashboard.json
│   └── alert-rules.yml
│
├── deployment/                   # Kubernetes deployment manifests
│   ├── deployment.yaml
│   ├── service.yaml
│   └── ingress.yaml
│
├── scripts/                      # Automation scripts
│   ├── setup.sh
│   └── cleanup.sh
│
├── docs/                         # Project documentation
│   ├── architecture.md
│   ├── installation.md
│   └── troubleshooting.md
│
└── README.md

Quick Start

1. Provision Infrastructure (Terraform)

cd terraform
terraform init
terraform apply -auto-approve

2. Configure Servers (Ansible)

cd ../ansible
ansible-playbook -i inventory playbook.yml

3. Deploy to Kubernetes

kubectl apply -f deployment/deployment.yaml
kubectl apply -f deployment/service.yaml
kubectl apply -f deployment/ingress.yaml

4. Set Up Monitoring

# Prometheus and Grafana deployed as part of Kubernetes manifests or Helm chart
kubectl apply -f monitoring/prometheus.yml
kubectl apply -f monitoring/alert-rules.yml

5. CI/CD Pipeline

Ensure .gitlab-ci.yml is pushed to your GitLab repo to trigger the automated pipeline on commit.

6. Clean Up

cd scripts
./cleanup.sh

ecommerce-chart

Installing/upgrading/uninstall chart

helm install my-ecommerce ./ecommerce-chart
helm upgrade my-ecommerce ./ecommerce-chart
helm uninstall my-ecommerce

---
## Configuration
Edit values.yaml to customize the deployment including image, replicas, service type, ingress, and resources.

---

### 8. Packaging and testing

```bash
# Package the chart
helm package ./ecommerce-chart

# Install in a test namespace
kubectl create namespace test-ecommerce
helm install test-release ./ecommerce-chart-1.0.0.tgz -n test-ecommerce

# Check status
kubectl get all -n test-ecommerce

# Test ingress (ensure your ingress controller is running and DNS is configured)

# Uninstall when done
helm uninstall test-release -n test-ecommerce
kubectl delete namespace test-ecommerce


## Technologies Used
- AWS (EC2, VPC, RDS, S3)
- Terraform
- Ansible
- Kubernetes (EKS or local Minikube)
- Prometheus, Grafana
- GitLab CI/CD

---

## Contributors
- Gedi Harish  
- Open to contributions!

---

## License
MIT License

About

# XYZ E-Commerce DevOps Project ## Overview This project sets up a scalable, observable, and fully automated e-commerce web application using the following DevOps stack: - **Terraform** for infrastructure provisioning on AWS - **Ansible** for server configuration - **GitLab CI/CD**

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published