It is time for part 6 in our multi-part series describing why It’s Not Your Daddy’s DB2… So far we have examined industry and DBA trends (Part 1), the many database and management changes made to DB2 for z/OS (Parts 2, 3, and 4), and SQL and development trends (Part 5). Today we turn our attention to the way in which management tasks are handled and the move from traditional methods to autonomic methods.
Automation versus Autonomics
Many database management tasks that traditionally required oversight and handholding by DBAs can, over time, be turned over to intelligently automated software to manage. The key word in that sentence is “intelligently.” Oh, sure, we have automated things for ages, whether it be generated JCL or a scheduled REORG job or a series of scripts to make a change to database structures.
By developing computerized applications to support business processes, we automate just about every task in our organizations. But, for the most part, these automated steps still require significant manual interaction or intervention.
Autonomics is the migration from simple automation to managing your databases with intelligent software techniques.
What are Autonomics?
So what are autonomics? Autonomic computing refers to the self-managing characteristics of distributed computing resources, adapting to unpredictable changes while masking the complexity from operators and users. Autonomics implies much more than simple automation.
The goal of autonomics is to enable computer systems, in this case the DBMS, to be capable of managing itself. Autonomics requires an awareness of the environment, knowledge of changing usage patterns and resources, and the ability to adapt to shifting requirements. Through autonomics it is possible to optimize manual tasks and reduce the growing levels of complexity. This is particularly important in the current day and age of running lean IT staffs.
At a high-level, there are four aspects of autonomic computing:
- It is automatic, meaning it can make decisions on its own, using performance and usage metrics and high-level policies developed by administrators.
- It is adaptive, meaning it can automatically adjust to changing conditions.
- It is aware, meaning the system can monitor (or sense) its operational context as well as its current state to determine if it is reaching its specific purpose.
- It is self-managing, meaning it can optimize and administer itself without human interaction being required.
Of course, there are many aspects to “self” management aspect of autonomics. Autonomic systems can support many different types of self-management capabilities, such as:
- Self-configuration: Automatic configuration of the system and its components;
- Self-healing: Automatic discovery, and correction of faults;
- Self-optimization: Automatic monitoring and control of resources to ensure the optimal functioning with respect to the defined requirements;
- Self-protection: Proactive identification and protection from arbitrary attacks.
- Self-inspection: Understands itself and its interactions with other systems in order to make intelligent decisions;
- Self-organization: Proactive modification of data structures and organization to optimize access.
As with most things, it is not reasonable to expect organizations to jump right into a full-blown implementation of autonomics. There are 5 levels of gradation for autonomic computing that can be adopted. These can be summarized as:
- Fully autonomic
The first three levels are passive, meaning that the system advises an administrator that corrective actions are needed, but nothing is automatically performed. The Basic level is essentially through human effort, IT professionals are used to manage the appropriate tasks through their own abilities and experiences. The Managed level augments human effort with management technologies and techniques. And the third level is where we really start to see a more autonomics-focused approach. This Predictive level introduces new techniques and methodologies for correlation among different components.
Then we move into the active levels, where corrective actions are automatically taken. The Adaptive level uses the metrics and information it has gathered to automatically take actions as needed. And the final level, the Autonomic level, actively monitors and analyzes business policies and objectives – and can even change these policies and objectives based on new observations. Basically, it all boils down to identification of issues vs. not just identifying the issues but also taking action to remediate the issues.
Trust, but Verify
An evaluation of the accuracy of the autonomic capabilities by trusted advisors is an important part of the continuum of moving to autonomics. It never fails that when a technician is first exposed to autonomics, skepticism is aroused. For example, a DBA told that some piece of software is going to make automatic adjustments to parameters, jobs or data will usually say something like “Wait-a-minute! First tell me what the problem is, along with what you suggest I should do.”
The DBA wants to look at the recommendations and develop a level of trust in the technology. That is the first phase for autonomic software. You can break problem solving down into three high-level steps:
- Find the problem
- Analyze the situation for a solution
- Implement the solution
DBAs readily accept automating the first two steps but the last one usually takes some time. After a period of time reviewing the proposals raised by the software, a technician will begin to trust a well-written and developed autonomic solution. At that point it can be turned on as fully autonomic… not just finding the problem, and performing analysis to find a solution, but also automatically fixing the problem.
Modern Database Administration Requires Autonomics
Today’s IT world is defined by growing amounts of data, ever-changing DBMS functionality and heterogeneous environments. Couple that with retiring mainframe expertise and few new DBAs being hired and it is easy to see that managing to best practices becomes untenable.
Autonomics is the key to being able to manage a modern DB2 implementation. We see IBM incorporating more and more autonomics features into the base functionality of DB2. This can be seen in features like Real Time Statistics (RTS), RUNSTATS feedback, and profiles.
And you can augment the rudimentary autonomics with sophisticated tools and utilities that take advantage of the features and metrics provided within DB2 to constantly monitor, manage and optimize your DB2 applications and databases.