Infrastructure as code
Infrastructure as code (IaC) is the process of managing and provisioning all your infrastructure resources through machine-readable files. Often, these files are versioned and managed in Git-like code. In this case, it is often referred to as GitOps.
IaC can be imperative, declarative, or a mix of both. Imperative means the files are procedural, such as scripts, whereas declarative refers to a functional approach that describes the desired state in a markup language such as YAML or JSON. To get the full power of IaC, you should manage it in a way where you can also apply changes, not just complete provisioning and deprovisioning. This is often referred to as Continuous Configuration Automation (CCA).
Tools
There are many tools that you can use for IaC and CCA. For instance, there are cloud-specific tools such as Azure ARM, Bicep, or AWS CloudFormation. However, there are also many independent tools that you can use for on-premises infrastructure. Some...