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, the metadata of the VM having the update history of the VM that includes a previous version number of the VM and at least one change in the configuration and the applications of the VM corresponding to the previous version number of the VM; and incrementing the version number of the VM in response to the change in the configurations or the applications being detected, wherein at least one of the continuously monitoring, the capturing, the updating and the incrementing is executed by a computer system.