Using virtualization to automate deployment: is it a good idea or not?

As the number of servers needed to run slideshare increases, we are spending more and more of our time simply deploying our software. Each new box has to have a lot of software installed, configured, and tested before it can be hooked up. Scripting common tasks makes things go faster, but doesn’t resolve the fundamental problem, which is that there’s never any way to prove that Server A has the exact same configuration as Server B. This makes troubleshooting tricky, obviously.
One path we’re starting to consider is virtualization. I haven’t heard of this as a common use for virtualization. Typically, people seem to use software like Xen or VMWare to run multiple virtual servers on one physical server, so they can get more use out of existing hardware. We don’t have that problem: all our boxes are in the red! But we would like to be able to roll out new servers reliably, at the push of a button, the way you can make a new instance of an image on Amazon EC2 just by typing a command into your command line.
The way I look at it, the configuration of a machine is valuable intellectual property, and it needs to be captured so that it can be reproduced whenever we need it. Of course there’s a performance penalty: something like 5/10% of CPU will be consumed by the virtualization software, meaning that overall we’ll need more boxes than we would otherwise. But we’ll be able to set up or rebuild boxes faster, and right now that seems more important to me.
Thoughts? Is this a good idea or not? Has anyone used virtualization in this way? Any recommendations on which software to try first? As always, reply in the comments field below.
Also: a special bonus slideshow on virtualization for your reading pleasure!

5 thoughts on “Using virtualization to automate deployment: is it a good idea or not?

  1. Tony Lucas March 22, 2007 / 4:02 pm

    I completly agree with this, this is something we are discussing with a number of potential customers at the moment who want a solution like this for exactly the same reason. They are prepared to accept the performance overhead (or when they don’t maintain the boxes themselves) the relative higher cost, for the pure ease of provisioning, updating & lack of reliance on individual pieces of hardware.
    (Disclaimer, We are building a solution Similar to EC2 which we will be launching next month in beta).

  2. Kent March 22, 2007 / 5:31 pm

    The famous answer, “it depends.” There are certainly benefits to virtualization that a physical server could never achieve: hardware portability, higher availability to planned maintenance, immediate disaster recovery, and cost savings. I have migrated close to half our physical servers to virtual servers including high use production server. However, there are certainly workloads (“kernel calls” being one of them) that should not be. Or if you have 4-way boxes that are currently 100% utilized, you might have systems that might not be the best candidates. 1-way or 2-way boxes, even highly utilized ones, should be fine.

  3. Juha March 23, 2007 / 2:49 am

    You don’t need virtualisation for what you describe above, just a good sysadmin who understand how to make automated installation systems.
    That said, virtualisation makes the task easier so…
    Yes, some of the banks here apparently make use of virtualisation that way, to deploy added capacity when needed.

  4. Michela March 23, 2007 / 10:23 am

    Keep up this great resource. best greetings!

  5. Peter March 23, 2007 / 9:51 pm

    can’t you just Ghost a new machine?
    i’m sure Google has some fancy stuff…

Comments are closed.