Antifragile – Better living through chaos
Is it possible to build a better system that doesn’t just survive shocks but actually thrives because of them? Nassim Taleb thinks so. Today, we’re talking about antifragility and what that means for DevOps.
Humpty dumpty or hearts, what’s easily broken is not easily mended. But what if we could design our systems to be able to handle shocks and stressors? We’re not just building a robust system, capable of resisting this sort of assault, but an adaptive one. Building a system that responds to a shock by getting even better and improving.
Not just robust – antifragile
This concept of antifragile was developed by Professor Nassim Nicholas Taleb, author of Fooled by Randomness (2001), The Black Swan (2007–2010) and The Bed of Procrustes (2010). In his book, Antifragile: Things That Gain From Disorder, Taleb continues his philosophical debate on the nature of uncertainty. Put simply, Taleb thinks that shocks can be a good thing.
“Some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty. Yet, in spite of the ubiquity of the phenomenon, there is no word for the exact opposite of fragile. Let us call it antifragile. Antifragility is beyond resilience or robustness. The resilient resists shocks and stays the same; the antifragile gets better,” Taleb writes at the beginning of his book.
SEE MORE: The serverless cloud — Part 1
An excellent example of antifragile might be the human immune system. The immune system works just fine on its own. However, stressors such as germs actually serve as a way to improve the immune system as a whole. The immune system learns to deal with the intruders and becomes stronger over time.
“Simply, antifragility is defined as a convex response to a stressor or source of harm (for some range of variation), leading to a positive sensitivity to increase in volatility (or variability, stress, dispersion of outcomes, or uncertainty, what is grouped under the designation “disorder cluster”). Likewise fragility is defined as a concave sensitivity to stressors, leading a negative sensitivity to increase in volatility. The relation between fragility, convexity, and sensitivity to disorder is mathematical, obtained by theorem, not derived from empirical data mining or some historical narrative. It is a priori.” (Taleb 2013)
DevOps and antifragility
So, what does antifragile mean for developers? It doesn’t mean we need to build a better mousetrap, but that we need to build a smarter, more adaptive mousetrap. Specifically, there is growing consensus that computer science needs to develop antifragile systems by design. This means a building a system which improves from the environment’s input.
One area that could greatly benefit from an increase of antifragile system is cloud computing. In an article in Procedia Computer Science, Guang et al. (2014) argued that “the development of cloud services require antifragility, as the errors and failures of existing architectures and services become the driving force to develop future cloud architecture, business model and applications”.
There are two reasons for this:
- Cloud computing is an open system that is nearly impossible to define and predict. Cloud computing has reached all sorts of areas in our daily and computing life, making the number of users, developers, and shareholders in this technology grow every day. Determining a specific direction and scope is difficult to do because of its nebulous nature.
- It is hard to evaluate the efficacy and performance of the cloud ecosystem as a whole.We can evaluate specific metrics. However, it is difficult, if not impossible, to evaluate the cloud itself.
Guang et al. put forward a simple, five-step implementation plan for creating more antifragile cloud services. This allows the clouds to the clouds to “always approach a “better” system as considered by most stakeholders”. This antifragile development process has temporally and spatially interleaved steps, making it possible for continued evaluation.
In conclusion, making systems more adaptive is the raison d’être for many developers these days. Antifragile systems promise a smarter way for systems to handle shocks and even improve because of them. It might be a good idea to check out Taleb’s book or Guang’s paper on how to improve their processes for a smarter, more adaptive system.