The developerWorks Autonomic computing zone is filled with articles, tutorials, and tips that can help a developer understand the principles of autonomic computing and implement self-managing features in their applications, systems, and networks. However, the volumes of resources can be overwhelming for users trying to discover where to start learning about autonomic computing. With that daunting task in mind, developerWorks offers this page to provide an overview, or starting point, for users to learn about autonomic computing, illustrating the basics within the overall context of the technology, especially as it pertains to application development and e-business. This resource delivers starting points in the form of relevant developerWorks articles, tutorials and tips, IBM learning services education, webcasts, workshops, and IBM products for further investigation.
Autonomic computing is a phrase IBM uses to describe the set of concepts, technologies, and tools that enable applications, systems, and entire networks to become more self-managing. Self-management involves four qualities which are often referred to as Self-CHOP characteristics -- self-configure, self-heal, self-optimize, and self-protect. (Brent Miller explains CHOP in The autonomic computing edge: Can you CHOP up autonomic computing?.) The word autonomic is borrowed from physiology; as a human body knows when it needs to breathe, software is being developed to enable a computer system to know when it needs to repair itself, configure itself, and so on.
An autonomic computing roadmap points you in the right direction by leading you down a path that introduces the major autonomic computing concepts. This roadmap gives you an idea of just how to go about the process of implementing self-managing attributes.
After the roadmap article, you may want to Take a quick tour of autonomic computing. Survey the autonomic computing landscape for major concepts, then spend a few minutes learning how the technology might help you automate some of those pesky tasks that fritter away your time. Learn how you might simplify problem determination, streamline common systems administration, and automate routine system maintenance.
Excellent question! Integrating autonomic features into your system would be an overwhelming task if you thought you had to go from the concept to a full-blown implementation in one motion. Let's back up a step and emphasize that autonomic computing is really an evolution; there are components and technologies that can enable autonomic computing features on existing systems, but autonomic computing is really an evolutionary process of enhancing the self-managing capabilities of an IT system toward a more ideal state in your computing environment.
That said, products, systems, and IT environments can be classified as meeting one of five levels of maturity that show how a business is evolving its use of autonomic capabilities and supporting processes and skills:
Basic, where IT professionals manage each infrastructure element independently and set it up, monitor it, and eventually replace it.
Managed, where systems management technologies are used to collect information from disparate systems onto fewer consoles, helping to reduce the time it takes to collect and synthesize information as the IT environment becomes more complex.
Predictive, where analysis capabilities are introduced in the system to monitor situations that arise and analyze them to provide possible courses of actions. The IT professional makes a determination on what course of action to take.
Adaptive, where the IT environment can automatically take actions based on the available information and the knowledge of what is happening in the environment.
Autonomic, where business policies and objectives govern the IT infrastructure operation. IT professionals interact with the autonomic technology tools to monitor business processes and alter the objectives.
See, the good news is that without doing anything, your environment is probably already at the managed/predictive level. Some good resources for more on this way of looking at implementing autonomic computing features:
An autonomic computing system can be divided into the layers/parts; these parts are defined by the Autonomic Computing Architecture connected using a distributed infrastructure that allows the components to collaborate using standard mechanisms such as Web services. This architecture distributed infrastructure (described in An architectural blueprint for autonomic computing) can be thought of as a service bus that integrates the various components, which include:
Managed resources, any type of resource (hardware or software) that may have embedded self-managing attributes, form the lowest layer of the system.
Touchpoints come next: They are the interfaces to an instance of a managed resource, such as an operating system or a server. A touchpoint implements sensor (receives and responds to a stimulus) and effector (causes an action in response to a stimulus) behavior for the managed resource and maps the sensor and effector interfaces to existing interfaces. (See The autonomic computing edge: Keeping in touch with touchpoints for more on touchpoints.)
Autonomic managers automate some portion of the IT process, including orchestrating other managers.
An Integrated Solutions Console is a centralized, common system-management interface for the IT staff. (More information on this can be found in the section on core technologies.)
A major key to your understanding how the autonomic computing system works is the idea of an autonomic manager, the structure that contains the control loop that handles events. A particular resource may have one or more touchpoint autonomic managers, each implementing a relevant control loop.
Some autonomic managers orchestrate other autonomic managers -- it is these orchestrating autonomic managers that deliver the system-wide autonomic computing capability by incorporating control loops that have the broadest view of the overall IT infrastructure.
Understand the autonomic manager concept explains it all, with diagrams and examples of a working autonomic manager, so you can better grasp the critical role of the autonomic manager in a self-managing system.
Take a look at this architectural blueprint for autonomic computing whitepaper. Not only will it describe the big push toward autonomic computing and why it is a critical component to on demand systems, but it is also truly a map to help you leap the first hurdle in autonomic computing -- understanding the big picture; the "why" it should happen and the "what with" to make it happen.
And if that paper is not enough to help you understand the importance of the concept, listen to a practitioner explain to forum participants:
Here's a list of autonomic computing-enablement technologies to get you started:
For problem determination (PD), probably the most entertaining and exciting task that is tailor-made for autonomic computing, these technologies are available.
The Log Analyzer extends the capabilities of IBM Tivoli Monitoring by providing the ability to perform detailed problem diagnosis on occurring situations and events. It provides two main functions:
An event analysis tool, which provides the ability to gather, merge, filter,
sort, display, and analyze contents of log files and events from a large number of products in a single view for problem isolation and triage to problem analysis.
A development work bench, which provides the ability to extend the event analysis
tool to support additional products, non-IBM offerings, and log files through the creation of new adapters (to interpret the content of the log files) and correlation engines (to analyze log files).
The Symptom Editor enables you to create and maintain symptom catalogs and symptom
definitions that comply with the Symptoms Reference Specification and the Symptoms
Best Practices. You can run Symptom Editor as a stand-alone tool, or launch it from
the Log Analyzer.
For provisioning, the ability to predict when new capacities need to be allocated or deallocated, and orchestration, the ability to monitor the overall system and use autonomic computing concepts to determine when an action needs to be taken, use the following resources:
The simplest answer is by offering high-level access to improved infrastructure services. Service-level automation and orchestration provides services that facilitate the translation of QoS policy declarations associated with business services into reality by enabling services that can implement autonomic managers that monitor the execution of services in the On Demand Operating Environment (ODOE) according to the policy declarations they receive. They analyze their behavior, and if the analysis indicates problems, they plan a meaningful reaction to that problem and initiate the execution of that plan. This is a closed-feedback loop known as a MAPE (Monitor-Analyze-Plan-Execute) loop.
. (The MAPE loop is the same as the control loop discussed in the section on key concepts.)
An on demand environment must be open, virtualized, and autonomic (therefore, autonomic is one characteristic of an On Demand Business). The implications for an autonomic, On Demand Business approach become quickly evident -- you have a network of organized, "intelligent" computing components that provide customers with what they need, when they need it, without mental or physical efforts by a human operator.
In Operating environment essentials for an on demand breakthrough, the authors discuss infrastructure management as a way of fulfilling On Demand. Automation enables your IT infrastructure to manage many day-to-day tasks itself. With a self-managing infrastructure, you increase efficiencies and simplify resource allocation. A fully automated IT infrastructure can sense changing conditions, like surges in demand or isolated application errors, and can spot trends that could lead to system downtime. The autonomic computing-enabled infrastructure automatically responds by taking corrective actions that ensure your IT resources remain aligned with your business goals.
Join (or start) your own autonomic computing blog to help other developers with their questions. (The example used here is of Dave Bartlett's blog. Dave is the Vice President of autonomic computing for Tivoli -- talk about experience!)
After you've taken advantage of the self-learning avenues, even if there are still some
fuzzy points, consider trying a free forum where you can get an overview of the core autonomic technologies from someone who's been there and a real-world brain dump from people who've actually experienced using autonomic computing concepts to build a system.
Finally, the ultimate step to becoming an autonomic computing coding guru is to participate in an expert exercise: Apply for an IBM residency to produce a Redbook. Just another step to putting your knowledge to practical use and testing your skills in a real-world environment.
We're glad you asked that. We understand that when acquiring and integrating technology, the needs of an individual developer and the needs of a business usually differ in scope. With that in mind, we offer several resources to help your business build autonomic computing solutions:
The IBM Innovation Centers (IIC) are designed to help IBM Business Partners integrate autonomic computing components into their own products. developerWorks interviewed several members of these integration teams to have them share their experiences with you:
Then there's jStart Program, designed to help you develop on demand capabilities for your product and company by offering workshops to define your business problem, create a project plan for either a new or existing project, and then build and deploy the solution. (jStart is discussed further in a sidebar in this interview.)
Our expert interviews provide you with insight from the business integrators in the trenches, including overviews of where the technology is and where it's likely to go, which standards will probably rule, and details of how various formats and components interact with existing systems. All, shall we say, from the practical perspective of someone who is doing the work now.