Towards architecture-based management of platforms in the cloud
System management is becoming increasingly complex and brings high costs, especially with the advent of cloud computing. Cloud computing involves numerous platforms often of virtual machines (VMs) and middleware has to be managed to make the whole system work cost-effectively after an application is deployed. In order to reduce management costs, in particular for the manual activities, many computer programs have been developed remove or reduce the complexity and difficulty of system mamnagement. These programs are usually hard-coded in languages like Java and C++, which bring enough capability and flexibility but also cause high programming effort and cost. This paper proposes an architecture for developing management programs in a simple but powerful way. First of all, the manageability of a given platform (via APIs, configuration files, and scripts) is abstracted as a runtime model of the platform's software architecture, which can automatically and immediately propagate any observable runtime changes of the target platforms to the corresponding architecture models, and vice versa. The management programs are developed using modeling languages, instead of those relatively low-level programming languages. Architecture-level management programs bring many advantages related to performance, interoperability, reusability, and simplicity. An experiment on a real-world cloud deployment and comparisonwith traditional programming language approaches demonstrate the feasibility, effectiveness, and benefits of the new model based approach for management program development.
software architecture cloud management models at runtime