깃허브가 지난 8월 17일 발생한 약 8시간에 걸친 대규모 서비스 장애에 대해 공식적으로 사과하고, 재발 방지를 위한 상세한 개선 계획을 발표했습니다. 이번 장애는 github.com, 인증(authentication), 깃허브 액션(GitHub Actions), API, 풀 리퀘스트(pull requests), 이슈(issues), 코파일럿(Copilot) 등 핵심 서비스 전반에 영향을 미쳐 전 세계 개발자들에게 큰 불편을 초래했습니다. 깃허브는 급증하는 트래픽을 감당하지 못한 용량 부족이 주된 원인이라고 밝혔습니다.
조사 결과, 이번 장애는 트래픽이 사상 최고치를 기록하면서 미국 중부 데이터센터의 핵심 인프라 구성 요소가 확장(scale)에 실패하며 시작되었습니다. 이로 인한 용량 압박이 시스템 전체로 확산되어 인증 실패와 여러 서비스 중단을 야기했습니다. 특히 코파일럿 서비스 복구에는 더 오랜 시간이 걸렸는데, 서비스 오류가 클라이언트 측 재시도 루프(retry loop)를 유발하여 복구 중 트래픽을 더욱 증가시켰기 때문입니다. 깃허브는 올해 4월 이후 월간 커밋(commit) 수가 14억 건에서 29억 건으로 두 배 이상 증가하는 등 폭발적인 성장을 겪고 있으며, 이러한 성장세가 시스템에 압박을 가하고 있다고 설명했습니다. 이에 깃허브는 300만 개 이상의 CPU 코어, 120페타바이트(PB)의 고속 스토리지, 상당한 네트워크 용량을 추가했으며, 기존 데이터센터의 전력 허용 범위 내에서 하드웨어를 증설하는 한편, 애저(Azure) 클라우드 마이그레이션을 가속화하고 있습니다. 현재 깃허브 플랫폼 로드의 약 58%와 전체 깃(Git) 작업의 절반이 애저에서 처리되고 있으며, 이는 5월 12%에서 크게 증가한 수치입니다.
이번 장애는 깃허브가 단순한 코드 저장소를 넘어 개발 생태계의 핵심 인프라로 자리 잡았음을 다시 한번 보여주었습니다. 깃허브의 서비스 중단은 전 세계 소프트웨어 개발 및 배포 프로세스에 직접적인 영향을 미치므로, 안정성 확보는 깃허브의 최우선 과제입니다. 깃허브는 앞으로 읽기 용량(read capacity)을 선형적으로 확장할 수 있는 새로운 아키텍처를 점진적으로 도입하고, 운영 관행을 개선하며, 시스템 간 공유 종속성(shared dependencies)을 제거하여 장애 발생 가능성을 줄이고 영향 범위를 제한할 계획입니다. 또한, 서비스 간 재시도 제한(retry limits), 재시도 예산(retry budgets), 가변 타임아웃(variable timeouts)을 적용하여 재시도 폭풍(retry storms)과 연쇄 부하(cascading load)를 방지하고, 잠재적인 용량 부족을 미리 감지할 수 있도록 낮은 우선순위의 CPU 및 메모리 경고(alerts)도 검토할 예정입니다. 이러한 노력은 개발자들이 깃허브를 신뢰하고 작업을 이어갈 수 있는 기반을 마련하는 데 필수적입니다.
