<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Devops on Hanh Pham's Blog</title><link>https://hanhpham.vercel.app/tags/devops/</link><description>Recent content in Devops on Hanh Pham's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 02 Oct 2026 09:00:00 +0700</lastBuildDate><atom:link href="https://hanhpham.vercel.app/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker BuildKit in CI: The Economics of Network I/O vs CPU Compilation</title><link>https://hanhpham.vercel.app/posts/docker-buildkit-caching-economics-in-ci/</link><pubDate>Fri, 02 Oct 2026 09:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/docker-buildkit-caching-economics-in-ci/</guid><description>Enabling remote layer caching in CI often slows builds down instead of speeding them up. Here is how network transit limits, cache thrashing, and local NVMe runners dictate the real economics of container builds.</description></item><item><title>GitOps Reality with ArgoCD: When Declarative State Fights the Database</title><link>https://hanhpham.vercel.app/posts/gitops-argocd-database-migration-reality/</link><pubDate>Wed, 30 Sep 2026 09:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/gitops-argocd-database-migration-reality/</guid><description>GitOps treats application deployments as stateless Git diffs, but production backends run on stateful databases. Here is why automated Git rollbacks break under schema migrations, and how to decouple delivery safely.</description></item><item><title>Zero-Downtime Kubernetes: Why preStop Sleep 5 Is an Architectural Anti-Pattern</title><link>https://hanhpham.vercel.app/posts/kubernetes-rolling-updates-and-connection-draining/</link><pubDate>Sat, 26 Sep 2026 09:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/kubernetes-rolling-updates-and-connection-draining/</guid><description>Slapping a five-second sleep into your container lifecycle masks a distributed control plane race condition. Here is how packet routing, EndpointSlice propagation, and application connection draining actually fit together.</description></item><item><title>Terraform State Decomposition: Blast Radius vs The Integration Tax</title><link>https://hanhpham.vercel.app/posts/terraform-blast-radius-and-state-decomposition/</link><pubDate>Thu, 24 Sep 2026 09:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/terraform-blast-radius-and-state-decomposition/</guid><description>Splitting a monolithic terraform.tfstate into fifty micro-states speeds up plans, but introduces cross-stack read locks, secret leakage, and brittle dependencies. Here is how to structure state boundaries without the integration tax.</description></item></channel></rss>