Concepts in DevOps & Cloud
Site Reliability Engineering (SRE): Ops as a Software Problem
Site Reliability Engineering (SRE) treats operations as a software problem, using engineering to automate and scale system management. It's crucial for massive services like Google Search, ensuring availability, latency, and capacity.
VMs vs. Containers: Houses vs. Apartments
VMs are like separate houses, each with a full OS. Containers are apartments sharing the host OS kernel. VMs provide strong isolation for different OSes, while containers offer lightweight packaging for apps.
Cloud Computing: Renting Someone Else's Computer
Cloud computing is like renting a car instead of buying one. You get access to powerful computers and services over the internet, paying only for what you use, without the upfront cost of owning hardware. The footgun: "cheap to start" isn't "cheap at scale."
Build Automation: The Engine of CI/CD
Build automation is a repeatable script that turns source code into a runnable application. It's the first step in any CI/CD pipeline, compiling code and running tests. The main footgun is creating brittle scripts that only work on one developer's machine.
Toil: The Repetitive Work That Kills Engineering Velocity
Toil is manual, repetitive work that scales with your service, stealing time from real engineering. It's the operational treadmill of handling the same alerts or manually running scripts.
The 'Works on My Machine' Problem
Code runs on your laptop but fails in production because of hidden differences in environments. Docker solves this by packaging an app and its dependencies into a portable container, ensuring it runs the same everywhere.

Public Cloud: Renting, Not Owning, Your Datacenter
Public cloud is like renting computing power instead of owning a datacenter. You get on-demand access to a shared pool of resources like servers and storage, paying only for what you use. The main footgun is cost; uncontrolled usage leads to surprise bills.
Embracing Risk: Reliability Is a Budget, Not a Goal
Instead of chasing 100% uptime, SRE treats reliability as a budget. The acceptable downtime, or 'error budget,' is permission to take calculated risks like shipping features faster. The footgun is wasting resources on reliability users won't even notice.
Linux Namespaces: A Virtual Slice of the OS
Linux namespaces give a process a virtualized slice of OS resources, like its own process tree or network stack. This is the core magic behind containers, providing the illusion of a separate machine without the overhead of a full virtual machine.
Private Cloud: Cloud Computing on Your Terms
A private cloud offers cloud benefits like self-service and scalability on dedicated hardware. It's used for sensitive data or regulatory compliance. The footgun: it's not just a data center; it requires a full cloud software stack for automation.
Automated Testing: Catch Bugs Before They Ship
Automated testing is like a robot QA engineer checking every code change instantly. It's the engine of CI/CD pipelines, running tests on every commit to give developers immediate feedback on business risks.
Service Level Indicators: Measuring What Matters
An SLI is a direct measurement of your service's performance, like request latency or error rate. It's the raw data that forms the basis for reliability goals (SLOs). The main footgun is measuring system internals instead of the actual user experience.

Linux cgroups: Resource Fences for Processes
Cgroups are resource fences for processes, letting the Linux kernel enforce CPU and memory limits. Container runtimes use them to isolate containers, which is how Kubernetes enforces Pod resource limits.
Infrastructure as a Service (IaaS): Renting the Data Center
IaaS is like renting raw computing hardware—servers, storage, and networking—without owning the physical data center. It's used for workloads needing maximum control, but the footgun is you're still responsible for managing the OS and all software.
Artifact Repository: Your CI/CD's Private Library
An artifact repository is your CI/CD's private library for build outputs like packages and images. CI pipelines publish artifacts here, and deployment scripts pull from it.
Error Budgets: Balancing Reliability and Innovation
An error budget is your service's allowance for unreliability, calculated as 1 minus the SLO. It provides a data-driven signal for when to halt new feature releases and focus on stability, protecting users from repeated SLO misses.

Container Runtime: The Engine That Runs Your Containers
A container runtime is the low-level engine that executes containers. Kubernetes uses a runtime like containerd or CRI-O on each node to pull images and manage container lifecycles.
Platform as a Service (PaaS): Focus on Code, Not Infrastructure
PaaS is like a managed workshop for your code; you just bring your application, and the platform handles the servers, OS, and runtime. It's used to quickly deploy web apps without managing infrastructure. The footgun is inflexibility and vendor lock-in.
Infrastructure as Code: Manage Servers with Code, Not Clicks
Infrastructure as Code (IaC) treats servers and networks like software: defined in files and versioned in Git. It's used to automate cloud resource provisioning on AWS or GCP, ensuring consistent, repeatable environments.
OCI: The USB-C of Containers
OCI is the USB-C of containers: open standards that let any compliant runtime execute any image. It prevents vendor lock-in by decoupling image format from runtime. The footgun is treating "Docker image" as proprietary rather than an OCI-compliant bundle.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles