We present our approach for deploying and managing distributed component-based applications. A Desired State Description (DSD), written in a high-level declarative language, specifies requirements for a distributed application. Our infrastructure accepts a DSD as input, and from it automatically configures and deploys the distributed application. Subsequent violations of the original requirements are detected and, where possible, automatically rectified by reconfiguration and redeployment of the necessary application components. A constraint solving tool is used to plan deployments that meet the application requirements.
Another paper by some of the same authors @cite_15 focuses on the problem of initial placement, which they call the (CPP). The authors describe an AI planning algorithm called for solving the CPP which is defined to have five elements: the network topology, the component deployment behaviour, the application framework, the link crossing behaviour and the CPP goal. The network topology is described as a set of links between nodes; the application is defined as sets of interfaces and components. The link crossing behaviour is defined by functions which describe properties of inter-machine links. Finally, the CPP goal describes the desired state of the system with respect to placement. The algorithm utilises AI planning techniques to reduce the size of the search space in order to achieve scalability. is implemented as a pluggable component of the framework described above.
@cite_15
2245651317
The controller placement problem (CPP) is one of the key challenges of software defined networks to increase performance. Given the locations of switches, CPP consists of choosing the controller locations that minimize the latency between switches and controllers. In its current form, however, CPP assumes a fixed traffic and no existing solutions adapt the placement to the load. In this paper, we introduce the dynamic controller placement problem that consists of (i) determining the locations of controller modules to bound communication latencies, and of (ii) determining the number of controllers per module to support the load. We propose, LiDy, a solution that combines a controller placement algorithm with a dynamic flow management algorithm. We evaluate the latency and the controller utilization of LiDy on sparse and dense regions. Our results show that, in all settings, LiDy achieves a higher utilization than the most recent controller placement solution.