DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Software Design and Architecture
  3. Performance
  4. Book Review: Chaos Engineering

Book Review: Chaos Engineering

From three developers at Netflix, the company that coined Chaos Engineering, comes a definitive overview of the practice and its components.

Baron Schwartz user avatar by
Baron Schwartz
·
Oct. 15, 18 · Review
Like (3)
Save
Tweet
Share
8.18K Views

Join the DZone community and get the full member experience.

Join For Free

Chaos Engineering: Building Confidence in System Behavior through Experiments. O'Reilly Media, 2017. Casey Rosenthal, Lorin Hochstein, Aaron Blohowiak, Nora Jones, and Ali Basiri.

This book should be required reading for anyone building a system complex enough to make it hard to understand the full scope of its behaviors under varying circumstances, which describes most software.

Chaos Engineering: Building Confidence in System Behavior through Experiments. O'Reilly Media, 2017. Casey Rosenthal, Lorin Hochstein, Aaron Blohowiak, Nora Jones, and Ali Basiri.


It's a succinct but effective overview of Chaos Engineering, at a medium level of detail. In print, it's about 60 pages and reads quickly. It's a free download from O'Reilly. The authors are all at Netflix.

Chaos Engineering isn't about breaking things in production, it's about learning new things about systems. And as the authors point out, these are often things you cannot deduce or even imagine. Chaos Engineering is the discipline of inducing controlled failure and observing how your systems respond.

One of my favorite parts is the example of systemic complexity on page 13, where a set of well-designed and rational systems with sensible behaviors interacts in a gloriously destructive way that few people (if any-certainly not me) would be able to predict, no matter how well they knew the systems.

Another favorite (and a great recruiting tactic) is the discussion of Netflix's motivations and priorities on page 9:

Software engineers typically optimize for...performance, availability, and fault tolerance...An experienced team will optimize for all three of these qualities simultaneously. At Netflix, engineers also consider a fourth property: velocity of feature development.

The book links the discipline of Chaos Engineering to feature velocity in a clear and compelling way.

Part 1 is an introduction and motivation, Part 2 delineates principles of Chaos Engineering, and Part 3 delves into the practice. A nice bonus is the included maturity model and map, and a helpful explanation of how to interpret the scorings on the map and what to do about them.

The level of detail is enough to understand why Netflix does Chaos Engineering, a high-level idea of how, and why it's a Good Thing in general. It should be pretty persuasive, and includes enough outreach and appeal to different disciplines to neutralize most of the reasons a reader might imagine their industry can't use Chaos Engineering safely and profitably. (I could be wrong about that, but I'm left with the feeling that few of us would have valid excuses for not at least trying!)

Really, there's little to no reason that all of us can't use Chaos Engineering, even if we don't add all the trappings of method and science and so on. With just a little imagination, there are so many simple ways we can safely induce behaviors that are hard or impossible to test otherwise, and which will surface valuable new information. As an example, a super-basic way I added some lightweight chaos to a system I built a while ago is some ad-hoc fault injection, which allowed me to make a Go program panic deep inside of systems that weren't possible to test in integration tests. This is a good illustration, and I don't think I even knew much about Chaos Engineering at the time. We all can do easy, valuable things like this.

My only complaints about the book are stylistic. I think it would be easier to understand its lessons if it had more unbroken prose and less frequent headings/structure, and if it used plainer words. Nitpicks aside, I think it's the perfect introduction to Chaos Engineering: short enough that nobody can justify not reading it, just the right level of depth and breadth, and just enough information and guidance to get oriented and started, with clear next steps. Let's all introduce Chaos Engineering to build systems faster, better, and safer!

Chaos engineering Book

Published at DZone with permission of Baron Schwartz, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Spring Boot Docker Best Practices
  • Last Chance To Take the DZone 2023 DevOps Survey and Win $250! [Closes on 1/25 at 8 AM]
  • Choosing the Best Cloud Provider for Hosting DevOps Tools
  • Project Hygiene

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: