1. In a cloud computing environment comprising a cloud deployment platform with an application management server executing thereon, and a cloud management server configured to manage a plurality of virtual machines deployed in a cloud infrastucture, a method of deploying a cloud based application, the method comprising: reading a deployment plan for the cloud based application, the deployment plan comprising a first plurality of tasks to be executed in the cloud infrastructure; determining that one or more custom tasks are required to be executed in the cloud infrastructure; inserting the one or more custom tasks into the first plurality of tasks to generate a second plurality of tasks; and transmitting the second plurality of tasks to the cloud management server for execution in the cloud infrastructure.