요약
실제 시스템의 장애 기록을 애니메이션으로 보면 시스템이 왜 무너지는지 감이 잡힙니다.
엔지니어 마크 브루커가 블로그에 올린 글입니다. 그가 만든 Stability Sim은 준안정 장애(부하가 줄어도 스스로 회복하지 못하는 장애)를 추상적으로 보여 줬지만, 실제 시스템에서도 일어나느냐는 의문이 남았습니다. 그래서 실제 시험 환경에서 모은 기록을 애니메이션으로 만들어 보여 줍니다.
왜 중요한가
- Postgres와 etcd처럼 오래 검증된 소프트웨어도 준안정 장애에 빠진다는 것을 실제 데이터로 보여 줍니다.
- 이런 장애가 이미 다 걸러졌다거나 "환상"에 가깝다는 시각에 대한 반박입니다.
- 숫자 표보다 움직이는 그림이 시스템의 실패 원리에 대한 직관을 키우는 데 낫다는 제안입니다.
핵심 내용
- Postgres 16은 부하가 몰리자 쿼리마다 약 12MB씩 메모리를 차지해 페이지 캐시가 밀려났습니다.
- 그 뒤로는 읽기가 디스크로 가서, 부하가 빠진 뒤에도 느린 상태에 머물렀습니다.
- etcd 쓰기에서는 과부하로 느려진 노드가 죽은 것처럼 보여 애플리케이션의 재전송이 폭주했습니다.
- etcd 읽기를 초당 500건에서 1,000건으로 늘리자 가비지 컬렉션이 CPU를 잠식하는 악순환이 생겨 사람이 손대기 전까지 회복하지 않았습니다.
- 애니메이션은 Kiro와 KiroCrew로 주로 Opus 5.5를 써서 만들었고, 바탕 데이터는 실제 시험 환경의 기록입니다.
HN 반응
- 과한 애니메이션을 싫어하던 이용자도 주의를 필요한 곳으로 끌어 주는 좋은 쓰임새라고 칭찬했고, Motion Canvas로 같은 작업을 한다는 경험담도 나왔습니다.
- 동영상 대신 HTML로 직접 그리면 어떻겠느냐는 질문도 있었습니다.
저도 https://motioncanvas.io/ 로 똑같은 걸 하고 있어요.
추가: 현재 활발히 유지보수되는 포크는 https://canvascommons.io/ 입니다.
저는 어디서나 애니메이션을 과하게 쓰는 걸 보면 보통 엄청 화가 나서, 이번에도 정의로운 분노 한 방으로 오후를 마무리할 줄 알았어요. 그런데 이건 애니메이션을 정말 훌륭하게 쓴 사례네요. 이런 UI에서는 애니메이션이 필요한 곳으로 시선을 잘 끌어 주고, 왜 거기를 봐야 하는지도 어느 정도 알려 주니까요. 아주 잘 만들었습니다!
이걸 왜 영상 말고 HTML 안에 넣지 않았죠?