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 of the application, 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 a determination that the current state of the application is a pre-state associated with a state operation from the plurality of state operations, and 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, executing, by the application manager, the deployment plan to perform the deployment operation in the cloud environment, and adjusting the current state of the application based on the state machine and a status of the performing of the deployment operation.