Live data from Hacker News

Netflix Chaos Monkey Upgraded

techblog.netflix.com

71–80 of 89 posts

Re: Netflix Chaos Monkey Upgraded

#71
post #28
post #6

I wonder what the reasoning was for having version 2 only terminate instances (vs burning up CPU, taking disks offline, etc.)? I assume it's something to do with what Chaos Monkey is NOT trying to solve (ie. eating up CPU is caught elsewhere by another system and out of scope for Chaos Monkey now). Just trying to think it through...

If you can handle a server failing and you have good reporting, you can handle many of those random issues by simply rebooting the affected server. So I can see them taking out things like "load up the memory" or "load up the CPU". Logic errors (bad RAM, corrupted packets, high packet loss) are another story, but I don't know if V1 did those.

We have another system for outlier detection that can kill instances that start behaving badly in terms of CPU, response time, error rates, etc.

http://techblog.netflix.com/2015/07/tracking-down-villains-o...

Re: Netflix Chaos Monkey Upgraded

#74

Interesting that all of the resource burning features have been removed, I wish they had expanded on the reasons why. I always found those to be the most differentiating features of Chaos Monkey. Did they just not get a lot of use internally at Netflix?

Resource exhaustion manifests as latency or failure. We inject latency and failure using FIT, so we can limit the "blast radius". When you are testing these failure modes, you are more testing the interaction between micro services, and this requires a bit more precision and sophistication. Source: I'm on the Chaos team here at Netflix.

New life goal: Join the "Chaos Team"

Re: Netflix Chaos Monkey Upgraded

#75

Every time this is in the news I get a feeling of awe for operations teams having confidence enough to deploy this. I've usually been in small teams with the feature mill factor turned up way too high.

If you don't use a tool like this, entropy will take care of taking your machines down for you. Only then, it won't be a regularly rehearsed part of "normal operations" so you might find yourself up creek without a paddle.

Yeah, sure, but then it won't be the fault of whoever (me?) thought using Chaos Monkey in production was a good idea.

Is it good for the organization? Yes. Good for the guy pushing it? Very possibly very not.

Re: Netflix Chaos Monkey Upgraded

#76

Beyond external termination services like Chaos Monkey, what are good examples of software that purposely increase internal nondeterminism or failure injection in production? Go has race detector mode, but it is an optional debug feature with a performance cost. The Linux kernel's jiffy clock starts counting from -5 minutes so drivers must handle clock rollover correctly because it's not a uncommon "once every 48 day…

Go intentionally introduces randomness when reading maps so developers don't write code dependent on order.

Re: Netflix Chaos Monkey Upgraded

#77
post #31

Earlier quoted context omitted.

Yes, I wonder that too - complete node failure is the nicest failure that can happen. (See e.g. http://danluu.com/limplock/ , because Dan Luu's site is always excellent.) "We rewrote the service for improved maintainability" seems an important part of this blog post.

I wonder if they have a service that automatically detects all those failures and terminates the entire node instead?

We do: http://techblog.netflix.com/2015/07/tracking-down-villains-o...

Re: Netflix Chaos Monkey Upgraded

#78
post #45

I posted this piece of news to my team Slack at work, and a colleague of mine wrote: "we don't need chaos monkey, we have developers for that". While being funny, it also holds a lot of truth. I guess that Netflix can hire really top-notch devs who do not accidentally force downtime to their software.

The difference is scale. Only a handful of companies run at Netflix scale. I wouldn't trust developers to do what Chaos Monkey does at such a scale, no matter how good you think they are.

[deleted]

Re: Netflix Chaos Monkey Upgraded

#79
post #76

Beyond external termination services like Chaos Monkey, what are good examples of software that purposely increase internal nondeterminism or failure injection in production? Go has race detector mode, but it is an optional debug feature with a performance cost. The Linux kernel's jiffy clock starts counting from -5 minutes so drivers must handle clock rollover correctly because it's not a uncommon "once every 48 day…

Go intentionally introduces randomness when reading maps so developers don't write code dependent on order.

Ironically, some Go developers began depending on the randomized map ordering and were surprised when it changed! :)

runtime: hashmap iterator start position not random enough #8688

https://github.com/golang/go/issues/8688

Re: Netflix Chaos Monkey Upgraded

#80
post #45

I posted this piece of news to my team Slack at work, and a colleague of mine wrote: "we don't need chaos monkey, we have developers for that". While being funny, it also holds a lot of truth. I guess that Netflix can hire really top-notch devs who do not accidentally force downtime to their software.

From my experience, this is naive. It's funny, but really naive.

The bigger your application stack is (micro-services, API calls, network calls), the more failure you would need to test out and there's no way to "trust" developers to do it themselves.

Also, Netflix hires a lot of top-notch developers and their infrastructure is pretty awesome.

[I don't work @ Netflix, just a devops dude :)]

Post reply on HN