CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES

As application complexity increases, microservice-based applications are widely used because of their flexibility and extensibility compared to monolithic applications. On the other hand, microservice architecture creates the need for circuit breaker pattern to protect remote calls that may fail....

Full description

Saved in:
Bibliographic Details
Main Author: Dean Anugrah, Naufal
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/66608
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
id id-itb.:66608
spelling id-itb.:666082022-06-29T09:46:15ZCASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES Dean Anugrah, Naufal Indonesia Final Project microservice, circuit breaker, gRPC INSTITUT TEKNOLOGI BANDUNG https://digilib.itb.ac.id/gdl/view/66608 As application complexity increases, microservice-based applications are widely used because of their flexibility and extensibility compared to monolithic applications. On the other hand, microservice architecture creates the need for circuit breaker pattern to protect remote calls that may fail. However, current circuit breaker implementations only deal with failures from directly related service. As a result, remote calls that will eventually fail are still being made. This can lead to various operations that are unnecessary. In addition, the use of orchestration-based saga pattern creates the need for additional remote calls to compensate previous remote calls before failure happened. In this final project, cascading circuit breaker system is built. The system can propagate service availability status to other service that are not related directly. The system is implemented as a sidecar container which will run gRPC server that is used to wrap REST API calls. Service availability status propagation is done by utilizing service dependency data. The dependency data is built using additional data that are added into HTTP request header received from the application. Test conducted on application that is using orchestration-based saga pattern shows that the system has succeeded to propagate service availability status. As a result, endpoint calls that will eventually fail can be aborted earlier. CPU overhead caused by the system is linearly proportional to the incoming request rate. On the other hand, memory overhead caused by the system is constant regardless to the incoming request rate. Relatively, the overhead is constant and quite small, that are 2,33% increase on CPU and 3,47% increase on memory. The system also caused small overhead on HTTP response time, which is 3,2ms on average, but for a small number of requests there is a spike up to 35,1ms that can be seen in 95th percentile value. text
institution Institut Teknologi Bandung
building Institut Teknologi Bandung Library
continent Asia
country Indonesia
Indonesia
content_provider Institut Teknologi Bandung
collection Digital ITB
language Indonesia
description As application complexity increases, microservice-based applications are widely used because of their flexibility and extensibility compared to monolithic applications. On the other hand, microservice architecture creates the need for circuit breaker pattern to protect remote calls that may fail. However, current circuit breaker implementations only deal with failures from directly related service. As a result, remote calls that will eventually fail are still being made. This can lead to various operations that are unnecessary. In addition, the use of orchestration-based saga pattern creates the need for additional remote calls to compensate previous remote calls before failure happened. In this final project, cascading circuit breaker system is built. The system can propagate service availability status to other service that are not related directly. The system is implemented as a sidecar container which will run gRPC server that is used to wrap REST API calls. Service availability status propagation is done by utilizing service dependency data. The dependency data is built using additional data that are added into HTTP request header received from the application. Test conducted on application that is using orchestration-based saga pattern shows that the system has succeeded to propagate service availability status. As a result, endpoint calls that will eventually fail can be aborted earlier. CPU overhead caused by the system is linearly proportional to the incoming request rate. On the other hand, memory overhead caused by the system is constant regardless to the incoming request rate. Relatively, the overhead is constant and quite small, that are 2,33% increase on CPU and 3,47% increase on memory. The system also caused small overhead on HTTP response time, which is 3,2ms on average, but for a small number of requests there is a spike up to 35,1ms that can be seen in 95th percentile value.
format Final Project
author Dean Anugrah, Naufal
spellingShingle Dean Anugrah, Naufal
CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
author_facet Dean Anugrah, Naufal
author_sort Dean Anugrah, Naufal
title CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
title_short CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
title_full CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
title_fullStr CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
title_full_unstemmed CASCADING CIRCUIT BREAKER SYSTEM ON MICROSERVICE APPLICATION RUNNING ON KUBERNETES
title_sort cascading circuit breaker system on microservice application running on kubernetes
url https://digilib.itb.ac.id/gdl/view/66608
_version_ 1822933094465798144