Explanation
Infrastructure as Code (IaC) is a key DevOps practice that involves managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
Key points about Infrastructure as Code:
- Automates provisioning: IaC allows you to define your infrastructure using code (like AWS CloudFormation, Terraform, or AWS CDK)
- Version control: Infrastructure definitions can be stored in version control systems
- Reproducibility: The same infrastructure can be deployed consistently across different environments
- Scalability: Infrastructure can be easily scaled up or down programmatically
Why the other options are incorrect:
- Option A: While migration can be automated, IaC specifically focuses on infrastructure provisioning, not hardware migration
- Option B: Third-party audits are separate security processes, not the primary purpose of IaC
- Option C: Application code deployment is handled by different services (like AWS CodeDeploy), not infrastructure provisioning
AWS Services that support IaC:
- AWS CloudFormation
- AWS CDK (Cloud Development Kit)
- Terraform with AWS provider
- AWS SAM (Serverless Application Model)