For example, traditionally, requests for new servers have required the filing of a helpdesk ticket, which ops then interprets to try to gauge where to build the new virtual machine and on what storage, a process that means the server request is fulfilled within a number of days, if not a few weeks. Instead, imagine having a self-service portal where customers and co-workers can put in requests, and their virtual machines are provisioned automatically based on a prebuilt schema. This is possible with infrastructure as code.
Infrastructure as code allows you to define what any given infrastructure component should look like. From there, all the logic on how to provision that component is already built. As such, developers and business users can simply build their own VMs. You've defined all the criteria for the VMs ahead of time, and it's simply a matter of coding a manifest of instructions for performing the build.
Savor source control
Software developers use source control to manage changes. Source control through services such as Git, CVS, Mercurial, Team Foundation Server, and so on allow whole teams of developers to work on a codebase at the same time. Developers check in their code on a periodic basis, and source control keeps track of changes, giving developers the ability to merge changes, detect conflicts, and so on. Source control tools also allow you to roll back changes at will.
Imagine being able to simply roll back any change on a server at a moment's notice. Also, do you know who stopped a service today or who deleted that important file? If all of your changes are performed in code and checked into source control, the change is as easy as seeing which account checked in the change set.
Source control might seem foreign at first. Terms like "repositories," "branching," "changesets," and "merging" may even sound like Greek. At its most basic, source control enables you to retain versioning control over changes to a bunch of text files. For example, a typical piece of infrastructure code might contain all the parameters to build and maintain a particular application server. This application server is critical to the business and must adhere to a set of specific configuration items. Your company might soon roll out new features that require a tweak to a website. By using source control and practicing infrastructure as code, you can simply add the new configuration item into a local script on your computer and check the script into source control, which will then kick off that change on all of the applicable servers and any new server built for this application's purpose.
Another benefit of source control is the ability to roll back changes. Perhaps you modified the wrong item and it was immediately changed in production. No problem -- simply roll back your change, and have the servers grab the reverted configurations and be provisioned in their new state.
Sign up for CIO Asia eNewsletters.