Infrastructure as code
A.k.a. DevOps config tools.
Exists even before the container era (i.e. work for bare metal machines and VMs).
2 primary use cases: Provisioning and Config management.
Tools:
- Ansible (has the largest market share, owned by Redhat)
- Chef
- Puppet
- HashiCorp Terraform
- Pulumi: On a high level, Pulumi has a very similar flow to Terraform. It uses a state backend, provides dry run functionality, reconciles the actual world with the desired state.
- OpenTofu: a fork of Terraform
- Terragrunt is a thin wrapper that provides extra tools for keeping your configurations DRY, working with multiple Terraform modules, and managing remote state.
- SaltStack
- AWS CloudFormation
- Microsoft Azure ARM (Azure Resource Manager)
- Google Cloud Resource Manager
- Google Anthos Config Management - Config Sync: "Config Sync is a GitOps service offered as a part of Anthos."
Terraform, OpenTofu, Pulumi written in go
GitOps
GitOps is considered a universal best practice for organizations managing Kubernetes configuration at scale.
Source control tools: Gitlab, Github, BitBucket.