1. A method of maintaining update history of a virtual machine (VM), the VM having a version number, the method comprising: continuously monitoring a state of the VM, the monitoring of the state including detecting updates in configurations and applications of the VM; capturing changes in a status of the applications and the configurations; updating metadata of the VM when a change in the configurations or the applications is detected; and incrementing the version number of the VM.