1. An automated upgrade subsystem within a distributed service-based application, multiple instances of which execute on multiple physical computer systems within a distributed computer system, the automated upgrade subsystem comprising: an upgrade controller that displays an upgrade interface on a display device and that launches an automated upgrade in response to user input to an input feature of the upgrade interface by transmitting an initiate-upgrade request to a selected upgrade service; and upgrade services, within components of the distributed service-based application, that upgrade themselves and request upgrades from any subordinate upgrade services within lower-level components of the distributed service-based application, each upgrade service determining whether or not an upgrade is possible, in response to an initiate-upgrade request, when the upgrade is possible, preparing and storing a snapshot, when a snapshot has been successfully prepared, persistently storing a target version of the component and restarting the component, and when the target version of the component is successfully restarted, verifying the target-version functionality.