Infrastructure management is a process associated with software engineering. Organizations have traditionally “racked and stacked” hardware, and then installed and configured operating systems and applications to support their technology needs. Cloud computing takes advantage of virtualization to enable the on-demand provisioning of compute, network, and storage resources that constitute technology infrastructures.
Infrastructure managers have often performed such provisioning manually. The manual processes have certain disadvantages, including:
-
Higher cost because they require human capital that could otherwise go toward more important business needs.
-
Inconsistency due to human error, leading to deviations from configuration standards.
-
Lack of agility by limiting the speed at which your organization can release new versions of services in response to customer needs and market drivers.
-
Difficulty in attaining and maintaining compliance to corporate or industry standards due to the absence of repeatable processes.
Infrastructure as Code addresses these deficiencies by bringing automation to the provisioning process. Rather than relying on manually performed steps, both administrators and developers can instantiate infrastructure using configuration files. Infrastructure as Code treats these configuration files as software code. These files can be used to produce a set of artifacts, namely the compute, storage, network, and application services that comprise an operating environment. Infrastructure as Code eliminates configuration drift through automation, thereby increasing the speed and agility of infrastructure deployments.