1. A method comprising: at a device including a processor and a non-transitory memory: obtaining, for a multi-tier application comprising a plurality of components, dependency information for each component in the plurality of components, wherein the dependency information for a component in the plurality of components comprises information indicating prerequisites for initiating execution of the component; deriving a cloud agnostic representation of the multi-tier application based, in part on the dependency information, wherein the cloud agnostic representation of the multi-tier application comprises metadata for the multi-tier application without cloud-specific information; provisioning a plurality of virtual machines to run the plurality of components of the multi-tier application based on the dependency information; deriving, from the cloud agnostic representation, cloud-specific commands for deploying the multi-tier application on the plurality of virtual machines; and deploying the multi-tier application on the plurality of virtual machines using the cloud-specific commands in order to obtain a cloud specific implementation of the cloud agnostic representation of the multi-tier application.