DevOps & Cloud Engineering Journal
Deep dives into Kubernetes, CI/CD, and Cloud Architecture. Practical guides for modern infrastructure teams.
Every 'best local model' list goes stale in months. The arithmetic underneath it doesn't. Here's how to compute the memory a model needs from its parameter count and quantisation level, why the KV cache is the number people forget, and how mixture-of-experts broke the old rule that parameters predict speed.
Kubernetes has two securityContext blocks with the same name, different schemas, and one precedence rule everyone half-remembers. Here is exactly which fields live at each level, what happens when both are set, and the fsGroup and runAsNonRoot traps that break pods in production.
A PersistentVolume is storage that exists; a PersistentVolumeClaim is a request for some of it. That one sentence resolves most of the confusion — but the binding lifecycle, reclaim policies, and access modes hide real data-loss traps. Here's the full picture, from mental model to production gotchas.
Tainting a node is one kubectl command — the real skill is knowing which of the three effects to use and when a taint beats node affinity. Here's the full anatomy of taints and tolerations, every command you need, and the patterns that actually justify them: GPU pools, spot nodes, and control planes.
kube-proxy has quietly translated Service VIPs into pod IPs on every node since Kubernetes 1.0 — and at scale, its iptables rule chains become the bottleneck. Here's what Cilium's eBPF kube-proxy replacement actually does differently, the measurable wins, the caveats nobody mentions, and when leaving kube-proxy alone is the right call.
LangGraph and LangChain are not competitors — LangGraph is built by the LangChain team to solve the one problem chains can't: loops. Here's the real architectural difference, the same task written in both, and an honest decision framework for when a stateful graph earns its complexity.
Generative AI produces content from a prompt — one inference, stateless, done. Agentic AI wraps that same model in a loop with goals, tools, memory, and feedback from the environment. The difference isn't the model; it's the architecture around it — and it changes your latency, cost model, failure modes, and security surface.