Upgrading a customer’s VMware environment requires looking at more than just upgrading the VMware software.  You need to look at other items such as host firmware, versions of backup software, VDI solutions that may plug in to vCenter, host hardware age, and the upgrade path for the VMware versions you are working with.  

Proper planning of the upgrades is required to make this successful.  Patches do not require much planning, but major version upgrades typically require looking at the bigger picture in order to be successful. 

VMware and their partners provide an easy way to verify that your upgrades will not cause an impact to the customer.  These commonly linked pieces of infrastructure are listed below along with their recommended remediation path. 

Host Firmware

Host firmware versions need to be examined as part of any VMware upgrade.  You can check the hardware vendor’s website to see which versions are available for the host hardware you are working with.  Typically, it is best to upgrade the host firmware to a version that matches close to the date that the version of VMware you are upgrading to was released.  Example, if you are running vSphere 5.5 and plan to upgrade to 6.7, you probably need to do a phased firmware update since this jump in vSphere versions covers almost 7 years.  When installing ESX, you typically will download a custom ISO that matches the hardware vendor.  This custom ISO has drivers specific to the hardware vendor and their firmware revisions.  You can check the VMware compatibility guide for details about each piece of hardware and the versions of ESX they are supported with.

Link to Compatibility Guide:
https://www.vmware.com/resources/compatibility/search.php

Host Hardware Age

Host age needs to be taken into account when upgrading ESX versions.  VMware provides a compatibility guide where you can search for the model of the server or individual hardware components and see what versions of ESX they are supported with.  This makes it easy to see how far you can upgrade ESX to a supported version.  As new versions of ESX are released, VMware will phase out support for older hardware.

Link to Compatibility Guide:
https://www.vmware.com/resources/compatibility/search.php

vCenter and ESX Interoperability

As new versions of vCenter and ESX are released, you will need to check the VMware Interoperability matrix to see which versions of vCenter can manage which versions of ESX.  You will need to take this into account when upgrading versions where there is a large delta in versions numbers.  Example, you cannot upgrade ESX 5.5 to 6.7 without going to version 6.0 first.  This means that you need to make sure you have a version of vCenter that can manage these ESX versions as you upgrade them.  Somethings this requires standing up a temporary vCenter server just to make this jump in versions.  Example, stand up a new 6.0 temporary vCenter, upgrade ESX from 5.5 to 6 and join to the new temp vCenter.  Deploy a new 6.7 vCenter and join the 6.0 hosts to 6.7 vCenter.  Upgrade 6.0 hosts to 6.7. 

Link to Interoperability Matrix:
https://www.vmware.com/resources/compatibility/sim/interop_matrix.php#interop&2=&1=&hideUnsupported=false

Third Party Software

There are many types of third-party software that work directly with vCenter server and ESX.  These types of software range from VDI solutions like Horizon and Citrix to backup solutions like VEEAM and Rubrik.  You need to ask your customer what versions of each of these products they are using, and check with that vendor to see if their version will work with the new version of vSphere you are moving to.  Typically, you will need to upgrade these third party products first as the API calls that they use will change as you move to newer versions of vSphere.  Sometimes a small patch is all that is needed, but occasionally it’s a major update.  Check with these vendors before you start any upgrades as sometimes these tools are more complicated to upgrade than vSphere itself.  For VMware products like Horizon, NSX, VRA, etc, you can check the VMware Interoperability Matrix.

Link to Interoperability Matrix:
https://www.vmware.com/resources/compatibility/sim/interop_matrix.php