window
width : 0
clientWidth : 0
height : 0
heightVH : 0
content
left : 0
width : 0
padding : 0
column
left : 0
width : 0
gap : 0

분산트레이싱

1 Contents
최신순

EOST2020

현대 소프트웨어 아키텍처는 과거의 단일 시스템에서 수많은 서비스가 얽힌 마이크로서비스 아키텍처(MSA)로 빠르게 전환되고 있습니다. 대규모 분산 시스템은 트래픽 처리와 장애 대응 면에서 유리하지만, 관리와 디버깅의 난이도가 급격히 상승한다는 치명적인 단점이 있습니다. 장애 발생 시 각 담당자가 자신의 영역에는 문제가 없다고 주장하는 사이, 정작 유저는 불편을 겪는 상황이 빈번하게 발생합니다. 이러한 복잡한 환경에서 서비스 전체의 가시성을 확보하고 성능을 통합적으로 관리하기 위해 애플리케이션 성능 관리(APM) 솔루션은 필수적인 도구가 되었습니다. 시스템 규모가 커지면 장애의 원인을 찾는 과정은 마치 미로를 헤매는 것과 같습니다. API 게이트웨이에서 지연이 발생했을 때, 담당자는 서버에 원격 접속하여 수많은 로그를 뒤져야 합니다. 한 단계 문제를 파악하더라도 연결된 쇼핑 서버, 주문 서버 등 각 단계별 담당자에게 연락을 취하고 확인하는 과정을 반복해야 하며, 이 과정에서 수십 분에서 며칠이 소요되기도 합니다. 로그가 각 서버에 분산되어 있고 서비스 간의 상호작용을 한눈에 파악하기 어렵기 때문에 발생하는 이러한 비효율은 분산 시스템 운영의 가장 큰 걸림돌 중 하나입니다. 오픈소스 APM인 핀포인트는 이러한 복잡한 시스템을 '서버 맵'을 통해 시각적으로 구조화하여 보여줍니다. 수많은 서버가 어떻게 연결되어 있는지 한눈에 확인할 수 있으며, 신입 사원조차도 전체 구조를 즉각 파악할 수 있을 만큼 직관적입니다. 특히 '스캐터 차트'는 트랜잭션의 응답 시간과 성공 여부를 점으로 표시하여, 어떤 요청이 유독 느리거나 예외를 발생시키는지 실시간으로 모니터링하게 해줍니다. 이를 통해 수차례의 로그 분석과 연락 과정을 거치지 않고도 단 몇 분 만에 장애의 근본 원인이 되는 코드 라인이나 쿼리문을 찾아낼 수 있습니다. 핀포인트의 강력함은 상세한 분산 트레이싱과 뛰어난 확장성에서 나옵니다. 특정 트랜잭션을 선택하면 코드 레벨의 콜 스택부터 데이터베이스 호출 횟수까지 상세히 보여주며, 실시간 스레드 차트를 통해 서버의 건강 상태를 즉각 확인하게 해줍니다. 대규모 시스템을 위해 설계된 만큼, 수백억 건의 데이터를 처리할 수 있는 구조를 갖추고 있으면서도 성능 저하를 최소화했습니다. 시스템 전반의 가시성을 확보하면서도 운영 중인 서비스에 큰 부담을 주지 않는다는 점은 전 세계 수많은 엔지니어가 핀포인트를 선택하고 신뢰하는 결정적인 이유가 됩니다. 2012년 시작된 핀포인트는 현재 전 세계 개발자들이 사용하는 글로벌 오픈소스 프로젝트로 성장했습니다. 아파치 하둡과 비견될 정도의 성장세를 보이며 오픈소스 APM 분야에서 정상을 다투고 있으며, 전 세계 대다수 국가에서 널리 활용되고 있습니다. 최근에는 Node.js 지원을 시작으로 Go 언어나 서비스 메쉬 등으로 지원 범위를 넓혀가고 있으며, AI 기술을 접목한 지능형 모니터링 시도도 이어지고 있습니다. 이제는 클라우드 환경에서도 손쉽게 접근할 수 있게 되어, 더 많은 개발자가 분산 시스템의 복잡성을 극복하고 안정적인 서비스를 운영할 수 있는 기반이 마련되었습니다.

EOST2020
한국전자통신연구원오픈소스 테크데이
  • 공학·기술