Table of Contents:

Configuration Management

A professionally made software system is not setup manually. There must be code that is able to reliably re-create the system and all of its environment. This might consist of an Infrastructure as Code (IAC) solution, or a CICD pipeline, or a combination of these things. IAC can also be called configuration management.

Infrastructure as Code

IaC gives us a means to reliably reproduce the state of a cluster or system. Typically these IaC configuration files will describe a “desired” state, but not the exact method by which it should be reached. Examples of functions done in IaC:

  • Create managed cloud resources (EC2s, ASGs, ELBs, etc.)
  • Install certain libraries, packages, or applications on a set of nodes.
  • Run certain daemons or programs on the nodes.
  • Download secret values.

Some examples of Infrastructure as code, or configuration management:

  • Terraform
  • Ansible
  • Chef
  • AWS CloudFormation
  • ArgoCD, Helm