Chaotic influences from outside lead to the collapse of systems.

A software is created for specific tasks.  But in addition to the flawless operation of functions, the resilience of a system must be ensured. A bridge has the task of safely carrying cars or people. In case of disturbances, such as strong wind and or high water, which leads to increased lateral pressure on the load-bearing parts, the bridge must not collapse. The Tacoma Narrows Bridge “Gallopping Gertie” in Pierce County, Washington was not resilient. It began to vibrate due to the storm and eventually broke.

ChaosP_GalloppingGertie

Chaos Engineering Makes My Software Resilient

Chaos Engineering is a young discipline within software programming. Today’s software programs are very complex. Features are desired and important when using the software programs. However, complex software systems are unpredictable in the occurrence of complications, malfunctions or failures. Due to the ever-increasing complexity of software systems, components of the software are programmed as micro services by different teams. Despite consistent testing of the software components, problems eventually arise in the execution of the composite components. At this point, Chaos Engineering is an empirical method to uncover systemic vulnerabilities and the problems in the interaction of software components. Chaos Engineering is based on the principle of testing complex software systems for their functionality under conditions that are as real as possible. For this purpose, unfavorable conditions, i.e. chaotic conditions, from the real world are simulated and varied. For this purpose, unfavorable conditions, i.e. chaotic conditions, from the real world are simulated and varied. These unfavorable conditions that can occur when using the software systems are, for example, overloaded CPU’s, insufficient memory capacity or network problems. For example, to simulate these adverse events, an instance’s CPU is utilized, all of an instance’s available memory is utilized, or an instance’s hard disk is filled. Existing problems can be fixed and the resilience of the system is improved enormously.

Chaos Engineering simulates chaotic disturbances. Problems are detected and can be fixed.

Similar to robust bridges, good software systems must be resilient to outside influences that disrupt the system. Chaos Engineering is used to test the system for chaotically occurring disturbances and make it resilient. Just like a resilient bridge.