Github 가용성 보고서 : 2025 년 8 월

Github 가용성 보고서 : 2025 년 8 월

8 월에는 3 건의 사건이 발생하여 GitHub 서비스에서 성능이 저하되었습니다.

8 월 5 일 15:42 UTC (지속 32 분)

2025 년 8 월 5 일 UTC 15:33 UTC에서, 우리는 테이블 백킹 풀 요청 기능에서 열을 삭제하기 위해 프로덕션 데이터베이스 마이그레이션을 시작했습니다. 열이 더 이상 직접 사용되지 않았지만 ORM은 풀 요청 쿼리의 하위 집합에서 삭제 된 열을 계속 참조했습니다. 결과적으로 모든 웹 및 REST API 트래픽의 약 4%에서 충격 정점에 맞는 푸시, 웹 후크, 알림 및 풀 요청에 대한 오류율이 상승했습니다.

ORM에 제거 된 열을 무시하도록 지시하는 변경 사항을 배치하여 문제를 완화했습니다. 대부분의 영향을받는 서비스는 16:13 UTC에 의해 회수됩니다. 그러나이 수정은 우리의 가장 큰 생산 환경에만 적용되었습니다. 우리의 관습 및 카나리아 환경에 대한 업데이트는 수정 사항을 선택하지 않았으며, 이는 풀 요청 트래픽의 ~ 0.1%에 영향을 미치는 2 차 사건이 발생했으며, 이는 19:45 UTC에 의해 완전히 해결되었습니다.

마이그레이션에는 진보적 인 롤아웃 첫 번째 타겟팅 검증 환경 및 게이트를 인정하는 것과 같은 보호 기능이 있지만,이 사건은 충격이 관찰되었을 때 지속적인 롤아웃을 방해하는 응용 프로그램 모니터링 간격을 확인했습니다. 인간의 개입없이 향후 사건을 방지하기 위해 추가 자동화 및 보호 장치를 추가 할 것입니다. 또한 이미 환경에서 일부 유형의 변경 사항을 간소화하기 위해 노력하고 있으며, 이는 두 번째 사건이 발생하지 못하게되었습니다.

8 월 12 일 13:30 UTC (3 시간 44 분 지속)

2025 년 8 월 12 일, 13:30 UTC에서 17:14 UTC 사이에 Github 검색은 저하 상태에있었습니다. 사용자는 부정확하거나 불완전한 결과를 경험했으며 특정 페이지 (예 : 문제, 요청, 프로젝트 및 배포) 및 깨진 구성 요소 (Action Workflow 및 Label Filter)를로드하지 못했습니다.

대부분의 사용자 영향은 14:00 UTC에서 15:30 UTC 사이에 발생했으며 검색 쿼리의 최대 75%가 실패했으며 검색 결과 업데이트가 최대 100 분까지 지연되었습니다.

이 사건은로드 밸런서와 검색 호스트 간의 간헐적 연결 문제에 의해 트리거되었습니다. 재 시도 논리가 처음에는 이러한 문제를 가려졌지만 재 시도 대기열은 결국로드 밸런서를 압도하여 고장을 일으켰습니다. 검색 인덱싱 파이프 라인을 조절 한 후 15:30 UTC에 쿼리 고장이 완화되어 하중을 줄이고 재 훈련을 안정화 시켰습니다. 검색 호스트의 자동 재부팅 후 17:14 UTC에 연결 장애가 해결되어 나머지 시스템이 복구되었습니다.

우리는 내부 모니터와 플레이 북을 개선 했으며이 실패 모드의 재발을 추가로 완화하기 위해 검색 클러스터로드 밸런서를 조정했습니다. 우리는 이러한 문제를 유발하는로드 밸런싱 계층에서 구성 문제를 식별하고 해결했습니다.

8 월 27 일 20:35 UTC (지속 46 분)

2025 년 8 월 27 일, 20:35 ~ 21:17 UTC, Copilot, Web 및 REST API 트래픽은 성능 저하를 경험했습니다. Colecilot은 요청의 평균 36%가 최고 실패율 77%로 실패했습니다. 모든 비 청구 웹 및 REST API 트래픽 요청의 약 2%가 실패했습니다.

이 사고는 프로덕션 데이터베이스 마이그레이션을 시작한 후에 발생하여 Coplot 기능을 뒷받침하는 테이블에서 열을 삭제했습니다. 열이 더 이상 직접 사용되지 않았지만, 우리의 ORM은 삭제 된 열을 계속 참조했습니다. 이로 인해 많은 5xx 응답이 이루어졌으며 8 월 5 일에 사건과 유사했습니다. 21:15 UTC에서 생산 스키마에 수정을 적용했으며 21:17 UTC까지 모든 서비스가 완전히 복구되었습니다.

이 상황을 피하기 위해 수리가 진행 중이지만 두 번째 사건을 막을만큼 충분히 빨리 완료되지 않았습니다. 우리는 이제 모든 드롭 열 작업에 대한 임시 블록을 즉각적인 솔루션으로 구현했으며 향후 유사한 문제가 발생하지 않도록 더 많은 보호 수단을 추가했습니다. 또한 사본 문제가 제품의 다른 기능에 영향을 미치지 않도록 우아한 저하를 구현하고 있습니다.


상태 변경 및 사후 요약에 대한 실시간 업데이트는 상태 페이지를 따르십시오. 우리가 작업하는 일에 대한 자세한 내용은 Github 엔지니어링 블로그를 확인하십시오.

작성자가 작성했습니다

Jakub Oleksy

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다