1. A method for upgrading multiple instances of a distributed application, the method comprising: receiving structural information about the distributed application, the structural information defining roles of the distributed application and comprising relationships between the roles within the distributed application, wherein the roles are portions of software associated with the distributed application; based on the structural information, determining whether any of the roles are interrelated; assigning a first quantity of the roles that are determined to be interrelated to a first update domain and a second quantity of roles that are determined to be interrelated to a second update domain, wherein the first quantity and the second quantity comprise separate roles of the distributed application, and further wherein an update domain comprises a group of portions of the software associated with the distributed application that can be taken down for upgrade at the same time without disturbing the availability of the other portions of the distributed application; storing indications that the first quantity of roles are assigned to the first update domain and the second quantity of roles are assigned to the second update domain; receiving an indication to upgrade a role; based on the structural information, strategically selecting one of the two or more update domains to take offline; and precluding access to the roles assigned to the one of the two or more update domains.