Infrastructure as Code (IaC) is the process where infrastructure (networks, virtual machines, load balancers, and connection topology) managed with code and software development techniques such as version control and continuous integration. IaC is necessary for regular DevOps practices and used in conjunction with Continuous Delivery. IaC allows DevOps teams to test applications in production-like environments early on in the development cycle.