Skip to content

DevOps-All-In-One-Playground is a comprehensive resource for DevOps engineers to master tools like Git, Jenkins, Docker, Kubernetes, ArgoCD, Terraform, and observability stacks (Prometheus, Grafana, Jaeger). Easily deploy, monitor, and practice real-world DevOps scenarios, all within an adaptable and beginner-friendly setup.

Notifications You must be signed in to change notification settings

vellankikoti/DevOps-All-In-One-Playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DevOps-All-In-One-Playground πŸš€

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.

🎯 Overview

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.

✨ Features

1. Complete Application Stack

  • Backend: Python/Flask REST API with PostgreSQL
  • Frontend: React-based user interface
  • Database: PostgreSQL with initial schema and migrations

2. DevOps Tools Integration

  • 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

3. Observability Stack

  • 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

πŸš€ Quick Start

Prerequisites

  • Docker & Docker Compose
  • Git
  • Kubernetes cluster (optional)
  • AWS account (optional)
  • Python environment
  • Ansible installed

Basic Setup

Verify Installation

πŸ“‚ Repository Structure

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

πŸ›  Tools Integrated

Development & Deployment

  • 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

CI/CD Pipelines

  • Jenkins: Continuous integration
  • GitHub Actions: Workflow automation
  • GitLab CI: CI/CD pipelines

Monitoring & Observability

  • Prometheus: Metrics collection
  • Grafana: Data visualization
  • OpenTelemetry & Jaeger: Distributed tracing
  • ELK Stack: Logging

πŸ“š Learning Paths

1. Basic Path

  • Deploy the sample application
  • Monitor basic metrics
  • Implement simple CI/CD pipeline

2. Intermediate Path

  • Kubernetes deployment
  • Monitoring and alerting
  • Distributed tracing

3. Advanced Path

  • GitOps with ArgoCD
  • Infrastructure as Code
  • Custom metrics and SLOs

πŸ”§ Detailed Setup

1. Local Development

bash

Deploy monitoring stack kubectl apply -f observability/

Access Grafana kubectl port-forward svc/grafana 3000:3000

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

How to Contribute

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™‹β€β™‚οΈ Support

Need help? Check out:

🌟 Star History

Star History Chart

πŸ“Š Project Status

GitHub stars GitHub forks GitHub issues GitHub pull requests


Made with ❀️ for the DevOps community

About

DevOps-All-In-One-Playground is a comprehensive resource for DevOps engineers to master tools like Git, Jenkins, Docker, Kubernetes, ArgoCD, Terraform, and observability stacks (Prometheus, Grafana, Jaeger). Easily deploy, monitor, and practice real-world DevOps scenarios, all within an adaptable and beginner-friendly setup.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published