Concepts in DevOps & Cloud, page 3
Idempotency: Safe to Retry Automation
Idempotent automation ensures an operation has the same effect whether run once or many times. This is vital for safely retrying failed CI/CD jobs or configuration scripts. The footgun: thinking it means 'no side effects'.
The Four Golden Signals of Service Monitoring
The Four Golden Signals provide a simple framework for service health: Latency, Traffic, Errors, and Saturation. Use them for top-level dashboards and alerts. The biggest footgun is ignoring saturation, the leading indicator of future latency issues.
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.

The Cloud's Shared Responsibility Model
Using the cloud means you share security duties with the provider. The split depends on the service: in IaaS, you manage the OS and up; in PaaS, just your app and data; in SaaS, mostly your data and users.
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.
Multi-cloud: Spreading Bets Across Cloud Providers
Multi-cloud is a strategy for using services from two or more cloud providers to avoid vendor lock-in. It's used to cherry-pick best-in-class services or improve resilience. The footgun is underestimating the complexity of managing disparate APIs and security.
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.
Docker Volumes: Persistent Data for Ephemeral Containers
Think of a Docker Volume as an external hard drive for your container. It persists data even after a container is removed, perfect for databases or user uploads. The footgun is confusing volumes with bind mounts, which are less portable.
FaaS: Run Code, Not Servers
FaaS lets you run code without managing servers, like renting a contractor for one task. It's ideal for event-driven actions like processing uploads or handling webhooks. The footgun is cost: for high, steady traffic, a dedicated server is often cheaper.
.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.
Pull vs. Push: How Your Metrics Get to the Collector
Push vs. Pull metrics is about who starts the conversation. In a push model (like OTLP), the app sends metrics to a collector. In a pull model (like Prometheus), the collector scrapes metrics from the app. The footgun: pull can miss short-lived jobs.
Docker Networking: How Containers Talk to Each Other
Docker gives each container its own isolated network, preventing port conflicts. Containers connect via networks, like bridge for local communication. For containers to find each other by name, you must use a user-defined bridge network; the default one…
Virtual Machine (VM): A Computer Inside a Computer
A Virtual Machine (VM) is a complete computer simulated in software, letting you run multiple isolated operating systems on a single physical machine. This is how cloud providers rent out server space.
Git Branch: A Lightweight Pointer, Not a Full Copy
A Git branch is a lightweight pointer to a commit, not a heavy copy of your code. This makes creating and switching branches nearly instant. Use them to isolate new features or bug fixes. The footgun is forgetting a branch is local until you push.
Machine Images: The Blueprint for Your Servers
A machine image is a server blueprint, packaging an OS and software into a template for launching identical virtual machines. It's used for auto-scaling and creating consistent environments.

Pull Requests: A Structured Conversation About Code
A Pull Request (PR) is a structured conversation about a proposed code change. It's used in team projects to review new features and fixes, ensuring quality and sharing knowledge. The footgun is treating PRs as a rubber-stamp approval instead of a real review.

Cardinality: The Hidden Cost of Time-Series Metrics
Cardinality is the number of unique label combinations in your metrics. High cardinality, from labels like user IDs, is the silent killer of monitoring systems like Prometheus, exploding memory and cost. The footgun is adding a label with unbounded values.
Docker Build Cache: Don't Rebuild What Hasn't Changed
Docker's build cache is like a saved game for your image layers. It skips rebuilding if instructions and files haven't changed. A common footgun is an early COPY . . command, which can invalidate the cache for all subsequent steps on every code change.
Cloud Instances: Renting Servers on Demand
Think of a cloud instance as renting a virtual computer. Instead of buying hardware, you launch a pre-configured virtual machine to run your applications, paying only for what you use. This is ideal for applications that need to scale up or down with demand.
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