Page 1 of 2
At the scale of dozens or thousands of servers, the unit of concern stops being "this one server" and becomes "the fleet." A single perfectly-tuned box is irrelevant if the fleet as a whole can't absorb the loss of any individual member without customer impact.
This reframes a lot of earlier-tier practices. Health checks (hard tier) become the input to automated replacement, not just alerting a human. Configuration management (hard tier) stops being about convenience and becomes the only way two of your ten thousand servers can be trusted to behave identically. The design question shifts from "how do I fix this server" to "how do I make it not matter that this server broke" - can traffic drain off it, can it be terminated and replaced automatically, and does anything downstream even notice.
The practical consequence is that servers become disposable rather than precious. You stop SSHing in to hand-fix a misbehaving instance in production - you terminate it and let automation replace it with a known-good one, and you debug the class of problem separately, off to the side, so it doesn't recur across the fleet.
Every container - Docker, Kubernetes pods, anything - is built directly on two Linux kernel features, not on some separate "container technology." Understanding them demystifies a lot of container behavior that otherwise looks like magic.
cgroups (control groups) limit and account for resources - CPU, memory, I/O - for a group of processes. When you set MemoryMax in a systemd unit (hard tier) or a memory limit on a container, you're configuring the same underlying mechanism either way.
Namespaces give a process an isolated view of some kernel resource, so it appears to have the whole system to itself even though it's sharing a machine with others:
# a simplified illustration of what container runtimes do under the hood
unshare --pid --mount --net --uts --fork /bin/bash
# now this shell has its own process tree, mounts, network stack, and hostname -
# it can't see other processes on the host, and vice versa
The practical payoff of understanding this: "container" isn't a special kernel object, it's an ordinary Linux process with cgroup limits and namespace isolation applied - which is why ps aux on a container host shows container processes as regular processes, and why a container escape vulnerability is fundamentally a namespace or cgroup boundary being broken, not some separate container-specific security model failing.
Traditional tools like strace (hard tier) work by intercepting and pausing every system call, which is far too slow to run continuously in production. eBPF (extended Berkeley Packet Filter) solves this by letting you run small, safety-verified programs directly inside the kernel, triggered by events - a syscall, a network packet, a function call - without the overhead of stopping and inspecting each one from outside.
# example using bpftrace, a high-level eBPF scripting tool
bpftrace -e 'tracepoint:syscalls:sys_enter_open { printf("%s opened by %s\n", str(args->filename), comm); }'
This traces every file open() call system-wide, live, with production-viable overhead - something strace couldn't sustain across a whole fleet continuously. This is the technology underneath modern observability tools (Cilium for networking, Falco for security monitoring, Pixie for auto-instrumented tracing) - it lets you answer "what is actually happening across the whole system, right now" with much lower overhead than the interception-based tools of the previous tier, and without modifying the applications being observed at all.
The tradeoff is real complexity: eBPF programs run in a restricted, verified subset of C-like logic (the kernel's verifier rejects anything it can't prove will terminate safely), and writing them directly is a specialized skill. Most teams get the benefit through pre-built tools rather than authoring eBPF programs themselves - but knowing that's what's underneath explains why these tools can do what older tracing tools structurally couldn't.
Real scenario-based DevOps questions, hands-on practice, and clear explanations for every answer.