우아한형제들 / incident-management

2 개의 포스트

woowahan

장애 대응의 성패를 가르는 First Action — 우아한형제들의 장애 관리 라이프사이클 (새 탭에서 열림)

우아한형제들은 장애 대응의 성패가 장애 인지 속도보다 'First Action(초동 조치)'의 속도와 종류에 달려 있음을 확인하고, 이를 체계적으로 관리하기 위한 장애 관리 라이프사이클을 정립했습니다. 실제 장애 사례 분석 결과, 핫픽스보다 롤백 위주의 기계적 완화 조치가 장애 지속 시간을 절반 가까이 줄이는 효과가 있었으며, 이를 위해 전사 공통의 메트릭과 단계를 정의하여 운영 프로세스를 개선하고 있습니다. 결과적으로 장애 대응을 개인의 역량이 아닌 시스템과 데이터 기반의 프로세스로 전환하여 고객 경험의 악영향을 최소화하는 것을 목표로 합니다. ## First Action의 중요성과 롤백의 효율성 * 70여 건의 장애 사례를 분석한 결과, 첫 조치로 핫픽스를 선택한 경우가 롤백을 선택한 경우보다 장애 지속 시간이 약 2배 더 길게 나타났습니다. * 핫픽스는 원인 파악, 코드 수정, 빌드 및 배포 과정을 거쳐야 하므로 서비스 상태가 방치되는 시간이 길어지는 반면, 롤백은 즉각적인 상태 복구가 가능합니다. * 장애 대응에서 중요한 것은 완벽한 원인 분석보다 '얼마나 빨리 의미 있는 완화 조치를 실행했는가'이며, 이를 위해 롤백이나 스케일 조정 같은 사전 정의된 기계적 조치를 우선시해야 합니다. ## 장애 관리 라이프사이클의 표준화 * 팀마다 장애 인지 및 대응 시점의 기준이 달라 발생하는 혼선을 방지하기 위해 전사 공통의 언어와 구조인 '장애 관리 라이프사이클'을 정의했습니다. * 라이프사이클은 크게 '잠재적 장애 상태(이상 탐지)'와 '실제 장애 상태(6단계)'로 구성되어 총 7단계의 흐름을 가집니다. * 각 단계는 이상 탐지(Anomaly) → 인지 및 전파(Open) → 분석(Investigating) → 원인 확인 및 조치(Identified) → 모니터링(Monitoring) → 해소 확인(Resolved) → 이행 추적(Closure Time)으로 이어집니다. * 특히 '조치(Identified)' 단계에서는 원인 규명에 매몰되기보다 여러 완화 조치를 병렬로 검토하여 고객 영향을 줄이는 데 집중합니다. ## 대응 속도와 병목을 측정하는 핵심 메트릭 * **MTTD(평균 탐지 및 인지 시간):** 단순히 알람이 울린 시점이 아니라, 담당자가 이를 확인하고 'ACK' 등의 객관적 근거를 남긴 시점까지 포함하여 탐지 체계의 신뢰도를 측정합니다. * **MTTR(평균 복구 시간):** 장애 인지 후 서비스가 정상화될 때까지의 시간으로, 복구 작업의 복잡성과 의사결정 구조의 효율성을 나타냅니다. * **MTTFA(평균 초동 조치 시간):** 장애 발생 후 롤백이나 스케일 조정 같은 최초의 기계적 조치가 실행되기까지의 시간으로, 대응 절차의 단순화 수준을 평가합니다. * **MTTEA(평균 유효 조치 시간):** 조치 실행 후 실제로 서비스 지표가 개선되기 시작한 시점까지의 시간으로, 수행한 조치가 얼마나 실질적인 효과가 있었는지 검증합니다. ## 이행 추적과 지속적인 운영 개선 * 장애가 해소(Resolved)된 이후에도 근본 원인 분석(RCA)을 문서화하고 재발 방지 대책을 실행하는 'Closure Time' 단계를 두어 운영 개선의 선순환을 만듭니다. * 장애 보고서 작성과 후속 대책 이행 프로세스를 분리하여 관리함으로써, 장애가 단순 종료에 그치지 않고 실제 시스템 고도화로 이어지도록 관리합니다. * 메트릭 측정을 통해 도출된 데이터는 어디에서 지연이 발생하는지 파악하는 '속도계' 역할을 하며, 이를 기반으로 자동화 도입이나 표준 대응 절차(SOP)를 개선합니다. 장애 대응의 핵심은 장애 상황에서 발생할 수 있는 '판단의 시간'을 줄이는 것입니다. 이를 위해 복잡한 분석 없이도 즉시 실행 가능한 롤백 환경을 구축하고, MTTFA와 같은 지표를 통해 초동 조치 속도를 구조적으로 단축하는 노력이 필요합니다. 조직 전체가 동일한 라이프사이클과 메트릭을 공유할 때, 장애 대응은 개인의 판단이 아닌 데이터 기반의 체계적인 시스템으로 작동할 수 있습니다.

woowahan

우아한형제들이 장애를 놓치지 않고 탐지하는 방법 | 우아한형제들 기술블로그 (새 탭에서 열림)

우아한형제들은 시스템 장애로 인한 고객 불편을 최소화하기 위해 서비스 지표 중심의 '서비스 이상 탐지 시스템'을 구축했습니다. 전통적인 인프라 모니터링의 사각지대를 보완하고자 실시간 데이터 예측과 임계치 관리 메커니즘을 도입했으며, 이를 통해 장애 탐지 속도와 대응 효율성을 동시에 확보했습니다. **서비스 지표 중심의 이상 탐지 필요성** * CPU, 메모리 사용률 등 전통적인 시스템 지표 모니터링만으로는 모든 장애 구간을 완벽하게 커버하기 어렵고 사각지대가 발생할 수밖에 없습니다. * 반면 주문 수, 결제 성공률 등 서비스 지표는 사용자 경험을 직접적으로 반영하며, 지표의 종류가 한정적이라 최소한의 관리로도 높은 탐지 효율을 낼 수 있습니다. * 서비스 이상 탐지 시스템은 장애가 발생했을 때 사용자 영향이 지표 변화로 나타나는 즉시 이를 포착하는 것을 목표로 합니다. **중앙값(Median) 기반의 탐지 기법 설계** * 배달 서비스 특성상 점심과 저녁 시간에 주문이 집중되는 선명한 패턴이 존재하므로, 과거 데이터를 통해 정상 범위를 비교적 쉽게 예측할 수 있습니다. * 분석의 용이성과 이상치(Outlier)에 대한 강건함을 확보하기 위해 IQR이나 2-sigma 대신 직관적인 중앙값(Median) 방식을 채택했습니다. * 복잡한 AI 모델을 사용하기보다 빠르게 구현하고 개선할 수 있는 구조를 선택하여 원인 분석과 시스템 업데이트의 속도를 높였습니다. **정확도 향상을 위한 임계 도달 횟수 관리** * 실시간으로 수집되는 실제값(Actual)이 예측된 임계값(Warning, Critical)에 도달할 때 장애를 판단합니다. * 일시적인 지표 튀기 현상으로 인한 오탐(False Positive)을 방지하기 위해, 임계값에 특정 횟수 이상 연속으로 도달했을 때만 경보를 발생시키는 '임계 도달 횟수'를 관리합니다. * 탐지 속도(낮은 횟수 설정)와 정확도(높은 횟수 설정) 사이의 트레이드오프를 고려하여 각 지표의 성격에 맞는 최적의 안정화 기간을 거칩니다. **신속한 대응을 위한 경보 및 프로세스 연계** * 장애 탐지 시 슬랙(Slack) 채널로 지표 현황, 긴급도, 그래프가 포함된 경보를 즉시 발송하여 상황 파악을 돕습니다. * 단순히 알림을 보내는 데 그치지 않고, 장애 숙련도와 관계없이 누구나 표준화된 절차에 따라 대응할 수 있도록 후속 프로세스 가이드를 함께 제공합니다. 장애는 완벽히 막을 수 없지만 탐지 시간은 단축할 수 있습니다. 복잡한 알고리즘에 매몰되기보다 서비스의 비즈니스 패턴을 명확히 분석하고, 가장 직관적인 지표와 통계 모델을 적용하는 것이 실무적인 관점에서는 훨씬 강력한 장애 대응 체계를 만드는 방법입니다.