Distributed computing systems (DCS) host a wide variety of enterprise applications in dynamic and uncertain operating environments. These applications require stringent reliability, availability, and quality of service (QoS) guarantee to maintain their service level agreements (SLAs). Due to the growing size, increasing complexity, and varying nature of applications hosted in DCS, development of a single autonomic performance management system is difficult to maintain the SLAs of all of these applications. Therefore, a customizable autonomic performance management system is introduced in this paper, by using model-integrated computing methodologies, which allow application domain architects to develop meta-models of each system, various system modules with attributes, their connectivity, constraints, and visualization aspects. Then, domain engineers can define the initial settings of the application, QoS objectives, system components' placement, and interaction among these components in a graphical domain specific modeling environment. This configurable performance management system facilitates reusability of the same components, algorithms, and application performance models in different deployment settings.
I. INTRODUCTIONDistributed computing systems have been used for hosting e-commerce, social networking, internet search services, and information broadcasting applications during the past decades. The growing use of applications, hosted in distributed computing systems, increases the demand to ensure the availability, the reliability, and the quality of service (QoS) in dynamic and uncertain operating environments. Effective management in such operating environments requires expert administrator knowledge to determine the capacity requirement and resource allocation based on incoming workload pattern and application behavior; however, manual administration leads to poor performance and frequent outages due to the extremely complex application dynamics and the large size of the deployment.Another major challenge in distributed computing systems is the wide variety of hosted applications, such as stock trading, medical infrastructure, news portal, media streaming, and storage services. These applications are different from each other in the deployment architecture (data center or cloud environment), environment inputs (session-based, session-less, or different arrival pattern), monitored components (software or hardware), system performance model, and QoS requirements. Moreover, these applications are deployed with different operational settings and placement strategies. Therefore, the development of a single performance management system to maintain the QoS of each of these applications in different deployment schemes is infeasible.