Takeaway: Virtualization should be the de facto standard in deploying workloads today. However, there are valid exceptions. Rick Vanover lists four of them in this blog post.
Don’t get me wrong, I’m 100% pro virtualization. But, I do realize that there are some scenarios where a virtual machine isn’t the best solution. I find the use cases fewer and farther between, but they are out there today. Here are a few scenarios where I still see virtual machines not fitting the bill:
#1 Highest performance
As a general rule, the native hardware versus virtual machine performance discussion is a no contest. You “can” make a virtual machine outperform a physical machine running on native hardware; but not in a like-for-like configuration. If you need the utmost performance; a physical machine may still be the way.
#2 Application requirements
Again, I’m a VMware and Hyper-V guy, so I want to see everything end up as a virtual machine. But really – in today’s modern times – do we still have application requirements that don’t support virtual machine configurations? What really needs to change is the application, then. We can do so much more with the application as a virtual machine. While I know there are applications that don’t support virtualization, they are there. Let’s work on removing them.
#3 Application maturity
Just as I critique the application in the previous point, a mature application that is fully stateless is a welcome change to the normal application profile. There are a number of private cloud solutions that simply boot up (usually via PXE) and take on a role in a protected arrangement for a larger application. These larger applications tend to be very resource-intensive and dynamic in nature. Further, the data for these solutions is usually distributed and self-protected to the level of equipment that is in play.
#4 Full separation
One of the critical design elements of virtualization (and any infrastructure technology for that matter) is to introduce as many layers of separation as possible for redundancy. While I’m not a fan of holding on to the single physical domain controller, there are valid physical machine configurations for full separation from the virtual infrastructure. This can include security tools or backups of the virtual machines. In my opinion, the reasons are getting weaker. But, if we deploy solutions on virtual machines that really don’t fit in a virtualized infrastructure; that may be something to avoid.
Do you have situations where you can’t use a virtual machine for new deployments? Share your exceptions to the norm below.