Dev Stories

MSA에 최적화된 비지니스 모니터링 구축기

프롤로그: Cloud Native 시대의 모니터링 패러다임 변화

  현대 엔터프라이즈 IT 환경에서 Cloud Native 기술과 MSA(Microservices Architecture)가 빠르게 확산되면서, 시스템의 복잡성은 기하급수적으로 증가하고 있습니다. 수십 개의 마이크로서비스가 복잡하게 얽혀 상호작용하는 분산 환경에서는 장애가 발생했을 때 근본 원인을 찾아내는 것이 매우 어려운 일이 되었습니다.특히 기존의 인프라 중심 모니터링 솔루션들은 CPU, 메모리, 네트워크 등의 시스템 리소스 메트릭은 효과적으로 제공하지만, 실제 비즈니스 로직의 흐름과 상태를 추적하는 데는 한계가 있습니다.
  "오더 처리 과정에서 실패가 발생한 비즈니스 로직상의 원인은 무엇인가?" "고객 정보 조회 서비스의 성능 병목이 발생하는 구간은 어디인가?" 이러한 비즈니스 관점의 질문들에 답하기 위해서는 전통적인 인프라 메트릭을 넘어선 새로운 관측 가능성(Observability) 접근법이 필요했습니다.

기존 솔루션의 한계 분석 및 전략적 의사결정

상용 모니터링 솔루션의 구조적 제약사항

  시장에 있는 주요 모니터링 솔루션들(Prometheus + Grafana, Datadog, Elastic Stack 등)은 범용적인 메트릭 수집과 시각화에는 뛰어난 성능을 보여주지만, 엔터프라이즈의 고유한 비즈니스 프로세스를 세밀하게 추적하기에는 다음과 같은 한계점들이 있습니다.

비즈니스 트랜잭션의 End-to-End 추적 한계

  단순한 API 응답 시간 측정을 넘어선, 복잡한 비즈니스 워크플로우의 전체 생명주기 추적이 어려움
서비스 간 의존성과 데이터 플로우의 실시간 가시성 확보가 어려움

도메인 특화 커스터마이징의 제약

  각 업무 도메인의 고유한 KPI와 비즈니스 메트릭에 대한 맞춤형 모니터링 지표 구성이 복잡함
조직별, 팀별 요구사항에 최적화된 대시보드 구성의 유연성이 부족함함

컨텍스트 기반 지능형 이상 탐지의 한계

  정적 임계값 기반 알림 시스템의 한계를 넘어선, 비즈니스 컨텍스트를 고려한 동적 anomaly detection 이 부족함

전략적 솔루션: NEONE 플랫폼 개발

  이러한 구조적 한계를 해결하기 위해 ICIS Transformation 프로젝트에서는 사내 비즈니스 모니터링의 운영 경험과 사용자 피드백을 기반으로 자체 모니터링 플랫폼 "NEONE"을 개발하기로 결정했습니다.

NEONE 네이밍의 설계 철학

  NEONE이라는 명칭은 단순한 브랜딩을 넘어, 시스템 아키텍처의 핵심 설계 원칙을 상징적으로 표현합니다. 'NEONE'의 중앙에 위치한 알파벳 'O'를 기준으로 좌측(NE)은 클러스터A, 우측(NE)은 클러스터B를 의미하며, 각 지역에 구축된 Kubernetes 클러스터 간의 대칭적 구조를 나타냅니다. 이는 지리적으로 분산된 이중화 아키텍처를 통한 고가용성(High Availability) 확보라는 NEONE의 핵심 가치를 네이밍에 직관적으로 담아낸 것입니다.

NEONE 아키텍처 설계 원칙: "One Click, One View" 철학

사용자 중심 설계 방법론

  NEONE의 핵심 설계 철학은 현장 개발자와 운영자들과의 심층 인터뷰를 통해 도출된 실제 업무 요구사항을 바탕으로 정립되었습니다.
One-Click Operational Intelligence 구현
  • 현장에서 빈번하게 발생하는 "과도한 로그 탐색으로 인한 문제 해결 지연" 이슈 해결
  • Distributed Tracing, Logging, Metrics의 3-tier 데이터 레이어 통합 분석 프레임워크 구축
  • 상관관계 기반 자동 원인 분석 엔진 구현
통합 관측 가능성(Unified Observability) 플랫폼
  • API 호출 시점의 계층별 서비스 토폴로지 및 오류 정보의 단일 뷰 제공
  • Integration Layer(API Gateway) 중심의 강화된 모니터링 아키텍처
  • Circuit Breaker, 비동기 메시징 등 MSA 패턴별 특화 통계 및 분석 기능

기존 도구의 한계를 넘어선 차별화된 사용자 경험

기존 Kibana 기반 시스템에서 지속적으로 제기되었던 "Trace 조회 시 불필요한 대용량 메시지로 인한 정보 식별 어려움""개발자별 특화 요구사항에 대응하는 정교한 로그 분석의 복잡성" 문제를 해결하기 위해, NEONE은 다음과 같은 혁신적 접근법을 채택했습니다.
  • 필터링 및 상관관계 분석: 에러 타입별 정보 우선순위화
  • 직관적 시각화 엔진: 복잡한 분산 시스템의 상태를 직관적으로 이해할 수 있는 interactive visualization

NEONE의 핵심 기능들

Overview 대시보드: X-View 통합 분석

  X-View를 통한 Transaction 실시간 모니터링, API 호출 통계, 오류 통계, Gateway 별 Transaction 유입 현황 등을 한눈에 확인할 수 있습니다.

image-20250529-021623.png

  • X-View Transaction 추적: 최근 5분 간 Transaction의 유입 현황과 성능 지연, 오류 현황 시각화
  • API 별 호출 현황 및 오류 통계: 가장 호출량이 많거나 오류율이 높은 API 검출
  • 오픈소스 솔루션 모니터링: 도메인 별 Kafka lag 현황, Redis hit ratio 현황 모니터링

Transaction View와 Topology 시각화: 복잡성의 단순화

  MSA 환경에서 가장 어려운 것은 서비스 간의 관계와 데이터 흐름을 파악하는 것입니다. NEONE의 Transaction View와 Topology 시각화 기능은 이 문제를 해결하는 핵심 도구입니다.

image-20250529-022630.png


실시간 Transaction 흐름 관찰

통합 Transaction View

  • 시스템 내에서 발생하는 모든 Transaction의 흐름을 실시간으로 관찰
  • 다양한 서비스 간의 상호작용을 명확히 표시
  • 요청과 응답의 흐름을 시각적으로 이해할 수 있도록 지원

직관적인 Topology 표현

  • 각 마이크로서비스 간의 관계를 직관적으로 표현
  • 서비스 간의 연결 상태와 로그를 한눈에 확인
  • 문제 발생 시 신속하게 원인을 파악할 수 있는 기회 제공
  • 운영팀은 이를 통해 전반적인 시스템 아키텍처를 한눈에 파악하고, 시스템의 복잡성을 효과적으로 관리할 수 있습니다.

비동기 Transaction 모니터링: MSA의 복잡성 해결

  MSA 환경에서 가장 까다로운 부분 중 하나는 비동기 호출 Transaction의 추적입니다. NEONE은 MSA 환경에서 발생하는 비동기 Transaction의 블랙박스화 문제를 해결하며, Kafka 기반 이벤트 드리븐 아키텍처에서 발생할 수 있는 메시지 유실/지연 문제를 사전에 탐지할 수 있습니다.

image-20250529-022720.png


ASYNC 호출 Transaction 모니터링 기능

실시간 비동기 Transaction 추적
  • 전체 Transaction 중 비동기 Transaction 비율 확인
  • 오늘 호출된 비동기 요청 중 처리 실패 건수 체크
  • Kafka Topic 별 메시지 처리 현황(성공/실패/재처리) 모니터링
시각적 흐름 추적
  • Async API Gateway 상태 모니터링
  • Kafka 상태 실시간 확인
  • Kafka Consumer 현황 종합 관리
  • Topic별 응답 현황 그래프 시각화 및 평균 처리 시간과 오류율 상세 분석

  이러한 기능을 통해 운영팀은 비동기 호출의 성능을 면밀히 모니터링하고, 문제 발생 시 신속하게 대응할 수 있습니다.

클러스터 현황 실시간 모니터링

  NEONE은 Kubernetes 환경에 특화된 모니터링 기능을 제공합니다. 단순한 리소스 사용량을 넘어서, 업무 도메인 별로 세분화된 모니터링이 가능합니다.

image-20250529-022756.png

※ 보안 이슈 등으로이미지를 흐리게 처리하였습니다.

클러스터 별 상세 모니터링

Node 상태 관리
  • 각 클러스터 내에서 정상 상태인 노드 수와 이상 상태인 노드 수를 명확히 표시
  • 각 노드의 상태와 사용 중인 리소스 양을 한눈에 파악
  • Node 별 CPU 및 메모리 리소스 사용량 실시간 확인
POD 라이프 사이클 관리
  • 각 파드의 상태(Running, Pending, Failed) 상세 표시
  • 해당 파드에서 사용 중인 리소스 모니터링
  • 각 파드에서 최근 발생한 이벤트 기록 및 알림

  이러한 시각적 대시보드는 클러스터의 전반적인 상태를 쉽게 이해하게 해주며, 안정적이고 원활한 서비스 유지에 기여합니다.



NEONE 아키텍처: 확장성과 안정성을 위한 엔터프라이즈급 시스템 설계

시스템 개요

  NEONE은 Elastic Stack을 핵심 기반으로, 대용량 데이터의 수집, 정제, 저장, 시각화 기능을 end-to-end로 제공하는 엔터프라이즈급 솔루션입니다.

마이크로서비스 아키텍처 전략

  NEONE은 Domain-Driven Design 원칙을 기반으로 한 마이크로서비스 아키텍처를 채택하여 서비스 간 느슨한 결합(Loose Coupling)과 높은 응집도(High Cohesion)를 실현합니다. 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다.
  • 다중 백엔드 서비스: Python, Node.js 기반의 폴리글랏(Polyglot) 아키텍처
  • 프론트엔드 클라이언트: Vue.js 기반 SPA(Single Page Application)
  • DevOps 도구 체인: Jenkins, ArgoCD, Keycloak 등 cloud-native 솔루션과의 통합

NEONE 아키텍처

  NEONE은 Elastic Stack을 중심으로 하면서도 특정 클라우드에 종속되지 않는 유연한 구조를 지향합니다. 아래 논리 구성도에서 볼 수 있듯, 이중화 클러스터와 Common Agent, Elastic Agent, APM Agent 등 다양한 에이전트를 통해 데이터가 수집·정제·저장·시각화되는 전 과정을 하나의 통합된 스택에서 처리할 수 있도록 설계되었습니다.

image-20250529-065824.png

image-20250529-065356.png


프론트엔드 아키텍처

현대적 웹 기술 스택

  NEONE의 프론트엔드는 사용자 중심의 반응형 인터페이스 구현을 위해 다음과 같은 기술적 접근 방식을 채택했습니다.
  • CSR(Client-Side Rendering) 및 SPA 패러다임: 클라이언트 측 렌더링과 단일 페이지 애플리케이션 아키텍처를 통한 seamless한 사용자 경험 제공 및 인터랙션 성능 최적화
  • Progressive Loading: 코드 분할(Code Splitting)과 동적 임포트(Dynamic Import)를 활용한 Lazy Loading 구현으로 초기 번들 크기 최소화 및 로딩 성능 향상

고성능 라우팅 및 상태 관리 시스템

  • 고성능 웹 서버: Nginx의 event-driven 아키텍처를 활용한 대용량 동시 연결 처리 및 reverse proxy 구성
  • 리액티브 프론트엔드 프레임워크: Vue.js의 Virtual DOM과 선언적 렌더링을 통한 개발 생산성 향상 및 컴포넌트 기반 아키텍처 구현
  • 중앙집중식 상태 관리: Pinia를 통한 예측 가능한 상태 변화 관리 및 디버깅 지원
  • HTTP 통신 계층: Axios HTTP Client를 활용한 RESTful API 통신 및 인터셉터 기반 에러 핸들링

백엔드 아키텍처

폴리글랏(Polyglot) 마이크로서비스 설계

  NEONE은 각 서비스의 특성에 최적화된 기술 스택을 선택하는 폴리글랏 아키텍처를 채택하여 시스템 전체의 성능과 개발 효율성을 극대화합니다.
  • Python 생태계: Flask 및 FastAPI 프레임워크를 활용한 고성능 데이터 처리 서비스
        - 원천 데이터 ETL(Extract, Transform, Load) 파이프라인 구현
        - 비동기 처리 및 고성능 API 엔드포인트 제공
  • Node.js 런타임: 이벤트 기반 비동기 I/O를 활용한 실시간 알림 관리 서비스
  • 인메모리 캐싱: Redis를 활용한 LRU(Least Recently Used) 캐시 전략으로 데이터 접근 성능 최적화
  • CI/CD 파이프라인: GitLab과 Jenkins를 통한 지속적 통합 및 배포 자동화

외부 시스템 연계 및 운영 인프라

통합 모니터링 및 관측 가능성(Observability) 구축

  NEONE은 cloud-native 환경에서의 운영 효율성을 위해 다음과 같은 통합 모니터링 생태계를 구축했습니다.
  • 컨테이너 오케스트레이션: Kustomize와 ArgoCD를 통한 GitOps 기반 Kubernetes 배포 관리 및 선언적 인프라 운영
  • 통합 인증 및 권한 관리: Keycloak을 활용한 OIDC/SAML 기반 SSO(Single Sign-On) 구현 및 RBAC(Role-Based Access Control) 적용
  • 지능형 알림 시스템: Kibana Rules Engine을 통한 임계값 기반 알림 정책 설정 및 자동화된 이벤트 트리거링



엔터프라이즈급 맞춤형 비즈니스 모니터링 구축 전략

핵심 인사이트: One-Size-Fits-All의 한계

  NEONE 개발 프로세스에서 도출된 가장 중요한 통찰은 획일적인 모니터링 솔루션으로는 엔터프라이즈 환경의 복잡성과 다양성을 충족할 수 없다는 점입니다. 각 조직의 고유한 비즈니스 도메인과 운영 요구사항은 차별화된 모니터링 전략을 필요로 합니다.
시장에는 다양한 기능을 제공하는 상용 APM(Application Performance Monitoring) 솔루션들이 존재하지만, 실질적인 비즈니스 가치 창출을 위해서는 도메인 특화 커스터마이징이 핵심 성공 요인이라는 결론에 도달했습니다.

도메인 기반 커스터마이징 전략

비즈니스 컨텍스트 기반 최적화

  엔터프라이즈 모니터링의 효과성을 극대화하기 위해 다음과 같은 도메인 중심 접근법을 채택했습니다.

비즈니스 메트릭 정의 및 측정

  • 각 업무 도메인의 핵심 성과 지표(KPI) 정의 및 실시간 추적
  • SLA(Service Level Agreement) 기반 알림 임계값 동적 설정
  • 비즈니스 프로세스 플로우에 최적화된 관제 대시보드 구성
확장성과 유연성을 고려한 아키텍처 설계
  • 마이크로서비스 기반 모듈형 컴포넌트 아키텍처로 기능의 동적 확장/축소 지원
  • RESTful API 및 Event-Driven Architecture를 통한 레거시 시스템과의 seamless 통합
  • Container 기반 배포와 Infrastructure as Code(IaC)를 활용한 Cloud Native 최적화



미래 기술 로드맵 및 혁신 계획

  NEONE은 ICIS TR 프로젝트에서 MSA 환경의 복잡한 비즈니스 워크플로우를 효과적으로 추적하고 관리하는 데 핵심적인 역할을 수행했습니다. ICIS TR에서의 성공을 발판으로, NEONE은 더욱 광범위하고 지능적인 모니터링 플랫폼으로 발전할 계획입니다.

Azure & On-Premise 하이브리드 통합 모니터링

  • 통합 클라우드 가시성: Azure 클라우드와 온프레미스 인프라를 하나의 통합된 뷰에서 모니터링
  • Cross-Platform 성능 분석: 하이브리드 환경에서의 애플리케이션 성능을 end-to-end로 추적
  • 지능형 워크로드 최적화: 클라우드와 온프레미스 간 최적의 리소스 배치 권고

AI Agent 기반 지능형 운영 자동화

  • AI/ML 기반 예측 분석 및 자율 운영: AI Agent를 활용한 이상 탐지, 장애 예측, 자동 복구 등 지능형 운영 기능을 단계적으로 도입
  • 실시간 인사이트 및 자동화된 의사결정 지원: AI 기반 데이터 분석을 통해 비즈니스 트랜잭션의 이상 패턴을 실시간으로 감지하고, 자동화된 의사결정과 대응 시나리오 제공

비즈니스 가치 중심의 모니터링 혁신

  • 도메인 맞춤형 대시보드 및 인사이트 제공: 실제 비즈니스 프로세스와 KPI에 최적화된 대시보드와 분석 리포트를 제공하여 현업 부서와 경영진의 전략적 의사결정을 지원
  • 고객 중심의 서비스 품질 혁신: 고객 경험과 서비스 품질을 실시간으로 모니터링하고, 문제 발생 시 신속하게 대응하여 고객 가치 극대화



마치며: 차세대 모니터링 플랫폼으로의 진화

  NEONE은 ICIS TR 프로젝트의 성공적 구현을 바탕으로, 단순한 장애 탐지 도구를 넘어 디지털 비즈니스의 성공을 위한 결정적 인사이트 제공 플랫폼으로 진화하고 있습니다. 앞으로 NEONE은 Azure와 온프레미스를 아우르는 하이브리드 멀티 클라우드 통합 모니터링 플랫폼으로 발전하고, AI Agent 기술을 접목하여 자율 운영 시스템의 새로운 패러다임을 제시할 것입니다. 이를 통해 NEONE은 조직의 디지털 트랜스포메이션을 가속화하는 전략적 비즈니스 플랫폼으로 자리매김하며, 모니터링 데이터가 단순한 '로그'가 아닌 '전략적 자산'으로 활용되는 새로운 패러다임을 제시합니다. 궁극적으로 MSA 시대의 필수 인프라이자 Cloud Native 환경의 핵심 플랫폼으로 진화해 나갈 것입니다.


※ 보안 이슈 등으로 일부 이미지를 흐리게 처리하였습니다.

박용진 이수연

박용진: 언제나 사용자 관점에서 시스템을 설계하는 Software Engineer 박용진입니다.

이수연: 아키텍처 거버넌스 및 컨설팅 업무를 담당하고 있습니다.