Overview β’ Features β’ Quick Start β’ Detailed Setup β’ Tools Integrated β’ Contributing
Welcome to the DevOps-All-In-One-Playground - your comprehensive hands-on laboratory for mastering modern DevOps practices! This playground is designed to provide a rich learning environment for both beginners and seasoned professionals, offering a full-stack application setup with integrated DevOps tools.
This repository is a one-stop resource for DevOps engineers, featuring:
- A complete sample application stack using Python for the backend and React for the frontend.
- Pre-configured environments for essential DevOps tools.
- Comprehensive monitoring and observability setup.
- Real-world deployment scenarios and examples.
- Backend: Python/Flask REST API with PostgreSQL
- Frontend: React-based user interface
- Database: PostgreSQL with initial schema and migrations
- Containerization: Docker with multi-stage builds
- Orchestration: Kubernetes configurations for scalable deployments
- CI/CD: Jenkins, GitHub Actions, and GitLab CI for automated pipelines
- GitOps: ArgoCD for managing Kubernetes resources
- Infrastructure as Code: Terraform for provisioning cloud resources
- Configuration Management: Ansible for automating application setup and configuration
- Metrics: Prometheus for collecting and querying metrics
- Visualization: Grafana dashboards for data visualization
- Tracing: OpenTelemetry with Jaeger for distributed tracing
- Logging: ELK Stack integration for centralized logging
- Docker & Docker Compose
- Git
- Kubernetes cluster (optional)
- AWS account (optional)
- Python environment
- Ansible installed
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Grafana: http://localhost:3001
- Prometheus: http://localhost:9090
DevOps-All-In-One-Playground/
βββ sample-app/ # Sample application
β βββ backend/ # Python/Flask backend
β β βββ app.py # Main application file
β β βββ requirements.txt # Python dependencies
β β βββ Dockerfile # Dockerfile for backend
β β βββ tests/ # Unit tests for backend
β β β βββ test_app.py # Example test file
β β βββ README.md # Documentation for backend
β βββ frontend/ # React frontend
β β βββ src/ # Source files
β β βββ public/ # Public assets
β β βββ package.json # Node.js dependencies
β β βββ Dockerfile # Dockerfile for frontend
β β βββ README.md # Documentation for frontend
β βββ database/ # Database setup
β β βββ schema.sql # SQL schema
β β βββ Dockerfile # Dockerfile for database
β β βββ README.md # Documentation for database
β βββ README.md # Overall app documentation
βββ docker/ # Docker configurations
β βββ docker-compose.yml # Docker Compose file
β βββ .env # Environment variables
β βββ README.md # Docker setup instructions
βββ kubernetes/ # Kubernetes manifests
β βββ deployment.yaml # Deployment configuration
β βββ service.yaml # Service configuration
β βββ ingress.yaml # Ingress configuration
β βββ configmap.yaml # ConfigMap for environment variables
β βββ README.md # Kubernetes setup instructions
βββ terraform/ # Terraform configurations
β βββ main.tf # Main Terraform file
β βββ variables.tf # Variables for Terraform
β βββ outputs.tf # Outputs for Terraform
β βββ README.md # Terraform setup instructions
βββ cicd/ # CI/CD configurations
β βββ Jenkinsfile # Jenkins pipeline script
β βββ .github/ # GitHub Actions workflows
β β βββ workflows/
β β βββ ci.yml # CI workflow for GitHub Actions
β βββ README.md # CI/CD setup instructions
βββ argocd/ # ArgoCD setup
β βββ applications/ # ArgoCD application definitions
β β βββ quiz-platform.yaml # ArgoCD app for quiz platform
β βββ projects/ # ArgoCD project definitions
β β βββ devops-project.yaml # ArgoCD project definition
β βββ README.md # ArgoCD setup instructions
βββ observability/ # Monitoring tools
β βββ prometheus/ # Prometheus configuration
β βββ grafana/ # Grafana configuration
β βββ opentelemetry/ # OpenTelemetry collector
β βββ jaeger/ # Jaeger tracing setup
β βββ README.md # Observability setup instructions
βββ docs/ # Documentation
β βββ INSTALL.md # Installation instructions
β βββ USAGE.md # Usage instructions
β βββ CONTRIBUTING.md # Contribution guidelines
β βββ README.md # General repo documentation
βββ LICENSE # MIT License
- Python: Backend development
- Docker & Docker Compose: Containerization
- Kubernetes: Orchestration
- Helm Charts: Kubernetes package management
- ArgoCD: GitOps continuous delivery
- Terraform: Infrastructure as Code
- Ansible: Configuration management
- Jenkins: Continuous integration
- GitHub Actions: Workflow automation
- GitLab CI: CI/CD pipelines
- Prometheus: Metrics collection
- Grafana: Data visualization
- OpenTelemetry & Jaeger: Distributed tracing
- ELK Stack: Logging
- Deploy the sample application
- Monitor basic metrics
- Implement simple CI/CD pipeline
- Kubernetes deployment
- Monitoring and alerting
- Distributed tracing
- GitOps with ArgoCD
- Infrastructure as Code
- Custom metrics and SLOs
bash
Deploy monitoring stack kubectl apply -f observability/
Access Grafana kubectl port-forward svc/grafana 3000:3000
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Need help? Check out:
Made with β€οΈ for the DevOps community