Infrastructure as Code

April 25, 2020

Do not use imperative languages to define infrastructure, ever!

Infrastructure code must be deterministic and immutable, easy to reason about and prove it does exactly what it defines. That tends to mean declarative which can mean functional.

Never, under any circumstances should it be Python, Java/TypeScript, Go, C#, … Only use pure functional languages or, better, a completely declarative DSL.

Even though some imperative languages have functional capabilities, an escape hatch will always end up being used which will endanger the infrastructure.

Discussion, links, and tweets