Traditional infrastructure, big and small, has a problem with replaceability. In this world, a server named "web1" has evolved over time. It used to run your web app, but now it also runs Samba for some reason, and the last sysadmin added their Minecraft server. Who knows if you need the old MySQL server, but it runs too. Employees who quit three years back still have cron jobs, maybe doing something important. This is a lot of responsibility for a server named "web1"! Replacing web1 is an impossible task, and everybody knows it. This is why Red Hat still supports RHEL 5, despite releasing RHEL 6 a decade ago.
Immutable infrastructure solves this by starting every deploy with a clean slate. Gone are the cobwebs and grime of services long forgotten. Gone are the untested configuration management scripts which only sometimes bring up a new host. Gone is the anxiety of waiting for your deploy to finish, wondering if you broke production.
Goodbye, web1. Hello, e5cef655.
Your bright new future of immutable infrastructure means known-good, well-tested provisioning tools and a confident understanding of what your servers do and why.
This might sound scary, but you'll be ready with a few tools and techniques.
YOU MAY ALSO LIKE:
Safe and Reproducible Deployments with Immutable Infrastructure
Graham Christensen
Graham is a Senior Software Engineer, engineering manager, the project lead for all Nix Ecosystem projects, and an expert in production and site reliability engineering. With 12 years of industry experience, Graham has built and deployed environments ranging from bare metal to cloud-native, and prior to joining Tweag was doing work on production database automation tooling at Tumblr. Graham is a member of the NixOS Security and Infrastructure Teams and assists the community as a representative and mentor. He also contributes to community development tools such as OfBorg and Lorri. Outside of work, Graham unwinds by baking bread, pies, and croissants, and hiking in The Berkshires, Massachusetts.