Autonomic Computing is an initiative to provide computers with the tools they need to self-manage without human intervention. The idea was initially launched by IBM in the year 2001, now it has been taken over by many other companies, including HP and Microsoft. The initiative also involved academia, with the establishment of the International Conference on Cloud and Autonomic Computing. The project is inspired by the autonomic nervous system, like that set of the cells and fibres which innervate internal organs and glands, controlling the functions that are generally outside voluntary control.
In a self-administered system, the human operator has a new rule: he does not have to control the system directly. Instead, he defines general policies to rules given input to the self-management process. For this process, IBM defined the following four functional areas.
- Self-configuration: in case the environment changes, the configuration of the components would be adjusted, following the guidelines indicated by the human professional. Such changes could include the deployment of new components, the removal of previously deployed components, or drastic changes to the current configuration;
- Self-healing: Components should be able to detect system malfunctions and take corrective action. These actions can include changing the current state of a component or other component;
- Self-optimization: automatic monitoring and control of resources to ensure optimal and respectful operation of the defined requirements. Actions that can be taken include reallocating resources to cope with changes in the load on the system, or ensuring that certain transactions are prioritized over all other transactions;
- Self-protection: identification and protection from arbitrary attacks.
IBM defines 5 levels of evolution, so that it achieves the ultimate goal of autonomous computing progressively:
- Basic Level, is the starting point of today’s computing systems, where system components are managed manually and individually.
- Managed level, where centralized information collection systems are introduced.
- Predictive level, in which the system is able to analyze the collected data, correlate the patterns with the actions recommended by the administrators.
- Adaptive level, in which the system is able to make decisions based on the collected data, minimizing human intervention.
- Autonomous level, in which the components of the system are fully integrated and managed dynamically on the basis of high-level rules and policies.
The features that need to be present are:
- monitoring the current state of the system;
- state analysis to determine whether intervention is required;
- intervention planning;
- performing the operation.
IBM defined five evolutionary levels (autonomic deployment model) for the deployment :
- Level 1 is the basic level, systems are managed manually.
- Levels 2–4 have some automated management functions.
- level 5 is the full autonomic, self-managing systems.
The design of Autonomic Systems can be made simple by using model-view-controller (MVC).