Autonomic computing: the first decade

This talk provides a retrospective on the first decade of autonomic computing, an assessment of the extent to which the original vision has been realized, and some discussion and speculation about the the remaining research challenges.Nearly a decade has elapsed since Paul Horn, IBM's senior vice president of research, introduced the concept of autonomic computing during a keynote address to the National Academy of Engineers at Harvard University in October, 2001. Warning of a looming crisis arising from the ever-growing complexity of managing IT infrastructures, he enjoined the academic and industrial research communities to develop large-scale computing systems analogous to the autonomic nervous system, which subconsciously controls many of the body's muscles and organs. Horn envisioned that, just as the autonomous nervous system frees the conscious mind from the burden of increasing our heart rate and respiration rate when we exercise, an autonomic computing system would free system administrators from the burden of tuning database performance or mining multiple log files full of arcane messages to diagnose why an application is suddenly failing, enabling them instead to specify desired behavior through high-level policies. This vision was promoted and elucidated further in The Vision of Autonomic Computing, which appeared in IEEE Computer in January, 2003. That article described some of the capabilities that autonomic computing systems and their elements ought to possess, such as the ability to configure, heal, protect and optimize themselves, suggested a high-level multi-agent architecture, and laid out a number of key engineering and science research challenges that would require the combined efforts of experts from many different disciplines to solve.The worldwide research community quickly embraced autonomic computing. In June 2003, the Algorithms and Architectures for Self-managing Systems Workshop at the Federated Computing Research Conference and the Active Middleware Workshop on Autonomic Computing drew about 70 participants each. This strong showing of interest and enthusiasm prompted the organizers to combine forces and establish the International Conference on Autonomic Computing (ICAC), which is now in its eighth year.Since this time, dozens of workshops and conferences pertaining to the topic have been held. Several of the leading systems conferences explicitly call for papers on autonomic computing, including Eurosys, the Network Operations and Management Symposium, Integrated Management, the International Conference on Network and Service Management, and the International Symposium on Reliable Distributed Systems. Thousands of papers have been written on the topic, and autonomic computing has worked its way into course curricula at several universities.What has been the overall impact of this activity? In terms of the technical approach taken, few researchers have seriously attempted to exploit the original analogy to the autonomic nervous system, and indeed only a handful of workshops have been devoted to exploring autonomic computing technologies that have any basis in biology. On the other hand, the community has made good progress in using utility functions to specify high-level policies, and using control-theoretic and machine learning approaches to achieve self-optimization or self-diagnosis in specific contexts. In terms of emphasis, it is disappointing but understandable that the preponderance of work in the field continues to focus on self-optimization, with self-healing and self-configuration receiving far less attention. In terms of the domain of application, the data center has emerged as one of the primary realms of interest to the community, especially the subset that tends to frequent ICAC, and in recent years that interest has expanded from just the IT infrastructure to include the physical infrastructure as well, as evidenced by the number of ICAC papers on data center energy management.Overall, it appears that some reasonable progress has been made on making elements of computing systems more autonomic, and in introducing them to the marketplace. However, fundamental scientific and engineering issues remain to be conquered, especially those pertaining to effective interactions among autonomic elements. This talk will conclude with a discussion of what are some of the greatest remaining hurdles that must be cleared before we will see true data-center-scale autonomic computing systems.