Fully Automated Provisioning
Whether you are looking to maximize the efficiency and reliability of your existing operations or you are looking to take advantage of next generation dynamic infrastructure like virtualization and cloud computing, Fully automated provisioning is an essential capability.
“Fully automated provisioning” means having the ability to deploy, update, and repair your complete application infrastructure -- from "bare-metal" provisioning to integrated application services -- using only predeļ¬ned automated procedures.
Fully automated provisioning enables you to operate a more efficient and reliable application lifecycle across your organization. Developers and QA staff can be provided safe self-service capabilities for deploying and managing their own environments. System administrators in your production environments can operate with previously unachievable levels of efficiency and reliability. Outages and time-to-market can be significantly reduced while simultaneously improving the agility of your business.
Fully automated provisioning isn't a specific technology. Fully automated provisioning is a philosophy that is applied using a toolchain that provides the specification-driven, end-to-end automation that is needed.
The image below shows a reference open source toolchain (and tool options) for fully automated provisioning.
Automated OS Install
Prepare any specific version of the operating system and have it automatically stamped out across multiple machines (physical, local virtual machines, our cloud-based virtual machines).
System Configuration and Compliance
Once the operating system is deployed there is still a considerable amount of work that needs to take place. You must ensure that all of the os, network, and security settings are correct. You also must ensure that all of the correct libraries and base packages are in the right locations. This layer automates all of this work and also gives you the ability to automatically spot and correct "configuration drift" or unauthorized changes as they take place.
Application Service Deployment
An Application Service Deployment tool is concerned with coordinating actions that have to take place across multiple tiers (web, application, database) and multiple servers. Like the System Configuration Tool, this tool must also be specification driven. Changes are driven through the tool by editing the specifications for a particular integrated business application and then rerunning the same consistent deployment automation commands.
An important benefit of achieving fully automated provisioning is gaining consistency across production and pre-production environments (back to integrated development environments or even individual developer's laptops). When you are building or integrating software to be a run as a business service, an error in deployment or a misunderstood configuration setting can cause an outage just as crippling as a software bug.

For a more detailed description of fully automated provisioning, see this ControlTier whitepaper. DTO is the primary provider of support and training services for the ControlTier open source project.

