A method of deploying applications to a cloud computing environment, the cloud computing environment comprising a cloud management server configured to manage a plurality of virtual machines (140 1 - 140 n) deployed in a cloud infrastructure, the method comprising: receiving a request to provision an application; generating a unique identifier for a first virtual machine on which the application is configured to execute; and transmitting a request to deploy the first virtual machine; characterised in that the method is for tracking errors when deploying applications to the cloud computing environment which further comprises a cloud deployment platform with first and second deployment modules executing thereon, wherein the first deployment module is configured to model the application using separate virtual machines for each application component and the second deployment module is configured to provision the virtual machines in the cloud computing environment, and in that the method further comprises receiving the request to provision the application at the first deployment module; generating the unique identifer for the first virtual machine at the first deployment module; transmitting the request to deploy the first virtual machine from the first deployment module to the second deployment module whereby the second deployment module communicates with the cloud management server to instantiate the virtual machine, the request including the unique identifier for the first virtual machine; detecting an occurrence of a deployment error corresponding to the first virtual machine by one of the second deployment module and the cloud management server; monitoring, by the first deployment module, a log based on the unique identifier for the first virtual machine, the log containing an error record that identifies an occurrence of the deployment error corresponding to the first virtual machine; and generating, by the first deployment module, an error message corresponding to the first virtual machine on which the application is configured to execute, based on the monitoring. receiving a request to provision an application; generating a unique identifier for a first virtual machine on which the application is configured to execute; and transmitting a request to deploy the first virtual machine; characterised in that the method is for tracking errors when deploying applications to the cloud computing environment which further comprises a cloud deployment platform with first and second deployment modules executing thereon, wherein the first deployment module is configured to model the application using separate virtual machines for each application component and the second deployment module is configured to provision the virtual machines in the cloud computing environment, and in that the method further comprises receiving the request to provision the application at the first deployment module; generating the unique identifer for the first virtual machine at the first deployment module; transmitting the request to deploy the first virtual machine from the first deployment module to the second deployment module whereby the second deployment module communicates with the cloud management server to instantiate the virtual machine, the request including the unique identifier for the first virtual machine; detecting an occurrence of a deployment error corresponding to the first virtual machine by one of the second deployment module and the cloud management server; monitoring, by the first deployment module, a log based on the unique identifier for the first virtual machine, the log containing an error record that identifies an occurrence of the deployment error corresponding to the first virtual machine; and generating, by the first deployment module, an error message corresponding to the first virtual machine on which the application is configured to execute, based on the monitoring.