If you have ever had to provision and configure a server, you know the pain it can bring. Take the process of configuring hardware connections, the software stack, and their interdependencies, and then multiply that across however many servers you are deploying—you are talking days and days of tedium.
Scripts are often the solution to performing repetitive tasks, but even there, scripting has its limitations, because scripts are mostly linear if-then statements that don’t have the strength and capabilities of application code.
This is where infrastructure as code (IAC) comes in. IAC—sometimes referred to as programmable or statically defined infrastructure (SDI)—is a type of IT setup to automatically manage and provision the technology stack from hardware through the software layers, with greater control than scripting and far more automation.
Infrastructure as code (IAC) defined
“The simplest definition of IAC is being able to treat your infrastructure as if it’s software,” says Nigel Kersten, vice president of architecture at Puppet, an open source configuration management provider. “Things like virtual APIs, IaaS, provisioning cloud resources, and programmatically talking to hardware to kick off provisioning process are all IAC.”
IAC lets engineers use “code”—generally a high-level scripting or programming language—to program the infrastructure setup for any given application or service. This lets any authorized user execute predefined, repeatable, known good processes to build and rebuild IT infrastructure automatically, the same way every time, at machine speed.