Employing Software Diversity in Cloud Microservices to Engineer Reliable and Performant Systems

Published: 01 Jan 2024, Last Modified: 12 May 2025ACSOS 2024EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: In the ever-shifting landscape of software engineering, continuous adaptation is essential for maintaining system dependability. Software iterations often introduce new challenges, such as unexpected bugs and performance anomalies, underscoring the importance of addressing these complexities to ensure sustained, robust operations. This work proposes employing software multi-versioning to enhance system reliability and performance simultaneously. A cornerstone of our approach is the derivation of a reliability metric, which encapsulates the reliability and performance of each software version under adverse conditions. Using this metric, a dynamic controller was designed to adjust the population of software versions, maintaining higher replica counts for more reliable versions while preserving diversity. Our diversity-aware autoscaling algorithm further optimizes system performance and reliability at any scale. Extensive experiments on realistic cloud microservice applications validate the effectiveness of our methodology.
Loading