Best practices, I feel, mean different things to different people. For me, best practices are a few things. They are a list of vendor recommendations for product implementation, they come from my own real-world experiences, and they are informed by what I see my peers doing in the IT community. I have learned to accept that not all best practices come from vendors, and that the best practices list I have compiled is essentially a set of implementation guidelines aimed at ensuring the highest quality of deployment.
So how does this apply to virtualization and the best practices you follow? Let’s chat!
Getting ready to virtualize your servers or workstations?
According to Gartner, enterprise adoption of server virtualization has nearly doubled in the past couple of years. That doesn’t even include workstation virtualization which is also becoming more relevant to the enterprise as product options mature. So, if your organization isn’t virtualizing an operating system today, it’s highly probable that it will in the future. Understanding how to prepare for this type of business transformation according to the latest best practices/guidelines will be key to your deployment success.
Preparing according to best practices/guidelines
As mentioned, it’s important to have a solid foundation of best practices/guidelines for your virtualization implementation. Diving right in, here are some guidelines that will get you started with a successful virtualization deployment:
- Infrastructure sizing – Vendors will provide you with great guidance on where to begin sizing your virtual environment, but at the end of the day, all environments are different. Take time to POC/Test within your environment and build out your resource calculations. Also, be sure to involve the business users to help ensure that you are providing the ultimate performance experience before you finalize your architectural design. Also, when sizing, don’t use averages. You will come up short and performance will suffer.
- Know your software – A key part of the performance you will get from your virtualized environment will depend on the applications you are running. It’s important to baseline test to obtain a solid list of applications in your environment. Then take this a step further to understand the number of resources used by your applications. You can see that even the smallest software upgrade can impact performance by looking at the following example: Microsoft Office 2016 consumes up to 20% more resources than previous versions (2007/2010). That’s a big deal if it wasn’t considered in advance because it could severely impact the user performance experience.
- Image Management – One of the best things about virtualization is that it can greatly reduce your work effort when it comes to patch management and operating system maintenance. The value of this can only be seen when you deploy as few operating systems as possible. So, when you are deciding on use cases, keep this in mind.
- Use application whitelisting instead of anti-virus – Anti-virus solutions have proven to impact the performance of virtualization environments. If you must run something at the operating system level, I would strongly suggest using application whitelist instead. Having an enforced approved list of applications can provide a more secure platform without taking a performance hit.
- Protect your data – You just spent all this time deploying virtualization to make sure that your virtualization databases are backed up. Heck, your entire environment should be backed up. Taking this even one step further, be sure to include high availability and even disaster recovery in your design. In my experience, if an environment isn’t ready for the worst, you can end up in a pretty bad situation that could include an entire rebuild. If you cannot afford the business downtime in a worst-case scenario, then button things up to be sure that your plan includes proper data protection.
- The right infrastructure – Vendors are pretty good about creating guidelines about the type of infrastructure their virtualization platforms will run on, but I strongly suggest that you take a look at both hyper-converged infrastructure, and use of GPUs. If you expect the performance of your virtual systems (especially with virtual workstations) to be the same as what your users experience today, these infrastructure options should at least be part of your conversation. They'll likely end up being a part of your deployment design.
- Automate everything you can – Automation can be a very powerful way to help ensure that you are using your time efficiently and wisely. When it comes to automation, keep the following in mind: If you are going to do manual automation, remember that there is a certain amount of time being spent to complete the work. In some cases, if there is a third-party tool that can help with automation, that may be worth considering. Third-party automation tools typically come with an upgrade path that you won’t get when you home grow your code. And when the person that wrote the code leaves, there goes that support, too. There isn’t one single answer here. Just remember that automation is important, so you should be thinking about this if you aren’t already
For virtualization success, be sure to fully research your environment up front. This research will help you easily determine if any/all of the above best practices/guidelines will create success for your virtualization deployment. Cheers!