1. A system for managing a software upgrade in a distributed computing system having a plurality of nodes that provide at least one fault-tolerant service, the system comprising: at least one server which is communicatively connected to the plurality of nodes and which is adapted to receive a software release, and to upgrade each of the plurality of nodes with the software release in a sequential manner, whereby the at least one fault-tolerant service remains available while the software upgrade is in progress.