TY - GEN
T1 - Can My Microservice Tolerate an Unreliable Database? Resilience Testing with Fault Injection and Visualization
AU - Assad, Michael
AU - Meiklejohn, Christopher S.
AU - Miller, Heather
AU - Krusche, Stephan
N1 - Publisher Copyright:
© 2024 IEEE Computer Society. All rights reserved.
PY - 2024/4/14
Y1 - 2024/4/14
N2 - In microservice applications, ensuring resilience during database or service disruptions constitutes a significant challenge. While several tools address resilience testing for service failures, there is a notable gap in tools specifically designed for resilience testing of database failures. To bridge this gap, we have developed an extension for fault injection in database clients, which we integrated into Filibuster, an existing tool for fault injection in services within microservice applications. Our tool systematically simulates database disruptions, thereby enabling comprehensive testing and evaluation of application resilience. It is versatile, supporting a range of both SQL and NoSQL database systems, such as Redis, Apache Cassandra, CockroachDB, PostgreSQL, and DynamoDB. A defining feature is its integration during the development phase, complemented by an IntelliJ IDE plugin, which offers developers visual feedback on the types, locations, and impacts of injected faults. A video demonstration of the tool's capabilities is accessible at https://youtu.be/bvaUVCy1m1s.
AB - In microservice applications, ensuring resilience during database or service disruptions constitutes a significant challenge. While several tools address resilience testing for service failures, there is a notable gap in tools specifically designed for resilience testing of database failures. To bridge this gap, we have developed an extension for fault injection in database clients, which we integrated into Filibuster, an existing tool for fault injection in services within microservice applications. Our tool systematically simulates database disruptions, thereby enabling comprehensive testing and evaluation of application resilience. It is versatile, supporting a range of both SQL and NoSQL database systems, such as Redis, Apache Cassandra, CockroachDB, PostgreSQL, and DynamoDB. A defining feature is its integration during the development phase, complemented by an IntelliJ IDE plugin, which offers developers visual feedback on the types, locations, and impacts of injected faults. A video demonstration of the tool's capabilities is accessible at https://youtu.be/bvaUVCy1m1s.
KW - Byzantine faults
KW - Fault injection
KW - SFIT
KW - databases
KW - resilience testing
UR - http://www.scopus.com/inward/record.url?scp=85194821786&partnerID=8YFLogxK
U2 - 10.1145/3639478.3640021
DO - 10.1145/3639478.3640021
M3 - Conference contribution
AN - SCOPUS:85194821786
T3 - Proceedings - International Conference on Software Engineering
SP - 54
EP - 58
BT - Proceedings - 2024 ACM/IEEE 46th International Conference on Software Engineering
PB - IEEE Computer Society
T2 - 46th International Conference on Software Engineering: Companion, ICSE-Companion 2024
Y2 - 14 April 2024 through 20 April 2024
ER -