Where were you on February 3, 2015 at 3:40 p.m. PST? Snowed in? Desperately trying to refresh Netflix? If so, you weren’t alone. It turns out even the best and biggest companies experience failure from time to time. Despite the success of their Chaos Monkey approach to operations, the Internet streaming media provider experienced an outage for a little over an hour. Responses from users ranged from outrage to well, hysteria. You can read more about the media frenzy and see how the masses took to twitter to discuss here.
All was not lost however. Thanks to their constant evaluation of cloud operations, the severity of the outage was not extensive. Given the level of dedication Netflix has to constant self-improvement, you can be sure that in the future, they will be learning from this experience to stay on top of potential issues. That being said, we can still look at what Netflix has done right thus far, and how they maintain a service that so rarely has outages.
Method Behind the Madness: Netflix’s Chaos Infrastructure
Netflix definitely subscribes to the saying: “If you fail to plan, you plan to fail.” Their strategy integrates quality assurance with the operational infrastructure. This combination provides for the ultimate chaos-proof product. In accordance with the best Testing in Production (TiP) procedures, this type of testing is conducted in a live environment, and familiarizes developers with uncommon situations on a regular, controlled basis. It also unites the QA team and operational team, which reduces miscommunication in the production process.
Netflix’s Chaos Monkey randomly simulates the failure of various components within the application stack at random times. Engineers must be alert and ready to find a solution for future recovery scenarios. There’s a method behind the madness. The genius is that by embracing failure, they actually reduce its potential to wreak havoc.
Netflix has found ways to function despite major hiccups. They keep operational processes at the forefront, reducing the amount of angry customers, as well as the potential for lost revenue. Some of their techniques include displaying popular picks instead of the entire personalized menu and making streaming the utmost priority. If Netflix can hold on to their ability to suggest and stream movies during a major outage, they’ve won.
Getting To The Root Of The Problem
There’s more logic beyond the chaos system than one might think. Netflix puts into practice the exact techniques for root cause analysis. To put this strategy to work, you must:
- Define the issue at hand.
- Discover why it happened.
- Develop strategies to reduce the likelihood that the problem will happen again and assess potential risk factors.
Of course, of all of these steps it’s the discovery process that is the most difficult. Here, Netflix instills the “5 Why’s” principle, which means that they ask themselves five times why the problem occurred. Asking yourself “why” as many times as possible will encourage you to review the angle from all sides and get deep enough to see the roots of the problem. They ask themselves what circumstances were present which allowed or caused its occurrence? How can they change and manipulate those circumstances to prevent it from happening again?
In the problem solving phase, it is imperative to use data collection which provides information about the duration, direct impact and potential effects on other instances. By implementing this technique, Netflix spots weak points in their system and develops the automatic recovery system needed to strengthen them.
Gorilla Warfare And The Simian Army
Netflix’s chaos-causing monkey is actually pretty serious business. The entire Simian army consists of several different monkeys who each have different tasks. As a unit the Simian army is responsible for causing a variety of failures within the cloud. The security of the cloud is tested by identifying any abnormal conditions and assessing Netflix’s ability to function in spite of them.
Each service, or monkey, has its own specific role. Some of the most vital members of the troop include:
- Chaos Monkey disables systems within groups. Despite its troublemaking ways, it only runs during business hours so that engineers are available to solve the problems as quickly as possible.
- Conformity Monkey helps maintain status quo. He looks for instances within groups and disables them. The idea behind this practice is that the instances can be re-launched at a later date appropriately.
- The Security Monkey is Conformity’s right hand primate. His tasks are primarily two-fold: looking for vulnerabilities or security violations while checking SSL and DRM certifications for validity.
- Janitor Monkey keeps the place looking neat. He trashes unused resources.
- The Chaos Gorilla lives up to his name. This big guy simulates a full-scale outage of a complete Amazon availability zone.
The monkey team continues to grow to provide a complete cloud testing strategy. Best of all, the Simian Army is open-source and allows them to test the cloud’s operation and security at any time.
Incorporate Simulated Users for Maximum Results
You may not be ready to deploy the entire Simian army, but there are lots of ways you can put in place your own early warning systems to keep cloud operations running as smoothly as possible. One great way of doing this is with products like NeoSense. NeoSense generates simulated users, which highlight weak spots in performance happening within business transactions in the production environment. The critical data these simulated users generate allows teams to spot problems before a catastrophic situation occurs. It also gives operations teams the ability to get working quicker, with more informed data so they can get systems back up and running.
Beyond Monkeying Around
Jokes aside, we can see that Netflix’s strategies for cloud operational testing are right on target. They do more than allow developers to identify weak areas – they maximize testing for failure in real, everyday environments. By doing so, the emphasis is moved from dealing with paralyzing fear to building necessary solutions. This technique is applicable to a multitude of tech enterprises that need to provide the highest level of service for their demanding users.