1. At a computer system including one or more processors and system memory, the computer system interoperating with one or more other computer systems in a distributed system, a method for resuming execution of a cluster from saved cluster data, the method comprising: an act of deploying a cluster of compute resources within the distributed system, the deployed cluster of compute resources defining a current topology for executing a job, and the current topology indicating a current number of nodes in one or more node groups, a current number of cores at each node, a current memory size at each node, and a current naming patter at each node; an act of executing a portion of the job on the deployed cluster, execution of the portion of the job utilizing cluster data corresponding to the job; an act of persisting cluster data that represents the current cluster topology of the deployed cluster of compute resources in an external database that is separate from the deployed cluster of compute resources; an act of taking down the deployed cluster of compute resources after persisting the cluster data for the current cluster topology but prior to completing execution of the job, taking down the deployed cluster leaving a remaining portion of the job uncompleted; an act of receiving a command to resume execution of the deployed cluster of compute resources in order to complete the job; in response to the command to resume execution, an act of identifying the persisted cluster data that represents the cluster topology in the external database, and then re-deploying the cluster of compute resources within the distributed system based on the cluster topology that was identified in the persisted cluster data; and an act of resuming execution of the job on the re-deployed cluster of compute resources to complete the remaining portion of the job, completion of the remaining portion of the job utilizing the persisted cluster data.