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 infrastructure, a method of deploying a cloud based application, the method comprising: reading a deployment plan for the cloud based application, the deployment plan comprising one or more deployment phases and a first plurality of tasks, independent of the cloud infrastructure, divided among the one or more phases to be executed in the cloud infrastructure; determining that one or more custom tasks are required to be executed in the cloud infrastructure; inserting a new deployment phase into the deployment plan, the new deployment phase comprising the one or more custom tasks; and transmitting the one or more custom tasks and the first plurality of tasks to the cloud management server for execution in the cloud infrastructure.