피드로 돌아가기
GitHub availability report: March 2026
GitHub BlogGitHub Blog
Infrastructure

GitHub 3월 장애 분석: 캐시 폭풍부터 Redis 설정 오류까지

GitHub availability report: March 2026

Jakub Oleksy2026년 4월 9일4intermediate

Context

사용자 설정 캐싱 메커니즘의 과도한 쓰기 부하로 인한 서비스 성능 저하 발생. Redis 로드 밸런서 설정 오류 및 시스템 인증 실패로 인한 서비스 중단 사례 포함. 외부 업스트림 의존성 장애로 인한 통합 서비스 알림 실패 문제 직면.

Technical Solution

  • 캐시 쓰기 부하 감소를 위한 배포 과정 중 발생한 캐시 만료 및 재계산 버그 수정 및 롤백 수행
  • 캐싱 메커니즘 내 Killswitch 도입 및 사전 알림 모니터링 체계 강화로 사용자 영향 최소화
  • 캐시 메커니즘을 전용 호스트로 분리하여 장애 전파 범위를 제한하는 격리 구조 설계
  • Redis 로드 밸런서 설정 오류 방지를 위한 자동화 검증 프로세스 도입 및 배포 동결 전략 적용
  • Redis 클라이언트 설정 최적화를 통해 일시적인 캐시 중단 상황에 대한 복원력 확보
  • 자격 증명 생명주기 이벤트 자동 모니터링 구현 및 인증 실패 시 빠른 감지와 복구 프로세스 정립

Impact

  • github.com 요청 실패율 최대 40%, GitHub API 요청 실패율 43% 기록
  • GitHub Copilot 요청 에러율 최대 93% 및 100% 도달
  • GitHub Actions 워크플로 95%가 5분 내 시작 실패 및 평균 30분 지연
  • Microsoft Teams 통합 서비스 요청 에러율 최대 90.1%, 통합 설치 건수의 19% 알림 실패

Key Takeaway

공통 인프라의 설정 변경이 전체 서비스로 전파되는 Cascading Failure를 막기 위한 서비스 격리와 전용 호스트 배치가 필수적임. 자격 증명과 같은 핵심 인증 요소의 생명주기 자동화 및 모니터링은 시스템 가용성의 기초 설계 원칙임.


캐시 갱신 로직 변경 시 전체 캐시 만료(Thundering Herd) 가능성을 검토하고, 반드시 단계적 배포와 Killswitch를 확보할 것

원문 읽기