From Docker Swarm to Kubernetes: a migration you can do service by service
Swarm was the sensible choice in 2019; its ceiling is real in 2026. The strangler-pattern migration we run — same registry, same secrets model, one service at a time.
12 articles tagged kubernetes.
Swarm was the sensible choice in 2019; its ceiling is real in 2026. The strangler-pattern migration we run — same registry, same secrets model, one service at a time.
SaaS observability bills scale with pod count, not with incidents. The VictoriaMetrics + Grafana stack we run in every cluster we operate, and the alerting rule that matters more than the dashboard.
Not every deployment needs progressive delivery. Matching strategy to blast radius — what we roll, what we blue-green, and the one system that gets canaries.
Overprovision and you pay for idle cores; underprovision and the OOM killer visits at month-end close. How we set requests and limits from real usage percentiles instead of round numbers that sounded right.
You don't need a storage team to run stateful workloads on Kubernetes — you need to pick the right replication model. Where Longhorn's simplicity wins, where Ceph earns its complexity, and how we decide per cluster.
Every image we deploy is built by CI, signed by cosign and checked by Kyverno at admission. Why we run the policy in audit mode first, and the PR-preview exception that makes it survivable.
A backup nobody has restored is a hypothesis, not a plan. The monthly drill we run against Velero snapshots, Postgres dumps and filestore syncs — and what it's already caught before a client ever noticed.
Your storefront is public; your ERP doesn't have to be. WireGuard tunnels, private ingress, and the network layout that keeps Odoo reachable by the API gateway — and nobody else.
Hundreds of images, charts and npm packages age every week across our clusters. Renovate turns that into reviewed pull requests, and CI gates plus a minimum release age turn most of those into merges nobody has to click.
Secrets in .env files end up in repos; sealed secrets end up unrotatable. The Infisical → External Secrets Operator → pod pipeline that keeps credentials out of both git and CI logs.
Four years running CloudNativePG under ERPs and web apps: declarative failover, WAL-archived backups and major-version upgrades as config, not 3 AM SSH sessions. The gotchas to plan for, and where we'd still reach for something else.
Remote turbo caching turns ten-minute builds into ten-second cache replays, and a self-hosted Woodpecker pipeline deploys every PR as its own preview instance. The setup behind this very website.