Computer-implemented method of automating actions for one or more applications executed via a platform on a cloud, the platform is a persistent distributed application and a web services application and runs on data centers in the cloud, using at least one virtual machine in a guest system, wherein the platform provisions the guest system using API calls to the cloud Infrastructure-as-a-Service, laaS, providers via cloud driver, the platform is a Simulation-as-a-Service cloud platform that provisions simulation systems on the cloud on demand, and includes a Model Repository and a Simulation Environment Controller which interacts with the application(s) or components thereof on the virtual machines of the guest systems to provide simulation services to users, the platform further includes a platform application program interface through which user web clients can access the platform via a portal, the platform includes a data store, which stores and maintains user-defined automation actions and automation graphs data, content data, and metadata, the user-defined automation actions and automation graphs data includes information corresponding to the user-defined automation actions and their causal relationship to each other and/or derived automation graphs, and are used to initiate and control the automation of actions in the guest system, when the guest system and its virtual machine is launched, each virtual machine including a guest operating system, a guest agent and at least one of the one or more applications to be executed on the virtual machine, wherein the platform instantiates each virtual machine in the guest system and records information about the virtual machine in a registry,the guest system includes the virtual machine executable applications, the guest agent, and the guest operating system, the guest operating system is an operating system capable of being executed in the guest system, and which supports the virtual machine executable application, and the guest agent, and wherein each of the one or more applications is usable by a user, the method comprising: storing in a memory user-defined automation actions and causal relationships between the user-defined automation actions from which an automation graph is derived for the application to be executed on the virtual machine on the guest system, wherein the user-defined automation actions and causal relationships are provided by the user; launching the guest system and the virtual machine via the platform; and executing the user-defined automation actions via the guest agent of the virtual machine at one or more stages over the lifecycle of the application according to the automation graph using an algorithm after the guest system and the virtual machine are launched, wherein the guest agent is configured to implement the user-defined automation actions as specified by the user according to the automation graph and returns the result to the platform driver, wherein the guest system is ephemeral and the platform provisions and manages the guest system on demand. storing in a memory user-defined automation actions and causal relationships between the user-defined automation actions from which an automation graph is derived for the application to be executed on the virtual machine on the guest system, wherein the user-defined automation actions and causal relationships are provided by the user; launching the guest system and the virtual machine via the platform; and executing the user-defined automation actions via the guest agent of the virtual machine at one or more stages over the lifecycle of the application according to the automation graph using an algorithm after the guest system and the virtual machine are launched, wherein the guest agent is configured to implement the user-defined automation actions as specified by the user according to the automation graph and returns the result to the platform driver, wherein the guest system is ephemeral and the platform provisions and manages the guest system on demand.