A server used to a big deal. You bought a very expensive box, you hired a priest to maintain it, and that was that. Nowadays, a server is either just a timeslice in a virtualization environment, or something you get from a cloud provider. You might still be buying big boxes because that's how your (legacy) environment is set up, but nobody starting a business today is making a big buy of hardware. You might decide to switch from the cloud to your own virtualization environment for cost reasons, but either way - once you get used to the idea that a server is something you set up with a few clicks (and pay for by the hour) it's very hard to go back.
Once you've solved that problem, a new one appears: you now have servers everywhere. The staff that used to maintain a handful of servers manually is now drowning under hundreds of server environments. Patching, configuration changes - it's all a mess. You can't do it by hand. Enter configuration management.
Here's a list of open source configuration management tools, but in general we are running into the following:
Here's an interesting blog on the relative origin of CFEngine, Puppet and Chef.
We're very lucky - Puppet Labs is based down in Portland, OR. Chef and Microsoft are both local.
The biggest challenge to adopting Configuration Management has proven to not be technology, but rather culture. It turns out that people rather like logging into systems as root. That said - someone who manages systems via configuration management can easily manage ten to a hundred times as many servers. I'll let you do the math on ROI.
Configuration management is a key component of DevOps, which in turn is a key component of Continuous Delivery. We can help you put together a roadmap and transition your staff - just drop us a line.