1. A method for managing application deployment in a cloud environment, the method comprising: receiving, by an application manager configured to manage the cloud environment, a client request to perform a deployment operation on an application in the cloud environment; retrieving, by the application manager, a current state of the application in the cloud environment; determining, by the application manager, whether the deployment operation is allowed based on a state machine and the current state, wherein the state machine includes a plurality of application states, a plurality of state operations, and relationships among the plurality of application states and the plurality of state operations; and in response to the determination that the deployment operation is allowed, generating, by the application manager, a deployment plan based on a blueprint associated with the application, wherein the blueprint defines how to perform the deployment operation in the cloud environment, and executing, by the application manager, the deployment plan to perform the deployment operation in the cloud environment.