A declarative approach and benchmark tool for controlled evaluation of microservice resiliency patterns

被引:0
作者
Aderaldo, Carlos M. [1 ]
Costa, Thiago M. [1 ]
Vasconcelos, Davi M. [1 ]
Mendonca, Nabor C. [1 ]
Camara, Javier [2 ]
Garlan, David [3 ]
机构
[1] Univ Fortaleza, Ctr Technol Sci, Fortaleza, Ceara, Brazil
[2] Univ Malaga, ITIS Software, Malaga, Spain
[3] Carnegie Mellon Univ, Software & Societal Syst Dept, Pittsburgh, PA 15213 USA
关键词
benchmarking; microservices; resiliency patterns; MODEL;
D O I
10.1002/spe.3368
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Microservice developers increasingly use resiliency patterns such as Retry and Circuit Breaker to cope with remote services that are likely to fail. However, there is still little research on how the invocation delays typically introduced by those resiliency patterns may impact application performance under varying workloads and failure scenarios. This article presents a novel approach and benchmark tool for experimentally evaluating the performance impact of existing resiliency patterns in a controlled setting. The main novelty of this approach resides in the ability to declaratively specify and automatically generate multiple testing scenarios involving different resiliency patterns, which one can implement using any programming language and resilience library. The article illustrates the benefits of the proposed approach and tool by reporting on an experimental study of the performance impact of the Retry and Circuit Breaker resiliency patterns in two mainstream programming languages (C# and Java) using two popular resilience libraries (Polly and Resilience4j), under multiple service workloads and failure rates. Our results show that, under low to moderate failure rates, both resiliency patterns effectively reduce the load over the application's target service with barely any impact on the application's performance. However, as the failure rate increases, both patterns significantly degrade the application's performance, with their effect varying depending on the service's workload and the patterns' programming language and resilience library.
引用
收藏
页码:170 / 192
页数:23
相关论文
共 56 条
[1]  
Aderaldo CM., 2023, SBES 23, P47, DOI DOI 10.1145/3613372.3613409
[2]  
[Anonymous], 2018, Hystrix: Latency and Fault Tolerance for Distributed Systems
[3]  
[Anonymous], OPENTRACING VENDORNE
[4]  
[Anonymous], RESILIECENBENCH 2022
[5]  
[Anonymous], HTTPBIN 2011 ACCESSE
[6]   The Circuit Breaker Pattern Targeted to Future IoT Applications [J].
Aquino, Gibeon ;
Queiroz, Rafael ;
Merrett, Geoff ;
Al-Hashimi, Bashir .
SERVICE-ORIENTED COMPUTING (ICSOC 2019), 2019, 11895 :390-396
[7]  
Beyer B., 2016, Site reliability engineering: How google runs production systems
[8]  
Birolini A., 2013, RELIABILITY ENG THEO
[9]  
Brooker M., 2015, AWS ARCHITECTURE BLO
[10]  
Brosch F., 2011, Proceedings of the joint ACM SIGSOFT conference-QoSA and ACM SIGSOFT symposium-ISARCS on Quality of software architectures-QoSA and architecting critical systems-ISARCS, P75