Infrastructure as Code (IaC) involves managing and provisioning computing infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. Principles of IaC: Reusability: Complete complex systems must be built from reusable infrastructure definitions. This means infrastructure components should be modular and reusable across different environments and applications. Consistency: Environments must be provisioned consistently using the same inputs. This ensures that every environment is set up exactly the same way, reducing the risk of errors and discrepancies. Other Principles: Declarative Configuration: Using a high-level language to define what the infrastructure should look like rather than how to achieve it. Incorrect Options: C . Redeployments cause varying environment definitions: This is against IaC principles as it emphasizes consistency. D . Service overlap is encouraged to cater for unique environment needs: This could lead to complex and unmanageable configurations. E . Components are coupled, and definitions must be deployed for the environment to function: IaC promotes decoupled, modular components. Reference: Infrastructure as Code: IaC Principles