To cope with the ever-increasing complexity of managing distributed heterogeneous computing systems, there is a strong imperative for such systems to manage their own operations in relation to higher-level planning objectives. Such self-management is a hallmark of autonomic computing systems.
Objectives are represented by utility functions that users can specify in terms of clearly defined operational metrics. Utility functions are attractive for achieving autonomic computing because they provide a basis for converting higher-level performance metrics to lower-level system control parameters.
Web based services such as online banking and shopping are hosted on distributed computing systems comprising heterogeneous and networked servers. They ideally therefore should be self-managed. To operate such systems efficiently while satisfying stringent QoS requirements, multiple performance related parameters must be selected, capable of adapting to changing operating conditions.
For example, the computational workload a system must process might vary over time, with the possibility that hardware or software resources could fail or need replacing during system operation. For service providers to cope with the growing scale, complexity and time constraints of applications, supporting systems must become largely autonomic- that is capable of managing their own operation with minimum human intervention.
Current work on self-managing systems generally aims to re-engineer human expert domain knowledge in the form of automated rules, applying artificial intelligence techniques to achieve real-time performance optimisation.
Key management tasks that can be automated in computing systems include- power management, load balancing, configuration and dynamic resource provisioning. Properties common to all autonomic systems will therefore cover- self-configuration, self-healing, self-optimisation and self-protection.
An autonomic data centre of the future might host several applications or services on behalf of multiple customers. A customer might subscribe to a new service and specify preferred levels of performance and security defined in an SLA. The Centre will determine which resources are needed to satisfy the SLA, automatically provision and configure the appropriate server, database, storage and networking resources in accordance with those criteria and install and configure domain-specific software governing those resources. The Centre will then monitor and manage itself- sensing and safeguarding against faults, bottlenecks and attacks.
Autonomic computing is quickly becoming an accepted practice and will dominate all scales of real-time computing in the future – from the Internet’s global operation, to Grid and Cloud computer networks to PC clusters.
This capability will eventually combine with autonomic software management to achieve complete automatic system management.
Autonomic computing will also be an important step on the path to the Adaptable Enterprise, which will require new web service building and maintenance capacity to be fast and seamless, taking advantage of market evolution and new opportunities.