Upgrading Virtual Appliances
In every SDDC workshop I tried to persuade the audience that the virtual appliances (particularly per-application instances of virtual appliances) are the way to go. I usually got the questions along the lines of “who will manage and audit all these instances?” but once someone asked “and how will we upgrade them?”
Short answer: you won’t.
The beauty of running virtual machines is that it’s easy to destroy them and create new ones, so here’s how I would upgrade my virtual appliances (anyone vaguely familiar with properly-deployed cloud-based applications will immediately recognize the pattern):
- Build a new VM template from the new software distribution (assuming the vendor doesn’t supply the appliance in a ready-to-use format);
- Start the new VM in test environment and copy the current configuration into the new virtual machine.
In the ideal world, the appliance would fetch its configuration from a central database resulting in a completely stateless setup, but we’re not there yet.
- Stress-test the new VM (you do have unit tests verifying whatever your appliance should be doing, right?)
- When you’re ready for the change, disconnect the current appliance VM from the network and connect the VM with upgraded software (and identical configuration) to the network.
- If the new software crashes (because $vendor QA) disconnect the new VM and reconnect the old one.
- Once you’ve mastered all the steps, automate the process.
Want to learn how to do the last step? Why don’t you join the Building Network Automation Solutions online course?
Some vendors are now allowing you have one universal license to tackle this particular issue, but it comes with its own "cost".