Jan Kokoska

To virtualize, or not?

By: Jan Kokoska, 29th of October 2007

29th of October 2007

Do you have servers in your organization? Are they virtualized already? Let's have a look into some benefits of server virtualization so you could make your own opinion whether it would be the right thing to do in your environment.

Server consolidation

Virtualization lowers the cost of running your server infrastructure by simply having fewer physical machines to upgrade and maintain. With virtualization, it is possible to distribute spare computing resources across moderately utilized systems, akin to what RAID 5E does for redundant disk arrays, when compared to the dedicated idle capacity that served the same purpose in RAID5 configurations, but not nearly as efficiently.

Disaster recovery

It's much easier to recover a virtual machine snapshot than it is to rebuild a physical host. Under some DR schemes, the backed up VM snapshot can even be started immediately after original VM's failure and only then migrated to a production physical host again.

Development and Testing

With virtualization, the administrative overhead of having separate environments for development and testing tasks are minimal, so it's more likely that this will actually be done, resulting in a cleaner deployment process, fewer bugs in production and more reliable operation of the virtualized services overall, when compared to older mode of operation, where applications were hosted directly on physical machines.

Load balancing and High Availability

Multiple VMs make it straightforward to split the request path at some key points from performance perspective, and host the parallelly processing VMs on separate physical hosts, to provide load balancing for the service. High avalablility is a matter of migrating production IP addresses to the standby VMs in active-passive cluster pairs, which were receiving continuous updates from active cluster member up to the failure event that triggered IP failover. It's therefore possible to provide HA on several layers of the application, without dedicating an inordinate number of mostly idle machines to the task.


The disadvantages are only a few and come mostly from not getting virtualization right. Virtualization is indeed an additional layer of abstraction and does add complexity to the system, but it's an abstraction that was sorely needed on standard PC systems and one where the additional burden of having to know how to manage virtual machines is easily offset by benefiting from the advantages outlined above.

At Fry-IT, in 2004, it seemed like a no-brainer to convert the entire infrastructure to virtualized setup, and we've never looked back. I'll give more details on our technology choices in future posts.




Comment

 



hide my email address.

Your email address will be encoded to prevent email-extraction spiders from reading it so you won't get spammed if you decide to show your email address.