The Past, Present and Future of Autonomic Computing
Vendors are quietly building automation into their products as an evolutionary process as business requirements dictate.
IBM started the move toward autonomic computing in 2001. IBM engineers saw the need to develop smart systems that could monitor, repair and manage themselves to a high degree. In 2004, IBM Press published the 336-page “Autonomic Computing” book that described systems that “install, heal, protect themselves, and adapt to your needs – automatically.” The purpose of autonomic computing is to decrease human management and lower maintenance costs associated with break/fix, patch management, restarting services and problem reporting. Removing human intervention promised to reduce costs, to improve service levels, to enhance service levels and to simplify management.
The term autonomic means involuntary or unconscious and refers to the autonomic nervous system that controls breathing, pupil dilation and contraction, and other neuromuscular reflexes. The theory is that a computer system’s normal operations can operate at peak efficiency because of in-memory monitors, scheduled actions and periodic housekeeping tasks taking place in the background. One such autonomic system that system administrators have put into practice for decades is the daily backup. Scheduled backups run independent of all other system processes, restart if interrupted and have automatic reporting capability.
|Turbonomic: Real-Time, Autonomic Performance Control|
Get a 30-Day FREE Trial
The idea of systems that are self-healing, self-managing and self-monitoring is not new. Fiction writer Edward Ellis proposed the idea of a steam-powered mechanical man in his 1868 novel, “The Steam Man of the Prairies,” and Karel Capek coined the term, “robot” in his "Rossum’s Universal Robots" in 1921. The revival and excitement surrounding autonomous computing in the early part of the 21st century waned a bit with the widespread adoption of virtualization and cloud computing. However, there is now a return to interest in self-managing systems. (To learn more about autonomic systems, see Autonomic Systems and Elevating Humans from Being Middleware: Q&A with Ben Nye, CEO of Turbonomic.)
The Need for Automation
Industries and businesses need to run lean in order to compete in a global marketplace. The days of niche markets and limited competition are gone. Vendors have to respond to this economic pressure by developing automated systems that hide complexity from the end user. The problem is that the easier a technology is for the end user, the more complex it is on the back end. Vendors now have entire teams working on making systems more autonomous and easier to deploy and use.
The short-lived, but highly prized (and highly priced) International Journal of Autonomic Computing solicited articles on the following topics:
- Autonomic programming models, tools and environments
- Autonomic resources scheduling and management
- Autonomic middleware and toolkits
- Autonomic monitoring and management
- Autonomic policy and QoS/IT system management
- Autonomic performance evaluation and modeling
- Autonomic architectures and mathematical foundations
- Autonomic application integration issues
- Autonomic grid, services
- Autonomic access control and security issues
- Ontology programming for self-configuring
- Sensor array structure and signal processing
- Intelligent control and pattern recognition
- Autonomic applications, system solutions, case studies
- Convergence of web services, grid and autonomic computing
New technologies and trends responsible for the rekindled interest in autonomic computing are big data analytics, the internet of things (IoT), cloud computing, and the commoditization of IT labor resources, among other things. The greatest driver in autonomic computing research and development is the need to save money on labor. If systems can self-optimize, self-manage, self-monitor, self-heal and self-protect, then the need for human intervention decreases significantly and so do costs associated with maintenance and management.
Read: Turbonomic: Bringing Autonomics to Virtualization
The Automation Dilemma
Business owners want automation because it lowers costs. The flip side of automation is the assumed loss of control. Automation isn’t about removing control, it’s about increasing efficiency and removing some of the human error introduced into operating system and software maintenance.
Jake Smith, Director, Data Center Solutions and Technologies at Intel Corporation, wrote in 2009, for the Intel IT Peer Network, “Autonomic controls are in place today, machine to machine computer architectures are here today, scalable compute engines are here today. Are they perfect? No. Are they effective? Yes.” Autonomic controls are a good solution in that they actually deliver more insight and more control than manual controls do. Autonomic controls also increase efficiency.
Smith adds, “When executed properly, Autonomic controls should be able to deliver 20-25 percent performance and efficiency increases with each new generation of Moore’s law. In some cases ... these increases have been over 150 percent in virtualization performance, these increases will be a combination of software architecture enhancement and silicon optimization.”
The takeaway from this discussion is that no matter how autonomous a system is, you can’t completely remove the human factor from that system. For example, if a piece of hardware fails, the system will send alerts to a human who must repair or replace the failed component. Through clever programming, operating systems and software can be made to self-heal, but hardware still requires a human touch. (For more on automation, see Why Automation Is the New Reality in Big Data Initiatives.)
Autonomic infrastructures, greater virtualization and elastic computing increase efficiency and remove the requirement for continuous administrator involvement, but they will never completely remove it.
The Autonomous Future
The future of autonomic computing is cloudy at best. Researchers and industry analysts aren’t sure of its future, except to state that more systems will use automatic or autonomic controls. Most agree on the fact that creating autonomous systems is an extremely complex undertaking for the ever-increasing complexity of business computing environments.
The goal of autonomic computing is to add sufficient intelligence to systems to allow those systems to adapt to changes, to dynamically protect themselves, to automatically apply patches and fixes, and to alert a human when things go really awry. At least one company created a virtual system administrator suite that acts as a system watchdog and administrator that requires very little human interaction. The suite provides a single management console where a human system administrator can monitor and manage hundreds of systems with a few mouse clicks.
The autonomic computing frenzy that IBM started in the early days of this century has evolved into a series of smaller steps toward the reality of fully autonomous infrastructures. The interest in autonomic computing hasn’t declined a great deal, but it has changed from a research novelty into a business necessity. Vendors continue to build autonomy into their systems on an evolutionary scale.
This content was brought to you by our partner, Turbonomic.
More from Turbonomic
- Why would companies invest in decision automation?
- What are some advantages of multi-cloud deployments?
- How does software-defined networking differ from virtual networking?
- How does dynamic allocation in the cloud save companies money?
- Why should companies be considering intent-based networking?
- Why is it important to manage a relational database system in the cloud?
- How can businesses innovate in managing data center bandwidth?
- What are some best practices for cloud encryption?
- How does visibility help with the uncertainty of handing data to a cloud provider?
- How can companies maintain application availability standards?
- Why do cloud providers seek FEDRamp certification?
- How might a team make an app "cloud-ready"?
- Why does loosely coupled architecture help to scale some types of systems?
- How might companies deal with hardware dependencies while moving toward a virtualization model?
- Why does virtualization speed up server deployment?
- What is the virtualization "backlash" and why is it important?
- Why could a "resource hog" make virtualization difficult?
- How might a company utilize a virtualization resource summary?
- Why do undersized VMs lead to latency and other problems?
- What are some of the positives of a demand-driven migration model?
- Why should cloud services offer both elasticity and scalability?
- What are some of the values of real-time hybrid cloud monitoring?
- Why might a company assess right-sizing on-premises versus in the cloud?
- How can companies deal with “dynamic unpredictability?”
- What are some basic ideas for optimizing hybrid cloud?
- Why do some companies choose Azure or AWS over open-source technologies like OpenStack?
- What are some advantages and drawbacks of stateless applications?
- Why is it important to look at the "full stack" in virtualization?
- How does automation help individual system operators?
- How do companies develop a "data center BMI"?
- How can companies tally up cloud costs for multi-cloud or complex cloud systems?
- Why is a good HTML5 interface important for a business project?
- How do companies work toward composable infrastructure?
- How can a manager use a workload chart?
- How can companies work to achieve a desired state?
- How can companies cultivate a better approach to “object-based” network changes?
- Why do naming conventions for virtual machines help with IT organization?
- Why is reserve capacity important in systems?
- What are some values of cloud-native architecture?
- Why is it important to match uptime to infrastructure?
- What's commonly involved in site reliability engineering?
- What are some important considerations for implementing PaaS?
- What are some challenges with handling an architecture's storage layers?
- What are some of the benefits of software-defined storage?
- What are some things that rightsizing virtual environments can do for a business?
- What are some benefits of continuous real-time placement of user workloads?
- How can stakeholders use the three key operations phases of autonomic hyperconvergent management?
- Why would managers suspend VMs when VDI instances are not in use?
- Why would managers differentiate storage for I/O-intensive workloads?
- Why would companies assess quality of service for VMs?
- What's the utility of a cluster capacity dashboard?
- How can companies use raw device mapping?
- Why might someone use an N+1 approach for a cluster?
- How do companies balance security, cost, scalability and data access for cloud services?
- How do companies battle application sprawl?
- What are some benefits of self-driving data centers?
- What are some concerns companies might have with a "lift and shift" cloud approach?
- What is involved in choosing the right EC2 instances for AWS?
- What are some benefits of workload abstraction?
- What are some challenges of scaling in OpenStack?
- How do companies use Kubernetes?
- What methods do companies use to improve app performance in cloud models?
- How do businesses use virtualization health charts?
- What is the difference between convergence, hyperconvergence and superconvergence in cloud computing?
- What are some of the business limitations of the public cloud?
- What is the difference between deploying containers inside a VM vs directly on bare metal?
- What are the benefits of converged infrastructure in cloud computing?
- How is containerization different from virtualization?