The technology trade rags are filled with all the latest new products allowing virtual machines (VM) to run on varieties of platforms and chipsets. For many of us, this means running many versions of Windows or Linux on one machine simultaneously; however, it could be just about any OS supported by the VM software of your choosing. While the obvious solutions this could fill would be centralized management of the workstations within a company, there are some more subtle ideas that appear to be taking hold. (Duh disclaimer: It’s possible that I’ve ignored these ideas in the past, but as my confidence slowly grows with VMs in the test lab, these ideas don’t seem as farfetched as before.)
Instead of shipping software to customers for installation, imagine shipping a VM with the software already installed on the OS. If the customer was running compatible VM server software, they could just load an instance of the new OS with software already installed, configured and ready to go. In fact, as this article eludes, the customer could ship a production copy back to the software company for maintenance and/or an upgrade, which could be tested before being shipped back to the customer.
Granted, there are some hurdles to overcome just as the introduction of multi-threading and multiple CPUs had issues, which means the hardware to support all of this will have to be faster and more robust than ever. Hard disk I/O and resource utilization will be an issue for the foreseeable future, but the more time intensive problems of debugging environmental software problems could be minimized. In some cases, the changes to a customer’s environment might be as easy as updating to a patched VM.
While those of us in the enterprise software industry know that the customer’s actual environment is more often a contributor of a problem than the software itself, the approach does provide some advantages in supportability. Does anyone know of software vendors using this approach yet? I wonder how many years away we are from seeing software vendors only support certain VM server software, which would be just the opposite for most vendors today? Are VM standards being set, or will we see the same compatibility problems that occurred with J2EE?