Infrastructure as Code (IaC) & all terminology
Some common and maybe uncommon terms related to Infrastructure as Code (IaC)
These are mostly notes for personal reference. Suggested read: Containerization terminologies.
- Idempotent - Idempotent operation has no additional effect if it is called more than once with the same input parameters
- Declarative - Configuration explicitly specified in the code, uses scripting language like JSON & YAML
- Imperative - Configuration is implicit, you say what you want & rest is filled in. Used with programming languages Python, Ruby, Javascript

- Provisioning - Creating Infrastructure i.e. compute, storage containers, etc.
- Deployment - Deliver the application to provision the server. Deployment can be performed with AWS CodePipeline, Jenkins, GitHub Actions.
- Orchestration - Orchestration is coordinating with multiple systems & services. Orchestrations is a common term when working with microservices, containers & Kubernetes
- Configuration Drift - When provisioned infrastructure has unexpected configuration changes.
- Mutable Infrastructure - Mutable infrastructure can be updated, configured as per the requirement.
- Immutable Infrastructure - Immutable infrastructure is something that can never be modified once it is deployed.
- Cloud Agnostic - Cloud agnostic is a process where the company builds systems that aren't dependent on a specific provider
- Execution Plan - A manual review of what will add, change or destroy before you apply changes. Eg: terraform apply
Suggested Read 👉