Easy 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.
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.
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.
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.
SaaS: Renting Software Instead of Owning It
Think of SaaS as renting software. You pay a subscription to use an app online, and the provider handles all maintenance. This model offers scalability and cost-effectiveness, but the footgun is forgetting you don't own the software or control the update…
Code Instrumentation: Making Your App Observable
Instrumentation is like adding a flight recorder to your app, emitting telemetry about its internal state. It's how you generate traces, metrics, and logs for observability tools. The main footgun is over-instrumenting, creating noisy and expensive data.

Health Checks: Is Your Service Alive or Just Running?
A health check answers 'Can you do your job?', not just 'Are you running?'. Load balancers and orchestrators use this API endpoint to stop routing traffic to sick instances.
Container Lifecycle: From Create to Remove
A container is a state machine: created, running, paused, stopped, and removed. You manage this with commands like docker run, while orchestrators automate it. The footgun: stop doesn't delete a container; you must rm it to free up disk space.
The Dockerfile: A Recipe for Your Container
A Dockerfile is a text-based recipe for building a Docker image, specifying the OS, code, and dependencies. You use it to create consistent, portable application environments.
Distributed Version Control (DVCS): Everyone Gets a Copy
A DVCS gives every developer a full, independent copy of the repository, history and all. This is Git's model, making commits and branches instant because they're local. The footgun: your local copy isn't the team's truth until you push and pull to sync.
Docker Image Tagging: Versioning for Containers
A Docker tag is a human-readable label for a specific image version, like ubuntu:22.04. You use tags to pull specific base images or version your own builds. The biggest footgun is relying on the latest tag, which is just a convention.
Git Commit: A Snapshot, Not a Diff
A Git commit is a permanent snapshot of your entire project, not just the changes. It's a save point containing the full state of all files, linked to the previous commit to form a historical chain.
.gitignore: Telling Git What to Ignore
A .gitignore file is a deny-list for your repository, telling Git which files and directories to intentionally leave untracked. Use it to keep build artifacts, log files, and local configs out of your commit history.
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