Environment Config Overlays for Kubernetes
One config that differs per environment is where drift starts. Base plus overlay keeps dev, staging, and prod honest without duplicating manifests.
All writing
45 articles and counting.
One config that differs per environment is where drift starts. Base plus overlay keeps dev, staging, and prod honest without duplicating manifests.
Deleting a user across many services is a fan-out problem with a nasty twist: what your deletion event means. Requested or executed changes everything.
Three Kafka settings decide throughput, cost, and whether replay works: partition count, retention, and cleanup policy. How to choose each deliberately.
Ad-hoc Kafka topics become an unnavigable mess. A naming convention plus a single canonical registry keeps an event bus legible as it grows past 50 topics.
Writing to your database and publishing an event are two operations that can't share a transaction. The outbox pattern fixes that, and when to skip it.
Most on-call pain is bad alerts, not bad systems. Alert on symptoms users feel, page only on what needs a human now, and kill the rest. The rules.
Plain-text logs are ungreppable at scale. Structured logging makes logs queryable, but volume and cost bite back. How to log structured, useful, and affordable.
An SLO you never enforce is a number on a wiki. How to set SLOs from user experience, turn them into an error budget, and actually act on the burn rate.
Tracing everything is too expensive; tracing 1% randomly drops the traces you need. OpenTelemetry sampling strategies, head vs tail, and how to choose.
High-cardinality labels are what kill Prometheus, not query volume. What causes a cardinality explosion, how to spot it, and the label rules that prevent it.
A service mesh gives mTLS, traffic control, and observability, at real complexity cost. When a mesh is worth it, when it isn't, and the lighter alternatives.
A PodDisruptionBudget keeps your service up during node drains and upgrades, but a wrong value blocks drains or protects nothing. How to set PDBs correctly.