서비스 상태
모든 시스템 정상.
상태 페이지는 나쁜 소식을 말할 각오가 있어야 가치가 있습니다. 이 페이지는 장애가 끝난 뒤가 아니라 장애가 진행되는 동안 갱신됩니다. 그래서 원인을 아직 모르는 상태에서 구성 요소 옆에 조사 중이라고만 적혀 있는 경우가 생깁니다.
구성 요소
| 구성 요소 | 상태 | 목표 | 현재 상황 |
|---|---|---|---|
| API | 정상 | 가용성 99.9퍼센트 | 최근 24시간 동안 기준선을 넘는 오류 없음 |
| 프로비저닝 | 정상 | 결제 완료 주문의 99.5퍼센트가 작동하는 프로파일에 도달 | 최근 1시간은 목표를 웃돌고 있으며, 설치 중앙값은 41초 |
| 결제 | 정상 | 승인과 자동 환불을 60초 안에 처리 | 결제사가 정상으로 보고하고 있고 환불도 일정대로 실행 중 |
| 커버리지 데이터 | 정상 | 공개 수치를 매일 갱신하고 25개 표본 하한을 유지 | 직전 갱신이 완료됐고 오래된 데이터로 가려진 국가 없음 |
| 고객지원 | 정상 | 첫 응답 60초 이내, 하루 24시간 | 운영 중인 모든 언어에서 대기열이 목표 안에 있음 |
정상은 최근 1시간 동안 해당 구성 요소가 목표를 지켰다는 뜻입니다. 다음 1시간을 약속하는 말이 아닙니다.
99.5%
프로비저닝 성공률 목표
60초
프로비저닝 실패 시 자동 환불
30분
공개 포스트모템 대상이 되는 장애 지속 시간
72시간
그 포스트모템을 공개하는 기한
각 상태의 의미
| 상태 | 의미 | 저희가 하는 일 |
|---|---|---|
| 정상 | 최근 1시간 동안 목표를 지키고 있습니다 | 아무것도 하지 않습니다. 평상시 상태이고 미래를 약속하지 않습니다 |
| 성능 저하 | 작동하지만 목표보다 느리거나 불안정합니다 | 이 페이지에 명시하고, 영향을 받은 고객에게 연락하고, 요청 없이 보상을 반영합니다 |
| 부분 장애 | 통신사 한 곳이나 한 지역처럼 특정할 수 있는 범위에서 실패합니다 | 대상을 명시하고, 실패할 경로의 구매를 막고, 환불이 자동으로 실행됩니다 |
| 대규모 장애 | 넓은 범위에서 실패합니다 | 장애 대응 총괄을 지정하고, 해결될 때까지 최소 30분마다 업데이트를 올립니다 |
| 점검 | 시간대가 정해진 계획 작업입니다 | 최소 72시간 전에 공지하고 트래픽이 가장 적은 시간에 잡습니다 |
아마 괜찮을 것이라는 뜻의 상태는 없습니다. 구성 요소는 목표를 지키고 있거나, 이 페이지에 이름이 올라 있거나 둘 중 하나입니다.
장애 대응 원칙
두 가지 약속이 전체를 떠받치고 있고, 둘 다 일부러 불편하게 만들었습니다. 첫째, 영향을 받은 고객에게 그분들이 알아차리기 전에 저희가 먼저 알립니다. 둘째, 30분을 넘긴 장애는 모두 글로 쓴 포스트모템을 72시간 안에 공개합니다.
포스트모템은 개별 직원이 아니라 시스템과 결정을 지목합니다. 그리고 다른 사람 이야기를 쓰는 관리자가 아니라, 온콜을 맡고 있던 본인이 씁니다.
72시간 기한을 못 지키게 되면, 그 72시간 안에 지연 사실과 이유를 공개합니다. 놓친 기한을 늦게 알리는 것은 실패가 두 번이기 때문입니다.
- 탐지는 프로비저닝 성공률과 결제 승인률에서 자동으로 이뤄집니다. 그래서 장애는 누가 항의할 때가 아니라 수치가 움직일 때 시작됩니다
- 이 페이지의 구성 요소 상태는 원인을 알기 전이라도 선언 후 5분 안에 바뀝니다
- 대응은 장애 대응 총괄이 지휘하고, 커뮤니케이션은 다른 사람이 맡습니다. 두 업무가 서로의 시간을 빼앗지 않게 하기 위해서입니다
- 영향을 받은 고객을 특정해 연락드립니다. 서비스가 저하된 경우 보상은 요청을 받아 제공하는 것이 아니라 이미 반영된 상태로 안내합니다
- 실패할 것을 아는 경로에서는 구매를 막습니다. 환불해야 할 돈을 받는 것이 판매를 놓치는 것보다 나쁘기 때문입니다
- 대규모 장애 중에는 최소 30분마다 업데이트를 올립니다. 아직 모른다는 내용이더라도 올립니다
- 복구 후 72시간 안에 타임라인, 고객 영향을 수치로 정리한 내용, 원인, 그리고 담당자와 날짜가 붙은 모든 조치를 담은 포스트모템을 공개합니다
목표가 100퍼센트가 아닌 이유
통신망이 끼어 있는 이상 100퍼센트는 거짓말이기 때문입니다. 프로비저닝 목표가 99.5퍼센트라는 것은, 1000건 중 약 5건이 결제와 작동하는 프로파일 사이 어딘가에서 실패한다고 소리 내어 말하는 것입니다.
중요한 것은 그 5건을 위한 경로가 설계돼 있다는 점입니다. 환불은 문의 없이 60초 안에 실행되고, 안내 메시지는 무슨 일이 있었는지와 대신 무엇을 해보면 되는지를 설명합니다. 그 고객이 환불을 받을 자격이 있는지 누군가 판단할 필요가 없습니다.
커버리지에도 같은 논리를 적용합니다. 통신사를 둘 이상 쓰는 지역에서 제휴 통신망이 혼잡하면, 장애로 기록하는 대신 연결을 옮기고, 어떤 전환을 했는지 안내에 적습니다.
통신망이 하나뿐이고 그 망의 상태가 나쁜 날에는 국가 페이지에 그렇게 씁니다. 커버리지 페이지에 중앙값, 가장 느린 10퍼센트, 표본 수를 공개하는 이유가 바로 이것입니다.
장애 이력
이번 보고 기간에는 30분을 넘긴 장애가 선언된 적이 없습니다.
저 문장의 값어치는 저희가 그것을 바꿀 각오만큼입니다. 위의 원칙을 이 정도로 자세히 적어둔 이유가 그것입니다. 과거의 포스트모템은 90일이 지나 사라지지 않고 모두 영구히 공개된 채로 남습니다.