Concepts in DevOps & Cloud, page 20

Idempotent Event Handlers: Don't Double-Count Events
An idempotent event handler ensures processing the same event multiple times has the same effect as processing it once. This is vital in event-driven systems to prevent data corruption from redelivered messages. The footgun is assuming exactly-once delivery.
CNI: The Universal Plug for Container Networking
CNI is the standard API that decouples container runtimes from network implementations. In Kubernetes, it lets you swap networking plugins like Calico or Flannel.
Threat Modeling for Reliability: Find Failures Before They Happen
Threat modeling for reliability is like pre-gaming an outage: you systematically ask "how will this break?" before shipping code. Instead of attackers, you model failures like a database failing or a cloud region going down, then design mitigations.

Kubernetes RBAC: Roles vs. ClusterRoles
Think of Kubernetes RBAC Roles as permissions for a single room (a Namespace), while ClusterRoles grant access to the entire building (the cluster). Use Roles for namespaced apps and ClusterRoles for admin tasks.
The Fan-out Pattern: One Message, Many Receivers
The fan-out pattern uses a single message to trigger multiple parallel actions, like a press conference where one announcement reaches many reporters. Use it for events like a new user signup that triggers emails, analytics, and fraud checks.

Kubernetes Operators: SREs in a Box
Think of an Operator as an automated site reliability engineer for your app, encoding human knowledge into software. It's used to manage complex stateful applications like databases, automating tasks like backups and upgrades.
Chaos Engineering: Finding Weaknesses Before They Find You
Chaos Engineering intentionally breaks parts of your system to find weaknesses before they cause real outages. It's used to test resilience against events like server crashes or network failures.

Serverless State Machines: The Conductor for Your Functions
A serverless state machine is the conductor for your microservices, telling each function when to run and how to handle errors. It's built for multi-step processes like ETL pipelines or coordinating parallel tasks. The footgun is creating a visual monolith.
Steady State Hypothesis: The Core of Chaos Engineering
The steady state hypothesis is the core of chaos engineering: you bet your system's key metrics won't change when you break something. It's used to test resilience by defining "normal" (e.g., latency <200ms) and then trying to disrupt it with faults.

Pod Security Context: Set Security Rules for Pods
A Pod Security Context defines security settings for all containers in a Pod, like setting permissions for a user group before adding users. Use it to enforce non-root execution or manage shared volume permissions.

The Saga Pattern: Transactions Across Microservices
The Saga pattern manages transactions across services by chaining local operations. If a step fails, compensating actions undo previous work. It's common in booking systems.

Rolling Deployment: Update Servers Without Downtime
A rolling deployment upgrades servers one by one, like swapping train cars while the train moves. A load balancer directs users to active servers, keeping the app online. The main footgun is incompatibility between old and new code running at the same time.

Pod Security Standards: A Security Checklist for Pods
Pod Security Standards are a built-in security checklist for your pods. You apply a level (Restricted, Baseline, Privileged) to a namespace to prevent risky configurations like running as root.
Deployment Rollbacks: Your CI/CD Undo Button
A rollback strategy is your CI/CD's undo button, letting you revert to a known good state when a new deployment fails. It's essential for production environments. The biggest mistake is not having one, forcing a frantic 'hotfix' under pressure.
Latency Injection: Testing How Your System Handles Slowdown
Latency injection intentionally slows down parts of your system to test its resilience. Use it to validate timeout configurations and circuit breakers before a real network lag causes a cascading failure. The footgun is injecting unrealistic delays.

Pod Security Admission: Kubernetes' Built-in Guardrails
Think of Pod Security Admission (PSA) as a bouncer for your namespaces, enforcing security rules before pods can run. It applies security standards (Privileged, Baseline, Restricted) via simple labels.

CQRS: Separate Models for Reading and Writing Data
CQRS splits your application into two parts: one for changing data (Commands) and one for reading it (Queries), often with separate data models. Use it in complex systems with different read/write patterns.

Kubernetes Health Checks: Liveness, Readiness, and Startup Probes
Kubernetes health checks ask your app: "Are you alive?" (liveness), "Ready for traffic?" (readiness), and "Done starting?" (startup). This lets it automate restarts and traffic routing for zero-downtime deployments.
Resource Exhaustion: Starving a System to Death
A resource exhaustion attack is a denial-of-service tactic that starves a system by consuming all of a finite resource like CPU or database connections. It exploits missing rate limits or quotas.

Kubernetes Admission Controllers: The API's Gatekeepers
Think of admission controllers as bouncers for your Kubernetes API. They intercept requests before objects are saved, enforcing custom policies like security rules or required labels. The footgun: a broken controller can block all changes to your cluster.
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