{"id":14913,"date":"2020-09-21T20:15:36","date_gmt":"2020-09-21T14:45:36","guid":{"rendered":"https:\/\/coforge.site\/cigniti\/blog\/?p=14913"},"modified":"2022-07-29T11:29:23","modified_gmt":"2022-07-29T05:59:23","slug":"chaos-testing-software-resilience-testing","status":"publish","type":"post","link":"https:\/\/coforge.site\/cigniti\/blog\/chaos-testing-software-resilience-testing\/","title":{"rendered":"How Chaos Testing helps build and deliver resilient software"},"content":{"rendered":"<p><span data-contrast=\"auto\">In\u00a0<\/span><span data-contrast=\"auto\">the real world<\/span><span data-contrast=\"auto\">, things are rarely perfect.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Software fails. Outages happen. Cyberattacks occur.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Consequently, customers suffer from non-availability of the needed application and long downtime. Businesses suffer from lost revenues and bruised reputation.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Is it possible to develop and deploy a software that never faces any issues? Probably not. But it is indeed possible to minimize the impact of those issues by designing resiliency in the software with the help of chaos testing or chaos engineering.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u201cPrinciples of Chaos Engineering\u201d defines the practice as the \u201cd<\/span><span data-contrast=\"auto\">iscipline of experimenting on a distributed system in order to build confidence in the system\u2019s capacity to withstand turbulent conditions in production.<\/span><span data-contrast=\"auto\">\u201d<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">This involves intentional introduction of<\/span><span data-contrast=\"auto\">\u00a0failure into a software system to measure the system\u2019s ability to tackle with it and evaluate the impact of the failure on the system\u2019s availability and durability.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The concept of Chaos Engineering was introduced and developed by Netflix to test the resilience of their IT infrastructure for ensuring a seamless experience for their customers. They called it \u2018Chaos Monkey\u2019.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Antonio Garc\u00eda Mart\u00ednez<\/span><span data-contrast=\"auto\">, the author of the book \u2018Chaos Monkeys\u2019 explains the concept as \u2013<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">&#8220;Imagine a monkey entering a &#8216;data center&#8217;, these &#8216;farms&#8217; of servers that host all the critical functions of our online activities. The monkey randomly rips cables, destroys devices and returns everything that passes by the hand [i.e. flings excrement]. The challenge for IT managers is to design the information system they are responsible for so that it can work despite these monkeys, which no one ever knows when they arrive and what they will destroy.&#8221;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The concept might seem counterintuitive, but is a brilliant tool to prepare your software against any potential issues. Instead of waiting for an error to occur for implementing the fix, chaos engineering or chaos testing takes a proactive approach.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">By undertaking the practice of chaos testing, organizations have more control over the introduced error. With this benefit, they can quickly identify hidden defects, vulnerabilities, and other issues, which may\u00a0<\/span><span data-contrast=\"auto\">never have presented themselves during the traditional testing processes. Having such critical errors lying around may prove fatal in the long run.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">The impact of software failures<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">History has been a witness to numerous incidents where the tiniest of bug in a software led to catastrophic outcomes.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Recently, London\u2019s Heathrow Airport was hit by technical issues, impacting more than hundreds of flights. And, the two Boeing 737 Max incidents are unforgettable.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">A few weeks ago, the video conferencing application Zoom went down for hours, which disrupted meetings and classes\u00a0<\/span><span data-contrast=\"auto\">around the United States.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">A recent cyberattack on\u00a0<\/span><span data-contrast=\"auto\">Brno University Hospital in the Czech Republic\u00a0<\/span><span data-contrast=\"auto\">caused<\/span><span data-contrast=\"auto\">\u00a0an immediate computer shutdown in the midst of the coronavirus outbreak.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">These are just a few examples from an ocean of incidents that happen every year due to software glitches and unresolved defects.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">These failures cause an organization to be the talk of the town for all the wrong reasons. Not only does their business and revenue get impacted, but their hard-earned reputation also has to face a heavy blow.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">Mean Time To Recovery (MTTR) vs. Mean Time To Failure (MTTF)<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">Traditionally, organizations take pride in the longest time that they have had without any outage or technical issues. This means that they rely on the Mean Time To Failure (MTTF), which is the average time for which a system operates before failing.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">But, the irony is that the customer won\u2019t remember all the time a software system worked perfectly, but will never forget the ONE time that it didn\u2019t.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Therefore, it is high time that organizations shift their focus from the Mean Time To Failure to Mean Time to Recovery.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The Mean Time To Recovery is the average time that a software system takes to recover from a failure. Now, the objective for the global organizations should be to minimize the Mean Time To Recovery to\u00a0<\/span><span data-contrast=\"auto\">such an extent that the customers do not even notice when an issue occurs. And this can be made possible with the help of Chaos testing.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">Chaos testing and DevOps<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">Let\u2019s get one thing clear \u2013 to systemically inject an error into a software system in no way means to cause any impact on the end customers. Whatever experimentation with the deliberate introduction of chaos\u00a0<\/span><span data-contrast=\"auto\">happens<\/span><span data-contrast=\"auto\">\u00a0must remain behind the curtains of a well-functioning application for the end users.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">This cannot be feasible to do with the legacy software development and testing methodologies. Chaos engineering complements well only in a DevOps setup where automation is integral to the entire development and software testing process, a continuous monitoring and feedback loop is established, and there is scope for continuous improvement.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">When a fault is injected into a system, several bugs are uncovered and vulnerabilities identified. With the help of a DevOps practice, these defects can be resolved in real time and automation can be deployed for future occurrences.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Chaos testing, combined with DevOps, is the ultimate way of developing and delivering highly fault-tolerant and resilient software.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">How can we help<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">Achieving fast and continuous development &amp; deployment of business-critical cloud-based applications across diverse platforms requires seamless collaboration among development,\u00a0<\/span><a href=\"https:\/\/www.cigniti.com\/services\/test-automation\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">test automation<\/span><\/a><span data-contrast=\"auto\">, &amp; operations teams.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">At Cigniti, we standardize efforts<\/span><span data-contrast=\"auto\">, ascertain software resilience,<\/span><span data-contrast=\"auto\">\u00a0and ensure accelerated time-to-market with\u00a0<\/span><a href=\"https:\/\/www.cigniti.com\/services\/devops-testing\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">DevOps testing<\/span><\/a><span data-contrast=\"auto\">\u00a0solutions. We focus on delivering improved deployment quality with greater operational efficiency. Our DevOps testing specialists with their deep experience in Continuous Integration (CI) testing &amp; Continuous Deployment (CD) help configure &amp; execute popular CI\/CD tools supporting your <a href=\"https:\/\/www.cigniti.com\/services\/devops-transformation\/\" target=\"_blank\" rel=\"noopener\">DevOps transformation &amp; application testing<\/a> efforts.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.cigniti.com\/contact-us\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">Schedule a discussion<\/span><\/a><span data-contrast=\"auto\">\u00a0with us today.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:200,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In\u00a0the real world, things are rarely perfect.\u00a0 Software fails. Outages happen. Cyberattacks occur.\u00a0 Consequently, customers suffer from non-availability of the needed application and long downtime. Businesses suffer from lost revenues and bruised reputation.\u00a0 Is it possible to develop and deploy a software that never faces any issues? Probably not. But it is indeed possible to [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":14914,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[735],"tags":[3265,3268,3269,3264,3267,3270,3266,319,2050,170,432,214],"ppma_author":[3727],"class_list":["post-14913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-testing","tag-chaos-engineering","tag-chaos-engineering-in-devops","tag-chaos-monkey-testing","tag-chaos-testing","tag-chaos-testing-microservices","tag-chaos-testing-scenerios","tag-devops-enviornment","tag-devops-methodology","tag-devops-qa","tag-devops-testing","tag-performance-engineering","tag-performance-testing"],"authors":[{"term_id":3727,"user_id":20,"is_guest":0,"slug":"cigniti","display_name":"About Cigniti (A Coforge Company)","avatar_url":{"url":"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/2024\/10\/Coforge-blog-Logo.png","url2x":"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/2024\/10\/Coforge-blog-Logo.png"},"author_category":"","user_url":"https:\/\/www.cigniti.com\/","last_name":"(A Coforge Company)","first_name":"About Cigniti","job_title":"","description":"Cigniti Technologies Limited, a Coforge company, is the world\u2019s leading AI &amp; IP-led Digital Assurance and Digital Engineering services provider. Headquartered in Hyderabad, India, Cigniti\u2019s 4200+ employees help Fortune 500 &amp; Global 2000 enterprises across 25 countries accelerate their digital transformation journey across various stages of digital adoption and help them achieve market leadership by providing transformation services leveraging IP &amp; platform-led innovation with expertise across multiple verticals and domains.\r\n<br>\r\nLearn more about Cigniti at <a href=\"https:\/\/www.cigniti.com\/\">www.cigniti.com<\/a> and about Coforge at <a href=\"https:\/\/www.coforge.com\/\">www.coforge.com<\/a>."}],"_links":{"self":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/14913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/comments?post=14913"}],"version-history":[{"count":0,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/14913\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media\/14914"}],"wp:attachment":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media?parent=14913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/categories?post=14913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/tags?post=14913"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/ppma_author?post=14913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}