1. A computer implemented method for zero downtime software upgrade of a distributed computer system, the method comprising: receiving a software update for upgrading one or more software components of a plurality of software components running on a plurality of application server nodes of a plurality of instances of a cluster, wherein each instance of the plurality of instances of the cluster runs at least one application server node of the plurality of application server nodes; redirecting one or more service requests from a first instance of the cluster to a second instance of the cluster for an execution, wherein the one or more service requests are executed by the plurality of software components; redirecting an execution in progress of a partially executed service request from the first instance of the cluster to the second instance of the cluster, wherein the execution in progress proceeds from a state that is saved on a public store by the first instance of the cluster; applying the software update to an installation of the one or more software components running on an application server node of the first instance of the cluster, wherein the software update is applied in parallel to the execution of the one or more service requests and with the proceeding execution in progress of the partially executed service request redirected from the first instance to the second instance of the cluster; redirecting at least one service request from the second instance of the cluster to the upgraded first instance of the cluster for an execution; redirecting an execution in progress of a partially executed service request from the second instance of the cluster to the upgraded first instance of the cluster, wherein the execution in progress proceeds at the upgraded first instance of the cluster from a state that is saved on the public store by the second instance of the cluster; and applying the software update to an installation of the one or more software components running on an application server node of the second instance of the cluster, wherein the software update is applied in parallel to the execution of the at least one service request and with the proceeded execution in progress of the partially executed service request redirected from the second instance to the upgraded first instance of the cluster.