![]() The goal is to able to thrive and function even under duress. Benefits of Building With Anti-Fragile in Mind Of course, AI has the potential to make harmful decisions and even introduce unintentional bias, so organizations should have accountability for the algorithms they oversee, cautioned Razzaq. But by feeding a machine learning model with more and more experiences, it could deal with untested new scenarios more gracefully. Of course, there is a limit to how automation can respond to unforeseen issues. The next frontier of designing anti-fragile architecture is developing self-learning, autonomous systems. If all systems are down, the system could still accept unverified payments in a queue and let this continue until the threshold reaches a certain risk level. For example, if a credit card verification component goes offline, the system should naturally accept other forms of payment and automatically suggest another form, such as a bank transfer. One method to decouple is by introducing alternate paths. To avoid that, it’s a good practice to prevent tight coupling between components-especially between critical systems and non-critical ones. If systems are too closely coupled, errors and outages can ripple across multiple software services. For example, returning to our payment platform example, this may include switching off a payment transaction type to see how the system functions in an extreme scenario. Introduce chaos engineering to the component to see how it behaves. Once you’ve identified this critical infrastructure, figure out how to test for fragility in your environment. For a payments processor SaaS, for example, this would be the infrastructure supporting its transactional engine, such as the login and payment microservices. Define these vital components at the heart of your product which must remain functional. Start With Your Most Critical Systems Firstįirst, introduce chaos engineering to your most absolute critical systems. So, how can we construct anti-fragile software systems - especially when real-world challenges are often unpredictable? Razzaq shared helpful advice to consider when crafting anti-fragile software architecture. Tips to Construct Anti-Fragile Software Systems In essence, anti-fragile software systems can understand and adapt to new environments without much, or any, human input. Or if the whole cluster goes down, ideally, the system would automatically restart and scale to the necessary requirements. For example, if you manually remove a few nodes from the cluster but the system knows it needs seven to function, it could automatically spin up additional nodes. “Software that can respond the best adapts the best,” said Razzaq. This could mean pulling out cables and restarting servers to gauge how software systems respond. ![]() You randomly introduce bugs and malformed requests and attempt to create as much havoc as possible to see what happens. Chaos engineering is the act of throwing a wrench into the machine. One example of gauging anti-fragile in software environments is chaos engineering, says Razzaq. ![]() For example, a hallmark of site reliability engineering (SRE) is introducing automation to enhance the stability of applications. To meet high user demands, as well as specific service-level objectives (SLOs) and agreements (SLAs), most software companies are already investing in cloud-native tools that improve reliability. Especially when under extreme loads, systems must be elastic to adapt and survive. Well, organizations need to develop highly-tolerant software systems to meet rising digital consumer expectations. So, how does this relate to software development? Immune systems similarly adapt and respond to new viruses and improve the body’s resilience over time. For example, consider how human muscle grows under stress and load. As described by Nassim Nicholas Taleb in the book ‘Antifragile: Things That Gain from Disorder,’ anti-fragile systems thrive in adversity. Understanding Anti-FragileĪs the adage goes, “What doesn’t kill you makes you stronger.” And it’s true-many natural systems tend to thrive under inhospitable conditions. Below, we’ll define what anti-fragile is and see how this concept can be applied to software development and DevOps. And introducing anti-fragile concepts into your application networks can be done with just a few (relatively) simple steps. According to Razzaq, anti-fragile represents the next evolution of reactive, resilient software systems. I recently met with Asim Razzaq, co-founder and CEO of Yotascale and former head of platform engineering at PayPal, to discover what it takes to build anti-fragile software.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |