1. A computer implemented method for replicating a software application, the computer implemented method comprising: executing the software application on a primary node to form a master application; identifying resources and dependencies required by the master application to form required resources; updating the required resources dynamically on the primary node; generating a structure of the master application and a dynamic graph of the required resources from the required resources; replicating the resources by transferring the structure to a set of secondary nodes via a network to form a replica by checkpointing the resources on the set of secondary nodes, wherein the set of secondary nodes comprises one or more secondary nodes, wherein the replicated resources on the set of secondary nodes comprise a virtual memory and calling stack of each process of the master application, at least one system resource used by the master application, and data written on disks used by the master application, wherein the checkpointing has an adjustable period to optimize the difference between the recovery time after switching to the set of secondary nodes and the quantity of information to be captured and transferred to the set of secondary nodes; restoring the replica on the set of secondary nodes to form a set of clone software applications, wherein the set of clone software applications comprises one or more clone software applications; executing the set of clone software applications on the set of secondary nodes, without loss of context; and updating the set of clone software applications with incremental updates of the required resources of the master application to create a hot standby application.