Erase your darlings: immutable infrastructure for mutable systems - Graham Christensen
Over time, a system collects state on its root partition. This state lives in assorted directories like /etc and /var, and represents every under-documented or out-of-order step in bringing up the services. “Right, run myapp-init.” These small, inconsequential “oh, oops” steps are the pieces that get lost and don’t appear in your runbooks. “Just download ca-certificates to … to fix …” Each of these quick fixes leaves you doomed to repeat history in three years when you’re finally doing that dreaded RHEL 7 to RHEL 8 upgrade. “Oh, touch /etc/ipsec.secrets or the l2tp tunnel won’t work.” Immutable infrastructure is a wonderfully effective method of eliminating so many of these forgotten steps. Leaning in to the pain by deleting and replacing your servers on a weekly or monthly basis means you are constantly testing and exercising your automation and runbooks. The nugget here is the regular and indiscriminate removal of system state. Destroying the whole server doesn’t leave you much room
I erase my systems at every boot. Over time, a system collects state on its root partition. This state lives in assorted directories like /etc and /var , and represents every under-documented or out-of-order step in bringing up the services. “Right, run myapp-init .” These small, inconsequential “oh, oops” steps are the pieces that get lost and don’t appear in your runbooks. “Just download ca-certificates to … to fix …” Each of these quick fixes leaves you doomed to repeat history in three years when you’re finally doing that dreaded RHEL 7 to RHEL 8 upgrade. “Oh, touch /etc/ipsec.secrets or t
related reading
- Everything I know about good system designseangoedecke.com
- Write code that is easy to delete, not easy to... — programming is terribleprogrammingisterrible.com
- Destroy All Values: Designing Deinitialization in Programming Languages - Faultloregankra.github.io
- systemd for Administrators, Part 10pointer.net
- Notes on Distributed Systems for Young Bloods – Something Similarsomethingsimilar.com
- The Hitchhiker's Guide to Ethereum - Delphi Digitalmembers.delphidigital.io
- Build Your Own Databasenan.fyi
- NixOS: Everything Everywhere All At Onceyoutube.com
- The sad state of personal data and infrastructure | beepb00pbeepb00p.xyz
- You have to know about persistent data structures (August Lilleaas' blog)augustl.com
- A data race that doesn't compilecorentin-core.github.io
- Durability & Consistency - ZeroFS Documentationzerofs.net