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, 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 to a first update domain and a second quantity of roles to a second update domain, wherein the first quantity and the second quantity comprise separate roles; and 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.