A method for deploying a multi-node distributed application having a plurality of specialized functional components that are executed on a plurality of different nodes, including at least a message bus functional component, wherein the message bus functional component provides a common interface through which the plurality of functional components of the application communicate and receive notifications, the method comprising: receiving, by a deployment director, a request to deploy the application; determining, by the deployment director based on a deployment manifest, a logical infrastructure to host the application, wherein the deployment manifest defines a plurality of jobs that may be performed by one or more stem cell virtual machines, VMs, as one or more functional components in the application and wherein the logical infrastructure comprises one or more resource pools that associate stem cell VMs with a pre-defined VM template that includes a base operating system, an agent, and supporting libraries, runtimes, and/or applications to perform one or more specialized tasks of the specialized functional component within the multi-node application; requesting, by the deployment director from an infrastructure platform and based on the logical infrastructure, provision of one or more stem cell virtual machines, which are based on the pre-defined VM template; creating, by the infrastructure platform, one or more instances of the stem cell VMs having resource and network configurations as specified by the deployment manifest; providing, by the deployment director to the one or more instances of the stem cell VMs, job configuration and data for each job specified by the deployment manifest; and transforming, by the respective agent of each stem cell VM, the respective stem cell VM into a node for the application, including transforming one of the stem cell VMs to perform a message bus job which implements the message bus functional component. receiving, by a deployment director, a request to deploy the application; determining, by the deployment director based on a deployment manifest, a logical infrastructure to host the application, wherein the deployment manifest defines a plurality of jobs that may be performed by one or more stem cell virtual machines, VMs, as one or more functional components in the application and wherein the logical infrastructure comprises one or more resource pools that associate stem cell VMs with a pre-defined VM template that includes a base operating system, an agent, and supporting libraries, runtimes, and/or applications to perform one or more specialized tasks of the specialized functional component within the multi-node application; requesting, by the deployment director from an infrastructure platform and based on the logical infrastructure, provision of one or more stem cell virtual machines, which are based on the pre-defined VM template; creating, by the infrastructure platform, one or more instances of the stem cell VMs having resource and network configurations as specified by the deployment manifest; providing, by the deployment director to the one or more instances of the stem cell VMs, job configuration and data for each job specified by the deployment manifest; and transforming, by the respective agent of each stem cell VM, the respective stem cell VM into a node for the application, including transforming one of the stem cell VMs to perform a message bus job which implements the message bus functional component.