피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Full Jitter와 Retry Budget 도입으로 서비스 복구 시간 6분에서 40초로 단축
Exponential backoff with jitter stopped our CI retry storms
AI 요약
Context
Fixed-interval retry 구조로 인해 다수의 CI Agent가 동일 시점에 요청을 집중시키는 Retry Storm 발생. 서비스 일시 장애 시 복구 직후 동기화된 트래픽 파동이 다시 시스템을 마비시키는 cascading failure 구조의 한계 노출.
Technical Solution
- 요청 간 상관관계를 제거하여 트래픽 분산을 유도하는 Full Jitter 알고리즘 적용
- 요청 횟수를 제한하기 위해 Sliding Window 기반의 Retry Budget(최대 20%) 도입
- 연속 실패 시 네트워크 요청을 즉시 차단하여 서버의 최소 복구 시간을 보장하는 Circuit Breaker 설계
- 단일 요청의 결정성보다 시스템 전체의 안정성을 우선한 Full Jitter 방식 채택
- 서비스 가용성 저하를 방지하기 위한 Game-day 테스트 기반의 임계치 튜닝 수행
실천 포인트
1. 단순 Exponential Backoff 대신 Full Jitter를 적용하여 요청 시점을 완전히 무작위화했는가?
2. Retry-to-Request 비율을 제한하는 Retry Budget을 설정하여 총 트래픽 상한선을 정의했는가?
3. Circuit Breaker의 임계치를 실제 장애 상황을 가정한 Game-day 테스트로 검증했는가?