N° 01 — 목록

'redundancy' (2)

  1. Infra Architecture/Foundations

    Foundations - 04. redundancy와 고가용성 패턴

    다섯 개의 백업이 전부 실패할 수 있다 — redundancy의 진짜 조건2017년 1월 31일, GitLab의 한 엔지니어가 피로한 상태에서 데이터베이스 복구 작업을 하다가 잘못된 디렉터리에서 rm -rf를 실행했다. 프로덕션 데이터베이스가 삭제됐다. 놀란 팀이 백업을 확인했다. 백업은 다섯 군데에 있었다 — 디스크 백업, S3 동기화, Azure 동기화, staging 복제, LVM(논리 볼륨 관리자) 스냅샷. 이 중 정상적으로 복구 가능한 건 단 하나, LVM 스냅샷뿐이었다. 디스크 백업은 오래 전부터 실패하고 있었고, S3·Azure 동기화는 설정 오류로 오랫동안 돌지 않았고, staging 복제는 잘못된 데이터를 받고 있었다. 다섯 중 하나만 살아 있었다. 팀은 그 하나로 복구했지만, 문제의 본..

    · 댓글
  2. Infra Architecture/Foundations

    Foundations - 03. fault domain과 blast radius

    장애는 한 점에서 시작해 한 묶음을 죽인다 — fault domain과 blast radius2018년 10월 21일, GitHub는 미국 동부와 서부 리전 사이에 43초 동안 네트워크 분단이 생겼다. 짧은 시간이라 사용자는 거의 눈치채지 못했지만, 그 43초 동안 MySQL 동기화가 양쪽에서 동시에 진행되는 split-brain 상태가 만들어졌다. 양쪽 데이터베이스가 미세하게 다른 상태로 갱신되기 시작한 것이다. GitHub 팀이 이를 감지하고 복구 작업에 들어갔을 때, 단순히 "다시 연결"로는 끝나지 않았다 — 양쪽 상태의 불일치를 조율하는 데 24시간이 걸렸고, 그동안 GitHub 대부분의 서비스가 중지됐다. 사용자 3천5백만 명에게 영향을 미친 이 사건의 핵심은 "장애가 짧았다"가 아니라 — 두 ..

    · 댓글 1