1. A computer implemented method for upgrading a multi-tiered application, the computer implemented method comprising: responsive to receiving a request to upgrade a multi-tiered application, wherein components of the multi-tiered application are deployed across a plurality of virtual machines, selecting an appropriate integrated patch for the upgrade to form a selected integrated patch, wherein the selected integrated patch includes an integrated set of patches for the components of the multi-tiered application, state update data, and order constraints; upgrading the components of the multi-tiered application that are specified in the selected integrated patch by using the integrated set of patches and the order constraints; updating a state of the components of the multi-tiered application that were upgraded to form an updated state of the multi-tiered application by using the state update data; and saving the updated state of the multi-tiered application to storage.