Weighing The Scale
Much of the time in class today was spent talking about scalability. Scalability is an interesting game because there are many ways to build scale into an infrastructure.
One approach is to build fewer, higher powered hosts. This is known as “scale up” architecture. With this architecture there are fewer hosts to manage and a higher virtual machine density. One obvious disadvantage to this is that any single host failure will have a greater impact on the overall infrastructure. Another approach is to build many lower powered hosts. This is known as “scale out” architecture. With this architecture there are more hosts to manage. However, virtual machine density will be small, so a host failure will have less of an impact on the overall infrastructure.
In my opinion, there needs to be a combination of both. There is a delicate balance between scale up and scale out. Too much scale up and there is a greater chance of a failure taking down a critical service. Too much scale out and the density of virtual machines becomes so low that virtualization almost becomes meaningless (aside from the benifits of high availability). I believe this balance will be different in every environment. It is the most important piece of information to determine in any project, yet it is often very difficult and can have long standing effects.
So the question becomes: scale up or scale out, or a combination of both?
Date: Wednesday 29 Jul, 2009
Know Thy App
Today I started VMware design class, which is shaping up to be a fascinating journey. The class really is affirming many design conclusions that I previously came to on my own. It also is bringing back many of the concepts taught in the ‘Install and Configure’ and ‘Deploy, Secure, Analyze’ classes, which is good to see. My assumptions and research have not been far off, which was good news for me.
One concept that the instructor keeps bringing up is to Know Thy App. What this means is that any successful virtualization project begins with a thorough understanding of the applications that are being virtualized. I never really gave it thought, but this is the most important part of being a VMware engineer: the understanding of many, many, many different applications.
An exceptional systems engineer knows three or four applications, and probably only one or two of them inside and out (obviously there are exceptions to this). An exceptional VM engineer really needs to know every application that would come in contact with his environment in extreme detail. For example, when an application developer comes and claims that virtualization is making their application slow, the VM engineer needs to have the knowledge to analyze their application on all levels and find the issue. The solution may or may not be at the fault of the virtual environment (my guess is it it’s not, but I’m obviously biased).
So, KNOW THY APP.
