Devops
294 bites tagged Devops — interview questions with model answers, and 60-second explainers.
Platform Engineering: Paving the Road for Developers
Platform engineering builds a paved road for developers, offering a standardized, self-service path to ship code. It's used to reduce developer cognitive load and enforce standards. The footgun is building a platform so rigid that nobody wants to use it.
Argo Rollouts: Beyond Kubernetes Rolling Updates
Argo Rollouts replaces Kubernetes' basic `RollingUpdate` with safer, controlled strategies like canary and blue-green. It gradually shifts traffic to new versions while monitoring metrics, automating rollbacks if KPIs degrade.
Kustomize: Template-Free Kubernetes Configs
Kustomize manages environment-specific Kubernetes configs by layering patches on a base YAML, avoiding complex templating. Use it to tweak deployments for dev, staging, or prod. The footgun: the `kubectl` version can lag, causing unexpected behavior.
Pipeline Analytics: Measuring Your CI/CD Health
Pipeline analytics is a fitness tracker for your CI/CD, revealing if builds are getting slower or less reliable. Use it to spot bottlenecks, track failure rates, and compare branches. The footgun is ignoring the P95 duration, which hides worst-case outliers.
DORA Metrics: Vital Signs for Your CI/CD Pipeline
DORA metrics are four vital signs for your software delivery process, balancing speed and stability. They benchmark DevOps performance from commit to production. The main footgun is optimizing for speed while ignoring stability, leading to frequent outages.
Synthetic Monitoring: Probing Your App Like a Robot User
Synthetic monitoring is like having a robot user click through your app's critical paths 24/7 to catch issues before real users do. It tests key flows like login or checkout, providing a consistent baseline for performance.
Service Level Objective (SLO): A Measurable Promise
An SLO is a precise, measurable promise about your service's performance, like "99.9% of requests will succeed." It's the internal engineering target that backs up a customer-facing SLA. The footgun is setting a 100% SLO, which leaves no room for failure.
Bug Tracking Systems: The Central Log for Software Defects
A bug tracker is the central log for a project's known defects. It’s used in software development to keep track of reported bugs, coordinate fixes, and manage the lifecycle of an issue. The footgun is undervaluing the quality of bug reports.
CI/CD and the Principle of Least Privilege
Treat your CI/CD pipeline like a temporary worker, not a superuser. Grant it only the minimum permissions needed for its specific task, like building code or deploying to staging.
RASP: An Immune System for Your Application
Think of RASP as an application's immune system, using runtime instrumentation to block attacks from within. It provides real-time protection against threats that static analysis or network firewalls miss.
Environment Gating: Automated Go/No-Go for Deployments
Environment gating is an automated checklist for your CI/CD pipeline. Instead of just building code, it checks external signals like monitoring alerts or bug trackers before promoting a release.
Release Orchestration: Air Traffic Control for Deployments
Release Orchestration is the air traffic control for software delivery, coordinating multiple pipelines and teams. It's used for complex launches with interdependent services, ensuring everything deploys in the correct sequence.
Progressive Delivery: Ship Faster by Reducing Blast Radius
Progressive Delivery reduces release risk by shipping to small user groups before a full rollout, like a soft-opening for new code. It uses canary releases and feature flags to catch issues before they impact everyone.
Deployment Rings: De-risking Rollouts with Progressive Exposure
Deployment rings are like blast shields for software updates, containing a bad release's impact to a small group. They're used in CI/CD to roll out changes progressively, from internal teams to all users.
Traffic Shaping for Safer Deployments
In deployments, traffic shaping isn't about network speed, but controlling user exposure. You route a precise percentage of users to a new code version, slowly 'opening the valve' from 1% to 100% to de-risk the release. This is the engine of a canary deploy.
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.
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.
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.
Kubernetes StatefulSets: Stable Identity for Pods
A StatefulSet gives pods a stable, unique identity and persistent storage, unlike a Deployment's interchangeable replicas. Use it for clustered databases or queues where members need stable network names.
Kubernetes Ingress: The Cluster's Front Door
Kubernetes Ingress is the smart receptionist for your cluster. It routes external HTTP/S requests to internal services based on hostnames or paths, letting you expose multiple apps under one IP.
Kubernetes Service: A Stable Address for Ephemeral Pods
A Kubernetes Service provides a stable IP address and DNS name for a group of ephemeral Pods. It acts like a load balancer, distributing traffic so you don't have to track individual Pod IPs, which can change at any time.
Kubernetes Pods: The Atomic Unit of Deployment
A Kubernetes Pod is the atomic unit of deployment, a logical host for containers sharing a network and storage. This is ideal for co-locating a main app with a helper "sidecar" container. The footgun: a Pod is not a container; you scale by adding more.
Kubernetes: The Operating System for Your Cluster
Think of Kubernetes as an OS for your entire datacenter. It automates deploying, scaling, and managing containerized applications across a fleet of servers. The footgun is adopting it for simple projects, where its complexity outweighs its benefits.
Docker Compose: A Tool for Containerized Applications
Docker Compose is a tool in the Docker suite for running applications in containers. It ensures your app runs the same everywhere by packaging it with its dependencies, solving the 'works on my machine' problem.
Get Devops bites daily.
Five a day, five minutes, offline. With quizzes so it sticks.
Open testing — you’ll join as an early tester.