강연자는 비밀번호 재설정 이메일 전송 실패 사례를 통해 가시성 부족이 디버깅 지연과 문제 재발로 이어지는 악순환을 설명합니다. 많은 엔지니어들이 가시성 부족 문제를 겪으며 좌절감을 느낀다는 설문 결과를 공유하며, 문제의 근본 원인이 시스템 가시성 부족에 있음을 강조합니다.
이에 대한 해결책으로 ‘관찰 가능한 소프트웨어를 위한 단계(Steps to Observable Software, SOS)’ 5단계 프로세스를 제안합니다.
- 질문 정의: 해결할 구체적인 질문을 명확히 합니다.
- 데이터 결정: 질문에 답할 핵심 데이터(이벤트, 작업 큐, 작업 클래스, 소요 시간)를 식별합니다.
- 계측 구축 및 배포: 구조화된 로깅(해시 형태)의 중요성을 강조하며, Ruby 환경에 최적인
semantic_logger
와 Rails 바인딩을 통해 JSON 형식의 자동 로깅을 활성화합니다. OpenTelemetry 표준을 따르고,Rails.logger.tagged
및 Faraday 미들웨어 등으로 요청 및 API 관련 핵심 속성을 추가하여 AppSignal 같은 옵저버빌리티 도구로 전송합니다. - 그래프 또는 로그 활용: 수집된 데이터를 시각화하고 분석하여 문제의 근본 원인을 신속히 파악합니다. 실제 사례에서 스크래핑으로 인한 분석 작업 과부하가 이메일 지연을 유발했음을 5분 이내에 진단한 사례를 제시하며 효과를 입증합니다.
- 개선 및 반복: 계측을 지속적으로 개선하고 동료들과 공유하여 관찰 가능성 문화를 확산시킵니다.
이 프로세스를 통해 다운타임 98% 감소, 500 에러 83% 감소, 버그 수정 속도 20배 향상이라는 놀라운 성과를 달성했습니다.