Skip to content

DevOps Foundations

Docker, Kubernetes, Terraform, and CI/CD all sit on the same handful of skills. A container is a Linux process. A Service is a network address and a DNS name. A pipeline starts with a Git push. And the glue between tools is usually a script. When those foundations are solid, every tool on top becomes easier to learn and much easier to debug.

What You'll Learn

  • How to operate and troubleshoot Linux servers with confidence
  • How traffic actually moves — IP, TCP, DNS, HTTP, TLS, and load balancers
  • How Git works internally, and how teams branch, review, and recover
  • How to write Python automation that is safe to run unattended

The Tracks

Track Why it matters Start
Linux for DevOps Every server, container, and CI runner is Linux. Permissions, processes, systemd, disks, and performance are daily work. Linux
Shell Scripting Turning runbook commands into safe, repeatable scripts is the first step of automation. Shell Scripting
Networking Most production incidents involve DNS, TLS, timeouts, or a load balancer. Networking
Git and Branching Git is the interface to CI/CD and GitOps. Recovery skills prevent lost work. Git
Python Automation When a shell script outgrows itself, Python handles APIs, data, and error handling cleanly. Python

Interactive Tools

Paste real output from your own machine and get an answer, not a lecture. Each tool runs in your browser and follows the rules of the software it models.

Tool Paste or type You get
Bash argument viewer A command line and its variables The exact arguments the program receives, with warnings for empty variables, splitting, and rm -rf disasters
Permission walker namei -l and id output The path component that blocks you, why, and the smallest fix
Exit status decoder 137, 143, -9, 127… Which signal or error it was, and where to look next
Cron schedule preview A crontab line The next eight runs and the traps in the expression
CIDR planner Your VPC, VPN, and cluster ranges Overlaps, including Docker and Kubernetes defaults
Ephemeral port budget Connection rate and range How close you are to Cannot assign requested address
Certificate lifetime planner openssl x509 -dates output Days left, renewal date, and what 47-day certificates will cost
Reflog rescue git reflog output The commit to go back to after a bad reset, rebase, or deleted branch

Real Outages Behind the Basics

Steam's launcher deleted users' files with an empty variable. A leap second pinned servers at 100% CPU. Slack's DNS rollback took 24 hours because of a record it didn't control. PyTorch users installed a malicious package because of how pip picks between indexes. Real Outages Behind the Fundamentals walks through these incidents and more, each tied to a chapter and a guardrail.

What Changed in 2025 and 2026

Change Why it matters Read
Ubuntu 25.10 and 26.04 LTS use the Rust sudo-rs and uutils coreutils by default Scripts relying on rare GNU flags or output need testing Packages and Patching
systemd 258 removed cgroup v1; systemd 260 removed SysV init script support Old agents and /etc/init.d services break on upgrade systemd
OpenSSH 10.0 removed DSA and defaults to post-quantum key exchange; 10.1 warns without it Old servers trigger warnings; DSA keys stop working SSH Hardening
Bash 5.3 added ${ cmd; } command substitution without a subshell Faster scripts, but only where Bash 5.3 is installed Bash Fundamentals
Public TLS certificates are capped at 200 days, falling to 47 by 2029; Let's Encrypt ended OCSP and expiry emails Manual renewal and email-based monitoring no longer work HTTP and TLS
Python 3.15 makes UTF-8 the default encoding; Python 3.10 reached end of life open() without encoding= changes behavior on some systems Project Setup
Git's 3.0 plan: SHA-256 and main as defaults, Rust required Tooling that assumes SHA-1 hashes needs a plan How Git Works

Suggested Order

flowchart LR
  L["Linux"] --> N["Networking"]
  N --> G["Git"]
  G --> P["Python automation"]
  L --> S["Shell scripting"]
  S --> P
  P --> T["Docker, Kubernetes,<br/>Terraform, CI/CD"]
  N --> T

You don't need to finish everything before moving on. A good rule: complete Linux and Networking before the Docker course, and Git before CI/CD Pipelines.

How to Practice

  • Use a disposable Linux machine. A local VM (Multipass, UTM, VirtualBox), a WSL2 distribution, or a small cloud instance you can delete. The examples use Ubuntu 24.04 LTS and Rocky/RHEL 9 or 10; newer LTS releases behave the same for nearly everything here.
  • Break things on purpose. Fill a disk, kill a process, misconfigure DNS — then fix it with the tools each chapter teaches.
  • Write down what changed and why. Your notes become your runbooks.

Practice safely

Commands that change users, firewalls, disks, or SSH settings can lock you out or destroy data. Run them on a machine you can rebuild, and keep a second session open when editing SSH or firewall rules.

Further Reading

Next

Start with Linux for DevOps.