Chaos Engineering
Why should Chaos be part of your Distributed Systems Engineering?
The importance of Chaos Engineering in building highly resilient and dynamic system architectures
Why Do We Need Some Chaos?
We have all seen software systems grow in size and complexity over time. Traditionally, the complexity of the colossal on-premise enterprise systems has been a deterrent to frequent system changes, which in turn resulted in a more conservative approach towards software development and release management. With the rapid adoption and innovations in cloud computing, new and better systems architecture and software delivery have evolved to meet the fast-changing needs of unprecedented scalability and availability requirements for BigData, AI/ML, IoT, Gaming, Social and Mobile applications, sometimes at a global scale.
Agility and high resiliency needs of such systems also mean they need to be highly distributed, loosely coupled and redundancy built in to avoid single points of failures. Besides, microservices architecture can add further complexity in terms of security, networking, service discovery, management, distributed tracing, monitoring, and insights.