A hands-on, practitioner-focused guide to the full DevOps lifecycle β from Linux foundations and networking, to containers, CI/CD, cloud infrastructure, observability, and security.
π Read the companion article on Medium
- About
- Repository Structure
- Topics Covered
- Getting Started
- Tools & Technologies
- Roadmap
- Contributing
- License
DevOps Guide is a practical, community-driven repository that maps the full DevOps engineering path. Content is organized into focused topic folders β each with real configurations, working Dockerfiles, architecture diagrams, and annotated examples you can actually run.
The scope goes beyond the usual CI/CD-and-Docker tutorials: it covers Linux, networking, server management, programming languages used in DevOps, cloud providers, certification prep, and real-world case studies.
β οΈ Work in progress β the repository is actively evolving. Some topics have more depth than others. Stars, issues, and pull requests are all welcome.
devops-guide/
βββ architecture/ # System design diagrams and reference architectures
βββ images/ # Assets used across documentation
βββ topics/ # Core content β one folder per DevOps domain
β βββ case-studies/ # Real-world scenarios and post-mortems
β βββ certification/ # Study guides for DevOps certifications (CKA, AWS, etc.)
β βββ ci-cd/ # Pipelines: GitHub Actions, Jenkins, GitLab CI/CD
β βββ cloud/ # AWS, Azure, GCP β provisioning, IAM, networking
β βββ containers/ # Docker β images, Compose, multi-stage builds
β βββ devsecops/ # Security-first DevOps: scanning, policies, SAST/DAST
β βββ infrastructure/ # IaC: Terraform, Ansible, CloudFormation
β βββ language/ # DevOps scripting: Python, Go, Bash
β βββ linux/ # Linux administration, shell, system internals
β βββ monitoring/ # Prometheus, Grafana, Zipkin, alerting, tracing
β βββ networking/ # DNS, TCP/IP, load balancing, proxies, firewalls
β βββ orchestration/ # Kubernetes, Helm, cluster management
β βββ security/ # Hardening, secrets management, CVE handling
β βββ server-management/ # Configuration, services, SSH, user management
β βββ tools/ # Productivity tools: make, jq, curl, yq, etc.
β βββ version-control/ # Git workflows, branching strategies, hooks
βββ .gitignore
βββ LICENSE
βββ README.md
The foundation of every DevOps environment. Covers the filesystem hierarchy, process management, shell scripting, permissions, cron jobs, and system internals that every engineer should know.
Essential networking concepts for infrastructure work β TCP/IP, DNS resolution, HTTP/HTTPS, load balancing, reverse proxies (Nginx, HAProxy), firewalls, and VPNs.
Day-to-day server operations: SSH hardening, user and permission management, service management with systemd, package management, and configuration best practices.
Continuous Integration and Deployment pipelines with GitHub Actions, Jenkins, and GitLab CI/CD. Includes real pipeline files targeting containerized applications, with stages for build, test, security scan, and deploy.
Docker from basics to advanced patterns β optimized image layering, multi-stage builds, Docker Compose for local dev and test environments, and image security best practices. The repository is 100% Dockerfile-based for fully runnable examples.
Kubernetes workloads and cluster management. Covers Deployments, Services, ConfigMaps, Secrets, resource limits, health probes, RBAC, and Helm chart authoring.
Reproducible, version-controlled infrastructure using Terraform, Ansible, and AWS CloudFormation. Examples focus on idempotency, state management, and real cloud targets.
Provider-specific guides for AWS, Azure, and GCP β IAM, VPC/networking, compute, storage, managed services, and cost awareness. Covers both CLI and IaC approaches side by side.
Full observability stack: Prometheus metrics collection, Grafana dashboards, Zipkin distributed tracing, and alerting rules. Includes pre-built dashboard configs and trace analysis patterns for microservices.
Security integrated at every pipeline stage β container image scanning with Trivy, dependency auditing with Snyk, DAST with OWASP ZAP, and policy-as-code patterns.
Infrastructure and application hardening β secrets management, CVE triage workflows, TLS/PKI basics, and least-privilege access patterns.
The everyday DevOps toolbox: make, jq, yq, curl, direnv, and other utilities that make workflows faster and more reproducible.
Scripting and automation in Python, Go, Bash and JavaScript β the three most common languages in DevOps tooling and automation workflows.
Git workflows (GitFlow, trunk-based development), commit conventions, branching strategies, git hooks, and pull request best practices for both infrastructure and application teams.
Structured study material for popular DevOps certifications: CKA (Certified Kubernetes Administrator), AWS DevOps Professional, Terraform Associate, and more.
Real-world scenarios, architecture breakdowns, and post-mortems that illustrate how the tools and practices in this guide come together in production systems.
- Git
- Docker & Docker Compose (for most hands-on examples)
git clone https://github.com/JawherKl/devops-guide.git
cd devops-guide# Example: start with Linux foundations
cd topics/linux
# Example: run a container example
cd topics/containers
# Example: explore a CI/CD pipeline
cd topics/ci-cdEach topic folder contains its own README.md with context, prerequisites, and step-by-step instructions.
| Category | Tools |
|---|---|
| CI/CD | GitHub Actions, Jenkins, GitLab CI/CD, CircleCI |
| Containers | Docker, Docker Compose |
| Orchestration | Kubernetes, Helm |
| Infrastructure (IaC) | Terraform, Ansible, AWS CloudFormation |
| Cloud | AWS, Azure, Google Cloud |
| Monitoring & Tracing | Prometheus, Grafana, Zipkin |
| Logging | ELK Stack (Elasticsearch, Logstash, Kibana), Graylog |
| Security | Trivy, Snyk, OWASP ZAP |
| Messaging & Caching | Kafka, Redis |
| Deployment & Management | ArgoCD, Portainer |
| Languages | Python, Go, Bash |
| Version Control | Git, GitHub |
- Repository structure and organization
- Containers β Docker, Compose, multi-stage builds
- CI/CD β GitHub Actions, Jenkins, GitLab
- Orchestration β Kubernetes, Helm
- Infrastructure as Code β Terraform, Ansible
- Monitoring & Tracing β Prometheus, Grafana, Zipkin
- DevSecOps β Trivy, Snyk, OWASP ZAP
- Version Control β Git workflows and strategies
- Linux β complete coverage of administration and internals
- Networking β DNS, TCP/IP, proxies, firewalls
- Cloud β deep dives for AWS, Azure, GCP
- Language β Python, Go, Bash scripting guides
- Server Management β SSH, systemd, user management
- Tools β jq, make, yq, and daily-use utilities
- Security β hardening, secrets management, CVE workflows
- Certification study packs β CKA, AWS DevOps Pro, Terraform Associate
- Case studies β real-world architecture and post-mortems
- GitOps β ArgoCD / Flux
- Service mesh β Istio / Linkerd
- CONTRIBUTING.md and issue templates
All contributions are welcome β new examples, fixes, additional topics, or improved explanations.
# 1. Fork the repository and clone locally
git clone https://github.com/JawherKl/devops-guide.git
# 2. Create a branch scoped to the topic you're working on
git checkout -b feat/linux-process-management
# 3. Add your content and commit with a descriptive message
git commit -m "feat(linux): add process management and signals guide"
# 4. Push and open a Pull Request
git push origin feat/linux-process-managementPlease keep examples runnable, include a brief explanation of what each configuration does, and test locally before submitting.
Found an issue? Have a topic request? Open an issue or start a conversation in the Discussions tab.
This repository is licensed under the MIT License.
