Dynamic Upgrades for High Availability Systems