The programming world has seen an embrace in the past decade of declarative programming paradigms, and especially functional programming. A large tenet of this is the concept that dealing with immutable variables is easier, especially in concurrent contexts, since it reduces the state the programmer needs to keep in their head at any time.
A similar shift is taking place in the operations world, with an embrace of immutable infrastructure. The basic tenets are:
- Don't mutate a running machine, create a new one
- Create images that can be tested once and deployed many times
- Machines are ephemeral, create and destroy them on demand
- Automate everything
- Define your infrastructure declaratively with a tool like Terraform
Immutable infrastructure underlies much of what we do at FP Complete in our DevOps practice. If you want to learn more, check out our DevOps syllabus.