Why You Need & Want Self Healing Systems
If you’ve hung around with the cloud computing crowd, you’ve probably heard the term “self healing systems”. One of the primary drivers of cloud technology adoption is the elasticity of resources, which dovetails nicely with healing. Self healing systems, by definition, monitor themselves for errors and then correct them without human intervention. Think of it like you would your own health – if you’re hungry, you eat; if you’re tired, you sleep; if you have a headache, you take aspirin. When you run, your heart rate accelerates — until you stop, and then it ramps down. The objective is uninterrupted uptime for applications, services or devices. In cloud environments, it typically entails redundant, scalable server configurations that respond to varied demand, hardware failures, or other problems.
Companies that use cloud services need to expect outages and service failures. Obviously for mission critical applications, self healing is highly desirable. So the more important the system, the more catastrophic it is to have outages or slowdowns. And combining DevOps with self healing creates a true powerhouse for business: faster, more reliable, effective and responsive.
WHY SELF HEALING SYSTEMS? BECAUSE STUFF HAPPENS
What is the impact on your business is a key server or system becomes unresponsive? Perhaps you’ve had a bad software rollout that brought a system to its knees, there was an operating system issue that lead to a crash, or someone kicked a power cord out at your colocation facility (yes, we’ve seen it happen). Or maybe you’ve lived through a “good problem”, such as a spike in traffic when you ran a successful ad campaign or your representative went on the Howard Stern Show (yes, we’ve been through this one before). Disruptions like these can be painful if you miss new opportunities or (even worse) lose existing customers.
So the overarching why of self healing solutions is to minimize risk and maximize revenue. Rather than having your e-commerce system die during your biggest Black Friday sale or your public website crash when Howard Stern spells out your URL, your system can defend itself from hardware failures or unfathomable traffic spikes.
This is NOT Self Healing….
SELF HEALING SYSTEMS PERFORM BETTER THAN HUMANS (GASP!)
Infrastructure as Code
In “the old days” (yes, many people still do this…), IT infrastructure was manually administered, standing servers up and configuring them. The disadvantages are numerous: IT staffing requirements, time to deploy, and high equipment costs. Aside from the initial issues, there are also challenges around consistency, scalability, and (as demonstrated via many of the topics already outlined) availability.
Self healing systems rely on Infrastructure as code (IaC). IaC is the process of managing and provisioning computer data centers via automated configuration plans (rather than physical hardware configuration tools). The result is predictable, consistent implementations. Building capacity into the system provides the ability to recover effectively, which is more valuable than preventing an incident.
Logging & Monitoring
A basic element of data center management is logging & monitoring, which can toggle triggers and alerts. In traditional data centers, these notifications went/go to IT personnel to remedy — reboot a server, patch some software, buy additional hardware or call the web developers. In self healing environments, the work is done via IaC, and alerts are typically delivered as an optional note that an issue appeared (and was handled!) in case the issue is symptomatic of another potential issue. Like agile software development, self healing environments can be continuously improved. It’s a good idea to conduct post-incident reviews.
Continuous deployment is extremely advantageous to many businesses, keeping pace with market demands and trends. To support it, automated testing is a fantastic layer to sprinkle over self-healing systems. Tools like Selenium and Ranorex Studio can catch problems before your users experience them firsthand.
The benefits of self healing solutions are numerous and profound…
First, elasticity is amazingly efficient. We’ve provided infrastructure to businesses that are highly seasonal (like two weeks of a year). The costs would be staggering to keep the system at full tilt all year, or it would be devastating to fall over in the peak utilization periods. So ‘rightsizing’ the infrastucture is far more cost-effective, and it ensures a better customer experience.
Creative, successful businesses experiment. That may mean dialing up a promotion that creates a tsunami of activity. Will the system handle it? If scalability is baked into the infrastructure, it facilitates more trials.
Less disruption, more productivity
When stuff happens, it not only taxes the IT department. In many cases, it’s all hands on deck, including management, to address issues. A self healing system removes that overhead, freeing up your team to maximize productivity while focusing on the core business.
Delight your customers & users
IT WORKS! What a concept. Users have little patience for downtime. So “always on” and “fast” help deliver a better customer experience.
Delight your IT support team (less management overhead)
Disaster recovery is not fun for your IT support team. It’s stressful and demoralizing, and it erodes confidence with other departments. An IT team using a self healing approach proactively seeks issues rather than reactively fixing them.
Be ahead of your problems (prescriptive)
In addition, you’ll sleep better… Yes, stuff will still happen occasionally, but your business mindset becomes proactive. Eliminate SPOFs (single points of failure). Implement scalability. Experiment more. Test better. Your whole approach morphs.
Explore Self Healing Systems
Imagine the possibilities of a highly resilient technology stack for your business. The evidence is clear that successful businesses will employ it for years to come in an effort to deliver better customer experience and enjoy a competitive advantage.