Amazon Web Services (AWS) wants to help its customers bring some controlled chaos to their cloud-based services and applications. 

The cloud giant plans to release chaos engineering as a managed service in early 2021, borrowing a framework popularized by Netflix for internal use back in 2011 and that AWS uses extensively for its own infrastructure and services today.

“Unlike automated reasoning, we believe that chaos engineering is for everyone, not just shops running at Amazon or Netflix scale. And that’s why today I’m excited to pre-announce a new service built to simplify the process of running chaos experiments in the cloud,” Amazon CTO Werner Vogels said during his keynote today at AWS re:Invent.

“AWS Fault Injection Simulator is a fully managed chaos engineering service that makes it easy to discover failable paths in your applications. [It] helps developers easily set up and run controlled chaos engineering experiments across a range of AWS services,” he said. 

Fault injection or chaos engineering allows organizations to “discover these unknowable unknowns” by purposefully sending bad data to an application in an effort to make it crash, Vogels explained, adding that website forms, APIs, and mobile applications should all be tested to determine what might happen if malformed data is sent through those channels.

“Even if your code is perfectly written,” he said, “packets get stopped and unexpected traffic spikes happen. Even well-built cloud applications today can depend on dozens of services and components all working together, and failures can happen at every level. To understand how your application will behave when these events happen, the best form of testing is chaos engineering.”

AWS Previews Chaos Engineering

Chaos engineering helps IT teams and developers understand how applications respond to specific issues by injecting failures into infrastructure, and running those experiments against prediction systems, Vogels said. Those faults could include baseline traffic loads, adding latency to database calls, invalidating timeouts and retries, the failure of underlying compute networking databases, and many other potential points of failure, including control plane level faults like API toppling or server errors, he added. 

Once a chaos engineering experiment is complete, AWS will use the data collected to determine if any hypothetical weaknesses were confirmed, and identify where improvements should be made to avoid such faults in a production network.

“I see a lot of benefits for incorporating chaos engineering into your business,” Vogels said. “Most people think about chaos engineering for resilience, and that’s true, but there’s also performance improvements you can make. It is the blind spot that you can catch in your monitoring, and perhaps the most underrated is the experience your teams will get learning how to respond to infrequent but critical events.”

Chaos engineering is the best way to test a system operating in the cloud, and AWS’ offering doesn’t require a level of expertise that has thus far precluded some companies from using these tools, Vogels said. 

“Out of all the things we’re announcing this year, this is the one that I’m most excited about,” he said. “By offering this as a service, I believe that we can have a massive positive impact on building more robust, more durable, and more dependable systems in the cloud.”