Chapter 11. Building Systems with Reduced Risk

In Chapter 9, we learned how to mitigate risks that exist within your system and applications. However, there are things you can do to proactively build your applications with a reduced risk profile. This chapter discusses the following techniques:

Technique #1: Introduce Redundancy

Building in redundancy allows you to survive issues that would otherwise cause outages but potentially at the cost of system complexity.

Technique #2: Understand Independence

It’s important and useful to know what it means for components to be independent and to understand the (sometimes hidden) dependencies among services, resources, and system components.

Technique #3: Manage Security

Bad actors are an increasingly common cause of availability issues and introduce significant risk to modern applications.1

Technique #4: Encourage Simplicity

Complexity is the enemy of stability. The more complex your application, the easier it is for a problem to occur.

Technique #5: Build in Self-Repair

Even when problems do occur, the more automated your repair processes, the less impact a given problem will have on your customers.

Technique #6: Standardize on Operational Processes

Variation in the way you do business can introduce risk and ultimately can cause availability issues. Standardized, documented, and repeatable processes decrease the likelihood of manual mistakes causing outages.

This is far from an exhaustive list, but it should at least get you thinking ...

Get Architecting for Scale, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.