종이로만 만드는 인시던트 플라네타리움: 천장에 장애의 별자리를 그리다
손으로 그린 ‘인시던트 플라네타리움’이 어떻게 포스트모템을 비난 회의에서 신뢰성, 학습, 시스템 개선을 위한 공유 시각 도구로 바꿀 수 있는지에 대한 이야기입니다.
소개: 모든 화면이 꺼졌을 때
상황을 떠올려 보세요. 모니터링 월은 새까맣게 꺼지고, 대시보드는 죽었고, 중앙 관측(옵저버빌리티) 스택이 대형 장애 한가운데서 그대로 다운됐습니다.
당신에게 남아 있는 것은 방 하나, 천장, 포스트잇과 펜 몇 자루, 그리고 지친 엔지니어 팀뿐입니다.
누군가 천장을 올려다보며 말합니다. “그냥… 그림으로 그려볼까요?”
그 순간, 종이로만 만드는 “인시던트 플라네타리움”이 탄생합니다. 각 인시던트는 하나의 별이 되고, 관련 알림(알럿)은 성단이 되며, 시스템 간 의존성은 천장 위 별자리들을 잇는 선이 됩니다.
조금 동화 같게 들릴 수 있지만, 여기에는 중요한 신뢰성 교훈이 숨어 있습니다. 복잡한 장애를 이해하는 데 가장 강력한 도구가 꼭 더 많은 대시보드일 필요는 없습니다. 공유되는 시각적 언어와, 인시던트를 비난이 아니라 학습을 위한 지도라고 여기는 문화가 훨씬 더 강력할 수 있습니다.
이 글에서는 비유적인(혹은 말 그대로 실제의) 인시던트 플라네타리움이 어떻게 장애 대응, 포스트모템, 실패 문서화, 그리고 개발과 운영 간 협업 방식을 바꿀 수 있는지 살펴보겠습니다.
1. 핵심 시스템일수록 ‘천문학적인’ 명료함이 필요하다
대형 결제 시스템, 의료, 교통, 클라우드 플랫폼 같은 중요한 시스템은 단순하고 직선적인 방식으로 고장 나지 않습니다. 장애는 상호작용 속에서 나타납니다. 여기선 noisy neighbor, 저기선 잘못 설정된 리밋, 그 중간에는 제대로 이해되지 않은 의존성이 숨어 있습니다.
그래서 명확한 장애 조정 체계와 분명한 신뢰성 요구사항이 중요합니다.
- 공유되는 신뢰성 목표: 핵심 서비스의 SLO와 에러 버짓은 모두가 알고 있어야 합니다. 우리는 99.9% 가용성을 설계하나요, 99.99%를 설계하나요? 지연 시간(latency), 정확성(correctness), 비용 중 무엇을 우선순위에 두나요?
- 명시적인 오너십: 각 서브시스템의 “별자리 관리자(오너)”는 누구인가요? 인시던트 발생 시 어떤 팀이 주도권을 잡나요? 어떤 사람이 이해관계자 커뮤니케이션을 조정하나요?
- 사전 정의된 플레이북: 영향도가 크거나 리스크가 큰 변경·장애에 대해서는 명확한 런북(runbook), 에스컬레이션 트리, 롤백 계획이 있어야 합니다.
이 모든 것은 항해를 떠나기 전에 밤하늘의 별자리를 미리 그려두는 것과 같습니다. 팀이 ‘신뢰성’이 무엇을 의미하는지, 누가 무엇을 책임지는지에 대한 공유된 지도를 갖고 있지 않다면, 디지털이든 종이든 당신의 인시던트 플라네타리움은 곧 혼돈이 될 것입니다.
2. 천장은 비난하는 곳이 아니다: 근본 원인과 시스템을 위한 공간이다
큰 장애가 터지면, 우리는 본능적으로 실수한 사람을 찾으려 합니다. 하지만 그 길은 막다른 길입니다.
쓸모 있는 인시던트 플라네타리움은 별 옆에 사람 이름을 꽂아두지 않습니다. 대신 조건, 원인, 시스템적 요인을 기록합니다.
- 어떤 이벤트의 시퀀스가 일어났는가?
- 어떤 세이프가드가 실패했거나 애초에 없었는가?
- 우리의 가정은 어디에서 현실과 어긋났는가?
- 조직 구조나 커뮤니케이션의 공백은 어떻게 영향을 미쳤는가?
건강한 포스트 인시던트 리뷰 문화는 다음과 같습니다.
- 블레이멀스(blameless): 누구를 처벌할지보다, 시스템이 어떻게 해서 에러가 전파되도록 허용했는지, 어떻게에 집중합니다.
- 시스템적: 각 인시던트를 개별 사건이 아닌 패턴의 일부로 봅니다. 예를 들어 자동화 부족, 위험한 배포 관행, 서비스 간 허술한 계약, 불분명한 오너십 등입니다.
- 액션 가능: 천장 위의 모든 별자리는 개선안을 제안해야 합니다. 새로운 테스트, 새로운 런북, 더 나은 알림, 더 명확한 인터페이스 같은 것들입니다.
요컨대, 하늘은 범죄 현장이 아니라 지도입니다. 범인을 찾기 위해 쓰지 말고, 더 안전한 항로를 그리기 위해 사용하세요.
3. 쓰기의 힘: 종이는 신뢰성의 초능력이다
디지털 도구는 훌륭하지만, 빠른 수정, 얕은 생각, 그리고 쉽게 사라지는 히스토리를 부추기기도 합니다. 종이는 느리고, 눈에 띄고, 물리적으로 남습니다.
“종이로만 만드는 인시던트 플라네타리움”에서는 모든 인시던트와 포스트모템이 꼼꼼하게 기록됩니다.
- 인시던트 카드: 포스트잇이나 인덱스 카드에 쓸 수 있는 단순 템플릿:
- 시간 범위
- 영향받은 사용자/시스템
- 증상과 신호(signals)
- 근본 원인 요인들
- 완화 조치와 수정 사항
- 포스트모템 포스터: 주요 인시던트당 큰 종이 한 장. 타임라인, 기여 요인, 제안된 액션을 한눈에 적습니다.
- 결과 추적 보드: 포스트모템 액션 아이템, 담당자, 완료 상태를 적어두는 또 다른 벽 또는 보드.
이런 물리적이고 눈에 보이는 문서화 방식은 여러 장점을 가집니다.
- 무시하기가 어렵습니다. 매일 당신은 그 아래를 지나가야 합니다.
- 채팅 로그나 티켓 시스템을 넘어서는 **조직의 기억(organizational memory)**를 만듭니다.
- 패턴이 눈에 띄게 드러납니다. 비슷한 실패들이 모인 클러스터는 눈에 안 들어올 수가 없는 시각적 ‘성운(nebula)’이 됩니다.
물론 나중에는 이 정보를 디지털로 옮기는 것이 좋습니다. 하지만 손으로 그리고 쓰는 행위 자체가 사람들의 속도를 적당히 늦춰, 더 깊이 생각하게 만들어 줍니다.
4. SRE의 섬을 깨다: 개발과 운영이 함께 보는 밤하늘
많은 조직에서 SRE나 운영 팀은 별도의 은하처럼 취급됩니다. 문제가 터졌을 때만 호출되거나, 프로덕션의 문지기처럼 여겨지곤 합니다.
더 나은 비유는 공유하는 망원경입니다. 개발과 운영이 같은 하늘을 보고, 같은 데이터를 해석하며, 신뢰성을 공동 소유합니다.
실천 차원에서는 다음과 같습니다.
- 공동 포스트모템: 코드를 작성한 개발자, 그것을 운영하는 SRE, 그 가치와 요구사항을 정의하는 프로덕트 오너가 모두 참석합니다. 모두가 함께 천장 위 지도를 그립니다.
- 공유된 지표와 대시보드: 개발과 운영이 서로 다른 뷰를 갖지 않습니다. 동일한 SLO, 인시던트 정의, 신뢰성 목표에 맞춰 정렬됩니다.
- 순환 역할: 프로덕트 엔지니어는 온콜(on-call) 로테이션에 참여하고, SRE는 설계 리뷰와 아키텍처 플래닝에 참여합니다.
이때 인시던트 플라네타리움은 협업의 공유 산출물이 됩니다. 아키텍처, 운영, 프로덕트 결정이 한 편의 일관된 스토리로 모여 있는 장소가 됩니다.
5. 신뢰성을 ‘반사적 대응’이 아닌 ‘숙련된 연습’으로 만들기
팀이 신뢰성에 대해 진지하게 고민하는 순간이 오직 대형 장애 때뿐이라면, 사실상 눈을 가린 채 비행하는 것과 같습니다.
신뢰성은 천문학자들이 일식 때만 하늘을 보는 게 아니라 일상적으로 별을 관찰하듯, 매일 하는 일의 일부가 되어야 합니다.
- 지속적인 교육: 용량 계획(capacity planning), 카오스 엔지니어링, SLO 설계, 인시던트 커맨드(incident command) 같은 주제로 정기적인 교육을 진행합니다.
- 의도적인 연습: 게임데이, 재해 복구 훈련, 카오스 실험 등 통제된 환경에서 실패를 시뮬레이션합니다.
- 새로운 기법 실험: 카나리 릴리스, 더 안전한 롤아웃 메커니즘, 향상된 서킷 브레이커, 더 나은 옵저버빌리티 도구 등을 시도해 봅니다.
종이 플라네타리움은 일종의 숨겨진 커리큘럼입니다. 인시던트 클러스터 하나하나는 다음 교육, 실험, 아키텍처 리뷰가 다뤄야 할 주제를 말해 줍니다.
6. 종이에서 플라네타리움으로: 시각적·실시간 신뢰성 대시보드
종이는 회고와 학습에 강력합니다. 하지만 운영 중에는 실시간 가시성이 필요합니다.
비유적인 “인시던트 플라네타리움”은 다음과 같은 방법으로 실제 시스템에 구현될 수 있습니다.
- 인시던트를 별로 시각화: 벽이나 스크린 위의 각 점(dot)이 하나의 이벤트—알림, 티켓, 이상 징후—를 나타냅니다.
- 관계에 따라 클러스터링: 가까운 위치나 색상으로 공통 서비스, 공통 근본 원인, 같은 시간대에 발생한 이벤트를 표현할 수 있습니다.
- 시간에 따른 애니메이션: 알림이 모이면 새로운 별자리가 나타나고, 관련 인시던트가 쌓일수록 그 별자리는 더 밝게 빛납니다.
이런 시각화는 복잡한 데이터를 직관적으로 이해하게 해 줍니다.
- 팀 리드는 끝없이 로그를 스크롤하는 대신, 특정 서비스 주변에 새로운 “별자리”가 형성되는 것을 바로 볼 수 있습니다.
- 엔지니어는 20개의 개별 알림을 하나씩 읽기보다는, 그것들이 모두 동일한 상위 의존성에 연결되어 있음을 한눈에 파악할 수 있습니다.
비록 시작은 포스트잇과 마커뿐이라 해도, 팀은 인시던트를 소음이 아닌 패턴으로 보는 훈련을 하게 됩니다.
7. 수많은 하늘을 하나로: 일관된 신뢰성 뷰 만들기
현대 시스템은 다층적입니다. 하드웨어, VM, 컨테이너, 마이크로서비스, 서드파티 API, 사용자 단말 등 수많은 레이어가 있습니다. 각 레이어는 각자의 도구, 메트릭, 알림을 갖고 있죠.
각 팀이 자신에게 보이는 ‘하늘 조각’만 보고 있다면, 진짜 별자리는 아무도 보지 못합니다.
성숙한 인시던트 플라네타리움은 여러 소스의 데이터를 하나의 일관된 뷰로 통합합니다.
- 머신과 센서: CPU, 메모리, I/O, 데이터센터나 엣지 디바이스의 센서 데이터.
- 서비스와 애플리케이션: 에러율, 지연 시간 분포, 요청량, 피처 플래그, 배포 이벤트.
- 팀과 프로세스: 온콜 로테이션, 핸드오프 시간, 휴먼 인터벤션, 수동 조치 등.
가치는 **상관관계(correlation)**에서 나옵니다.
- 하드웨어 에러 스파이크 + 새 배포 + 특정 API 에러율 상승 = 이름 붙일 수 있고 재인식 가능한 하나의 패턴입니다.
- 이 패턴이 다시 등장할 때마다, 플라네타리움은 더 빠른 대응과 더 나은 세이프가드 설계를 돕습니다.
이런 의미에서 통합된 신뢰성 뷰는 일반적인 대시보드라기보다, 시간이 갈수록 더 잘 항해할 수 있게 되는 별자리 지도에 가깝습니다.
결론: 망원경을 만들기 전에 먼저 별을 그려라
거창한 옵저버빌리티 스택이 없어도, 당신은 지금 당장 자신의 시스템을 관측하는 천문학자처럼 생각하기 시작할 수 있습니다.
지금 시작할 수 있는 것들:
- 종이와 마커: 최근의 주요 인시던트 몇 개를 벽이나 천장에 그려 보세요. 원인, 타임라인, 관계를 라벨링합니다.
- 블레이멀스 포스트모템: 이 스케치를 보면서 개인의 실수 대신 시스템적 개선에 대해 논의합니다.
- 공유 세션: 개발, SRE, 운영, 프로덕트 역할을 모두 초대해, 함께 별자리를 해석합니다.
- 액션 리스트: 별 클러스터마다 툴링, 프로세스, 아키텍처 측면에서의 구체적인 개선 항목을 뽑아냅니다.
- 점진적 도구 발전: 시간이 지나면서 종이 하늘을 점점 더 풍부한 실시간 시각화로 진화시키고, 모든 텔레메트리와 프로세스 데이터를 통합합니다.
“종이로만 만드는 인시던트 플라네타리움”은 귀여운 비유를 넘어선 개념입니다. 신뢰성이란 학습과 협업에 기반한 집단적인, 시각적, 문서화된 실천이라는 사실을 상기시키는 장치입니다.
천장 위 손으로 그린 별들을 올려다보세요. 그 하나하나가 당신이 버텨낸 장애입니다. 별자리는 당신이 발견한 패턴입니다. 진짜 신뢰성 성숙도의 척도는 인시던트 유무가 아니라, 매번의 인시던트에서 얼마나 배우고, 그 배움을 다음번 어두운 밤하늘이 흔들릴 때 어떻게 활용하느냐에 달려 있습니다.