I was asked some questions recently about vitualisation best practices and it really threw me into thinking about what “Best Practice” really means.
It’s a common enough term used in IT. Vendor releases piece of technology and has supporting documentation on how to install and configure the technology. If you’re lucky the vendor also provides some use cases which probably highlight the technology’s strength.
As the people who use the technology become more familiar with it over time, they will learn, memorise and hopefully document what the best way to use the technology is and how to avoid its pitfalls, its common mistakes and how best to tune it for what ever it is needs to be achieved. As this now explicit knowledge is shared it can start to take on the “Best Practice” feeling. Vendors may even take this knowledge and documentation that was out in the public realm and turn it into a Whitepaper or some such documentation. This sort of documentation from a vendor accelerates the acceptance of the knowledge as “Best Practice”.
I would call this example “Industry Best Practice”. It is a collection of knowledge learnt over time and through experience that the best way to deploy/configure/maintain this piece of technology to achieve A, B or C is by doing things X, Y and Z.
This differs from something I suggest is called “Vendor Best Practice” where the vendor has said, clearly in their documentation that a particular feature or setting should be set in this precise way in this scenario. A good example of this is the VMFS alignment in VMware datastores.
There is a third realm of “Best Practice” which I hesitate to call “Practice Best Practice”. I would describe this as the way a business or person goes about operating their IT (not just Virtualisation) environments. This should not be confused with an organisations policies or procedures. Policies are overriding business rules such as “Gifts from clients must go into the company gift registry”. Procedures are rules or recipes that describe how specific tasks are started, conducted and completed. I suggest that a “Practice Best Practice” describes a high level holistic way in which an organisation operates its IT. An example of this would be an inclusive goal such as “All new virtual machines that go into the production cluster are automatically added to the backup regime in such as way as to guarantee recovery of the virtual machine in a disaster recovery scenario”.
For a few decades now IT has grown used to doing things in the physical world. One server, doing single or multiple things with little contention for resources. In fact, in the Windows world, it became the norm to accept that a server operating with an average ~2% CPU usage (for example) was normal. In larger IT environments it became accepted that a new app MUST live on its own dedicated server so that it could be silo’d in its own little operating system world and not interfere with the other children in the room. Lead times for server builds were measured in weeks or even months and business units that dealt with IT had come to expect that as normal. (And often bemoaned how slow IT can move).
Now we have Virtualisation which turns these ways of doing things on its head. It allows us to do more with less. We can provision new servers in a matter of hours instead of weeks, its now far more economical to silo our apps into individual servers and our windows boxes still only use ~2% of the CPU while the other ~98% is used to run other servers! What a fabulous world we live in. And that’s barely scratched the surface of the benefits of vitualisation.
So, how does “Industry Best Practice”, “Vendor Best Practice” and “Practice Best Practice” apply to virtualisation?
I have my thoughts to share on the matter and will do so in the coming days.