Software-Defined Availability: Redefining Uptime for the Cloud