Three concepts -- reducing complexity, enabling automation, and realistic implementation -- sum up the whats and whys of autonomic computing today
I spoke recently with Brent Miller, Senior Technical Staff Member and my personal guide into the technology issues of autonomic computing, and explained I needed an elevator pitch to describe autonomic computing. I asked for only the most important concepts to autonomic computing. He replied,
"Yeah, this does sound like fun! I'll send you my take on the top 2,689,204 concepts most important to autonomic computing today."
To which I replied,
"OK. But could you shave it to 2,689,198? It's only a 10-minute Podcast script."
Brent did me one better. He sat down with some colleagues and trimmed it to three. In reality, there are many important autonomic computing concepts -– although perhaps not more than two million -– and they're explained on dW and elsewhere. So we settled on three fundamentals that are especially relevant today.
Reducing visible complexity
This is at the heart of autonomic computing. Dealing with the complexity of IT systems was highlighted in the original Autonomic Computing Manifesto and has continued to be discussed in every edition of the AC Architectural Blueprint. Reducing visible complexity drives the thinking behind much of the architectural and other work that AC has done or is doing.
AC has always been about enabling systems to take on more of their own management functions. This is accomplished through automation. The AC Architectural Blueprint notes that for self-management functions to be enabled:
- The tasks involved in configuring, healing, optimizing, and protecting the IT system need to be automated.
- It must be possible to initiate these processes based on situations that can be observed or detected in the IT infrastructure.
- The autonomic manager must possess sufficient knowledge to take on the delegated task that is to be automated.
Key enablers for this automation include
- The concept of delegation.
In build-to-manage, components need to be developed to enable automated management using software engineering techniques and technologies that can be incorporated into the development life cycle to produce software that is more manageable either by humans or automation. This includes the use of standard resource models (such as the emerging Service Modeling Language) to represent the characteristics, behavior, and capabilities of components, as well as standard manageability interfaces (such as WSDM). Development tooling and run-time support enable build-to-manage.
The concept of delegation: Based on an established trust in the management system, humans can delegate selected tasks to automation and can select tasks to be controlled by manual managers vs. tasks that are delegated to autonomic managers, thus seamlessly adjusting between manual and automated operation as trust is earned or tasks are selected for manual control. Autonomic managers need standardized knowledge representations (such as symptoms, policies, and solution deployment descriptors) to accomplish their automated management tasks.
Applying the autonomic computing architecture in concrete ways
By itself, an architecture provides a foundation for self-managing autonomic solutions, but its value is realized only when it is applied in concrete solutions. Two such solutions are
- Self-managing resources.
- IT Service Management (ITSM).
With self-managing resources, localized self-management (self-configuring, self-healing, self-optimizing, and self-protecting behavior) can be embedded within a managed resource by incorporating an intelligent control loop in the resource itself. A self-managing resource includes its own management functions but also participates, through standard manageability interfaces, in the larger system-wide management solution. Autonomic computing enables resources to become more self-managing through the use of automation technologies such as policy, symptoms, and self-configuration. (There's lots more info on this in the latest Autonomic Computing Architecture Blueprint.)
The business of IT management, instantiated with ITSM, is a growing concern for businesses. Autonomic computing is all about systems management and offers immediate and growing value propositions to customers when incorporated in ITSM solutions. ITSM tasks, described using standards such as ITIL and ITUP, can be automated using delegation as described earlier, enabling IT processes to become more automated. ITSM is an ideal application of AC architecture and technologies such as standardized management interfaces, standardized knowledge, and delegation. (More on this too in the latest Blueprint.)
The windup, now the pitch
There you have it. If you really have only five minutes, hand them this troika:
- Autonomic computing reduces complexity.
- It enables automation.
- And it can be implemented in existing, real-world systems.
Then you tell them you know how to perform that last bullet point.
Brent Miller, Senior Technical Staff Member at IBM and author of The autonomic computing edge series, is responsible for sitting down with a few of his creative, intelligent, and good-looking colleagues -- Christine Draper, David Kaminsky, and Dave Ehnebuske -- and coming up with this concise grouping of three important concepts for autonomic computing today. At one point, it ballooned to five concepts, but they wrestled it under control and rolled the extra two back into the fold.