In many ways, IaC is a philosophy of packaging and organizing cloud infrastructure to be built on demand based on an existing model rather than having to rebuild from scratch each time. This takes advantage of the instant resourcing capabilities offered by cloud computing and virtualization technology, using automated programming to complete tasks. This makes it possible to easily scale and redistribute infrastructure as needed.
Briana Frank, director of product management for IBM Cloud, says that in many ways, IaC breaks down the process of building a new infrastructure the same way developers might approach their toolkits when working on new applications.
“A developer wouldn’t write every line of code each time they had to run their application,” Frank says. “Similarly, an operations engineer shouldn’t have to click through every button in their cloud provider each time they want to deploy a new environment. They must be able to store everything that defines their Infrastructure as Code. This is generally stored in something like GitHub — the same place that developers maintain their app code.”
Thinking about infrastructure in the same way programmers think about toolkits opens up opportunities for scale. Chris Gardner, vice president and research director at Forrester, says that beyond the ability to store tools in source code repositories like GitHub, this approach allows for a continuous delivery pipeline.
“Since you’re modeling infrastructure as software, you get all of the benefits typically afforded to application developers,” Gardner says.
As Gardner notes in a 2018 report, “Become a Unicorn with Infrastructure as Code,” nearly 90 percent of global enterprise infrastructure decision-makers emphasized the importance of having a comprehensive cloud strategy. IaC could be one element of building a strategic approach toward cloud.
What Are the Benefits of IaC?
From an automation standpoint, Infrastructure as Code can help ensure efficiency in the buildout of resources while offering consistent configuration and flexibility in deployment. Resources can be distributed via the cloud or on-premises as needed, which can come in handy during major crises — such as the start of the COVID-19 pandemic, when some businesses found themselves suddenly needing to scale up.
Sometimes, organizations only need a specific piece of infrastructure for a few days or weeks rather than a few years. There’s also always the risk that something you expect to stay online might break. In these instances, IaC can help businesses stay flexible and ease the recovery process, notes Frank.
“Consider that there is a disaster and your infrastructure goes down or is otherwise in a corrupted state,” she explains. “If implemented correctly, you can automatically provision your entire infrastructure stack from scratch.”
With room for detailed customization, Frank says this can allow for the simple re-creation of test or production environments as needed.
There can be challenges in how IaC is managed, however. One example of this is configuration drift, which Frank says happens when changes are made to existing infrastructure without updating the code to match. This can create significant security issues and long-term compliance challenges, ITProPortal reports. Even a small divergence can create big problems down the line.
“In a perfect world, all infrastructure changes are done in the code, so this wouldn’t be a problem,” Frank adds.