DEV Community

mikkergimenez
mikkergimenez

Posted on • Updated on

Infrastructure is not code

This is still a work in progress. It's not that I don't fully embrace infrastructure as code, but I do wonder if there's something past this that helps shore up the leaky abstractions.

On the one hand infrastructure is defined by specifications.

Things I don't like about infrastructure as code.

  1. How much of the code is underutilized. So much of the code you touch once and then never touch again.
  2. It's a poor abstraction, for all the focus on declarative code, Infrastructure management is often an imperative process, how things are done is often as important as what is done (upgrading a database)
  3. In this imperative process, there is often a lot of context required. When you manage things via a UI, there are warnings, suggestions (backup first) and you can monitor the status of the imperative change.
  4. A mature codebase often feels like the code is the focus of the attention rather than the infrastructure itself. Every time you touch terraform, there could be a ton of upgrades to manage. For instance, terraform updates their AWS module near weekly.

Top comments (0)