1. A method of providing backup functionality for backing up and restoring data stored in a cloud computing system, the method comprising: identifying, using a backup application, a plurality of virtual machines of a virtual application in the cloud computing system, where the virtual application is a logical container for the plurality of virtual machines; wherein the cloud computing system comprises a cloud service layer for providing storage access to a user, a virtual center layer that hosts the backup application and provides computing resources for a plurality of virtual data centers accessible via the cloud service layer, and a storage layer providing storage resources for the plurality of virtual data centers; wherein the virtual application is accessible via one of the virtual data centers of the cloud service layer; and wherein the backup application interfaces with a plurality of plug-in modules to provide backup functionality for the plurality of virtual machines of the virtual application, where each plug-in module performs an operation to place an application of any of the virtual machines in a state to accept backup functionality, where the state of the application is specific to an application type; accessing, using the backup application, a workflow that defines a plurality of actions for performing a backup functionality for each of the plurality of virtual machines of the virtual application, where each action of the plurality of actions corresponding to the backup functionality is performed by a corresponding plug-in module; and for each action of the plurality of actions identified from the workflow: (i) accessing a list of a plurality of plug-in modules by the backup application, each of the plurality of plug-in modules comprising a program associated with the backup application, the association being made before runtime of the backup application, and requiring an interface with the backup application to function and provide additional functionality to the backup application, (ii) selecting a plug-in module from the list that is designed to perform the action on a given virtual machine of the virtual application, and (iii) executing the selected plug-in module to perform that action on the given virtual machine, the selected plug-in module being executed by the backup application; wherein one of the plurality of plug-in modules performs one or more unique quiesce operations for placing an application in a state for enabling the backup functionality, the state varies from one application to another application; and wherein one of the plurality of plug-in modules performs one or more unique unquiesce operations after the quiesce operation that places the application to a state before the quiesce operation.