EVE Online은 오래된 구조와 대규모 시간 기반 시뮬레이션이라는 특성 때문에 분산 모니터링에 비전통적인 접근 방식을 채택했다. 모든 스팬을 전송한 뒤 추적이 끝날 때 보존 여부를 결정하는 대신, 플랫폼은 추적 시작부터 샘플링을 수행하며, 동적으로 변하는 샘플과 결정론적 샘플을 조합해 시뮬레이션을 느리게 하거나 모니터링 데이터 비용을 높이지 않으면서 분석 가능한 시스템의 모습을 유지하려 한다.
CCP Games의 Nicholas Herring은 InfoQ에 게재된 자료에서 이 실험을 소개하며, EVE Online이 별도의 지역 서버가 아니라 모든 플레이어가 함께 존재하는 하나의 공유 우주에서 운영된다고 설명했다. 레거시 시스템과 Quasar라는 이름으로 알려진 최신 환경은 초당 약 3만 개의 메시지를 주고받는다. 또한 플랫폼에는 C, C++, Python, SQL로 작성된 수백만 줄의 코드가 포함되어 있어 새로운 중앙 집중식 모니터링 계층을 도입하는 것 자체가 운영상의 과제가 된다.
플랫폼은 왜 지연 샘플링을 채택하지 않았는가?
결정은 성능과 기존 시스템의 제약에 따른 것이었다. EVE Online의 일부는 단일 논리 프로세서에서 Stackless Python 2.7을 사용해 실행되므로, 팀은 모든 스팬을 추출한 다음 중앙 지점으로 보내 처리하는 방식이 시뮬레이션 자체에 악영향을 줄 수 있다고 판단했다. 또한 지연 샘플링은 스팬을 한곳에 모아야 하므로 수집 경로나 연결에 장애가 발생하면 시스템의 상당 부분이 가려질 수 있다.
반대로 처음부터 샘플링하면 각 구성 요소가 로컬에서 결정을 내릴 수 있다. 특정 부분의 상태가 악화될 때 팀은 시스템 전체의 가시성을 잃는 대신, 해당 부분이 데이터를 전송하는 능력의 차이를 통해 문제 위치를 추론할 수 있다.
결정론적 방식과 EMA의 조합
레거시 시스템은 비용과 성능 영향을 줄이기 위해 결정론적 샘플링을 사용한다. 반면 최신 Quasar 구성 요소는 protobuf 메시지 유형과 발생률 같은 키를 관찰하는 지수 이동 평균, 즉 EMA 알고리즘을 활용한다. 메시지가 반복적으로 높은 빈도로 나타날수록 샘플링 비율을 낮추고, 드문 메시지에는 나타날 기회를 더 많이 부여한다.
이 방식은 엄청난 수의 탄환 발사나 함선 외형 변경처럼 반복되는 이벤트의 잡음을 줄이는 데 도움이 된다. 그러나 팀은 이 방식에만 의존하지 않는다. 일부 중요한 이벤트가 레거시 시스템에서 발생하거나 최소 한 번은 나타나도록 보장해야 하기 때문이다. EMA를 여러 인스턴스에 분산하면, 인스턴스 수나 키 공간, 메시지 비율이 증가한 뒤에는 쉽게 낮출 수 없는 데이터 규모의 실질적인 최저한인 ‘높은 워터마크’가 발생한다.
실제로 무엇이 달라지는가?
이 실험은 모니터링 조정이 추적 도구를 선택하는 것에서 시작되는 것이 아니라, 팀이 측정하려는 이벤트의 특성을 이해하는 것에서 시작된다는 점을 보여준다. CCP Games는 기능 플래그를 사용해 특정 범위, 함선 또는 캐릭터에 대한 모니터링을 일시적으로 강화하거나 중요도가 낮은 영역의 모니터링을 줄인다. 또한 샘플링 비율을 표시하고 이벤트의 실제 규모를 추론하는 도구를 활용하며, 원시 수치가 우주 전체를 대표하는 것처럼 해석하지 않는다.
플랫폼은 Quasar의 한 설정에서 하루 약 6,000만 개의 이벤트를 사용했으며, 이용 가능한 할당량의 약 90%를 사용하는 것을 목표로 했다. 이를 통해 필요할 때 집중적인 모니터링을 실행하면서 비용 초과 위험을 줄일 수 있다. 그러나 이러한 유연성에는 운영상의 규율이 필요하다. 발표에서는 모니터링 플래그를 활성화한 채 잊어버려 지출 증가에 대한 경고가 발생한 사례도 언급했다.
주의해야 할 제약
이 접근 방식은 지연 샘플링의 모든 이점을 제공하지 않는다. 팀은 같은 방식으로 성공과 실패의 비율을 나중에 제어할 수 없으므로 이벤트가 매우 드문 경우 서비스 수준 지표가 과도하게 민감해질 수 있다. 또한 실험 결과, 클라이언트 애플리케이션 내부에서 샘플링 결정을 내리면 중요한 상호작용이 가려질 수 있는 것으로 나타났다. 이에 따라 팀은 결정을 백엔드 내부의 신뢰할 수 있는 네트워크로 옮기는 방안을 검토하고 있다.
실질적인 결론은 처음부터 샘플링하는 방식이 항상 우월하다는 것이 아니다. 현실적인 제약으로 인해 비용이 많이 드는 중앙 집중식 구조보다 결정론적 방식과 EMA, 일시적 활성화를 조합한 방식이 더 적합할 수 있다는 뜻이다. 이 접근 방식의 가치는 모니터링할 가치가 있는 대상을 팀이 정의하고, 비용의 워터마크를 이해하며, 중요한 각 이벤트 유형에서 최소 한 개의 샘플을 유지할 수 있는 능력에 달려 있다.
뉴스 출처
InfoQ - Architecture Articles
원문 보기 ↗