It is a practice in IT where the engineers manage and provision computing infrastructure using code instead of manual processes. This code is typically stored in machine-readable files, which can be version-controlled, tested, and reused, just like application code.

Provisioning Cloud Resources

  1. Graphical User Interface (GUI) - Example: AWS Console
  2. API/CLI - Example: AWS CLI
  3. IaC - Example: Terraform

Categories of IaC Tools

  • Declarative vs Imperative
  • Cloud Specific vs Cloud Agnostic
  1. Ad hoc scripts - Example: bash script
  2. Configuration management tools - Example: Ansible
  3. Server templating tools
  4. Orchestration tools - Example: Kubernetes
  5. Provisioning tools - Example: Terraform