What is Infrastructure as Code?

TL;DR

  • Infrastructure as a Service refers to the capability of acquiring and releasing resources on demand.
  • Infrastructure as Code or Data refers to a method of acquiring and releasing resources on demand.

Infrastructure as a Service

Infrastructure as a Service refers to the capability to acquire and release resources.

Infrastructure as Code

Infrastructure as Code refers to the method of acquiring and releasing resources.

Infrastructure as Code or as Data or as …

Arguably, Infrastructure as Code is the most well-known and most frequently discussed provisioning method today. However, in this blog post, we will discuss five distinct methods to acquire and release resources.

The Hello World of Infrastructure as a Service

Imperative Provisioning Methods

Imperative provisioning methods refer to the set of provisioning methods where

  • the resource consumer does not formally encode the desired state and
  • the resource consumer determines the sequence of commands

1. Infrastructure as Tickets

Figure 1.1 Infrastructure as Tickets
Figure 1.2 Infrastructure as Tickets

2. Infrastructure as Clicks

Figure 2.2 Infrastructure as Tickets

3. Infrastructure as Scripts

Figure 3.1 Infrastructure as Scripts
Figure 3.2 Infrastructure as Scripts

Declarative Provisioning Methods

Declarative provisioning methods refer to the set of provisioning methods where

  • the resource consumer formally encodes the desired state and
  • a component determines the sequence of commands

4. Infrastructure as Code

Figure 4.1 Infrastructure as Code
Figure 4.2 Infrastructure as Code

5. Infrastructure as Data

Figure 5.1 Infrastructure as Data
Figure 5.2 Infrastructure as Data

Infrastructure as Code vs Infrastructure as Data

The defining characteristic of Infrastructure as Code is the presence of control flow in the encoding of the desired state while the defining characteristic of Infrastructure as Data is the absence of control flow in the encoding of the desired state.

  • The association that Infrastructure as Code is manually triggered stems from the popularization of Infrastructure as Code by manually triggered tools like Terraform or Pulumi
  • The association that Infrastructure as Data is continuously performed stems from the popularization of Infrastructure as Code by continuously performing platforms like Kubernetes.

Conclusion

Whether we are reasoning about Infrastructure as Tickets, as Clicks, as Script, as Code, or as Data, we are reasoning about an Infrastructure Provisioning Method, that is, how we interact with Infrastructure as a Service.

About this post

Concise and accurate definitions are essential to communicate complex concepts, both to technical and non-technical stakeholders. If we do not share a common vocabulary, we cannot share a common understanding!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store