엔터프라이즈 애플리케이션의 개발, 운영, 배포는 세대를 거듭하면서 더욱 빠르고 효율적으로 발전하고 있습니다. 최근 변화는 서버리스(serverless) 환경에서 *DevOps 파이프라인을 운영하는 것을 목표로 삼고 있는데요. 서버리스란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.
레거시 시스템을 컨테이너 기반 환경으로 옮겨 애플리케이션 현대화의 첫 삽을 뜨고 있는데요, 신규 개발 시스템의 경우, 마이크로서비스아키텍처 환경에서 클라우드 네이티브 방식으로 개발하고 운영하는 로드맵을 따르는 곳이 많아지고 있죠.
이런 흐름 속에서 APM(Application Performance Management, 애플리케이션 성능 관리)은 어떤 역할을 하며 가치를 인정받을 수 있을까요?
*DevOps: Development와 Operations의 합성어로, 기존 개발 업무와 관리 업무 사이의 커뮤니케이션, 협업, 통합을 강조하는 개념
복잡성이 높아질수록 모니터링의 중요성 커져
APM의 등장 배경을 보면 그때나 지금이나 도전 과제가 비슷하다는 걸 알 수 있습니다. 쓰리 티어(3 Tier) 구조의 웹 기반 컴퓨팅이 자리를 잡았을 때를 떠올려 봅시다. 눈에 보이던 것들이 보이지 않게 되면서 복잡성이 커지게 됐죠. 계층화된 컴퓨팅 환경에서 일관성 있게 성능을 보장하려면 가시성 확보가 필요합니다. 이를 해결하기 위해 등장한 것이 바로 APM입니다.
지금은 어떨까요? 모노리틱 구조의 스택이 마이크로서비스 아키텍처 환경으로 바뀌면서 기능은 더 작은 단위로 쪼개졌습니다. 인프라와 플랫폼의 추상화 수준은 더욱 높아졌죠. 마이크로서비스 환경 구축 시 현장에서 복잡성과 가시성 문제를 호소하는 이유가 여기에 있습니다. 이 문제 역시 해결책은 APM에서 찾을 수 있습니다.
동적 환경 모니터링까지 소화하는 APM
LG CNS의 APM 솔루션인 TunA는 현대화된 APM입니다. 마이크로서비스 아키텍처 환경에 대한 모니터링까지 기술적, 기능적으로 고려하죠. 컨테이너 플랫폼에 배포, 운영하는 애플리케이션은 동적인 특성을 띠는데요. 안정화를 거친 후 큰 변화 없이 운영하는 모노리틱 구조의 애플리케이션과는 굉장히 다릅니다. 생성과 소멸을 빠른 주기로 반복하며, 필요에 따라 자유롭게 사내와 사외 컨테이너 환경 사이를 이동하기도 합니다. 쉽게 말해, 애플리케이션의 유동성이 크다고 할 수 있습니다.
여기에 더해, 하나의 애플리케이션이 한 덩어리로 구성된 모노리틱 아키텍처와 달리 구성 요소가 매우 작은 단위로 세분화돼 있습니다. 그리고 단위 기능이나 서비스를 담은 컨테이너는 여러 위치에 분산돼 있습니다.
이런 조건에서 애플리케이션을 모니터링하려면 중요 요소를 꾸준히 추적하고 측정할 수 있어야 합니다. LG CNS TunA는 마이크로서비스 아키텍처 환경에서 효율적으로 모니터링을 하기 위해 서비스를 중점적으로 살핍니다. 컨테이너를 모니터링하는 것은 효율이 낮고 성능 관리 측면에서 큰 의미가 없기 때문입니다.
LG CNS TunA는 서비스 모니터링을 통해 마이크로서비스 아키텍처 환경에 대한 가시성을 제공하는데요. 엔터프라이즈 컨테이너 환경에서 서비스 그룹별로 모니터링 대상을 묶을 수 있으며, 이를 직관적인 토폴로지 뷰를 통해 관리할 수 있습니다. 토폴로지 뷰는 유·무선을 통해 연결된 네트워크상에 있는 다양한 요소들의 배치 및 연결 방식을 지도와 같이 이미지화한 것을 의미합니다.
세부적인 부분까지 추적
마이크로서비스 아키텍처 환경에서 서비스 중심의 모니터링을 한다는 말은 간단히 말해 복잡하게 이뤄지는 API (Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스) 호출 관계를 한 눈에 파악하는 것을 의미합니다. 호출 관계 속에 있는 요소 사이에서 어떻게 트랜잭션이 이루어지고 있는지 파악하려면 매우 상세한 내용까지 알아야 합니다. 또한, 앞서 언급한 바와 같이 컨테이너 환경은 매우 동적이므로 각종 성능 지표 관련 측정 주기도 매우 짧게 가져가야 하죠.
현대화된 APM은 이처럼 방대한 데이터를 바탕으로 상호 연관성을 파악하고, 이를 토대로 성능 저하 부분을 찾고, 문제의 원인을 짚어 냅니다. LG CNS TunA는 매우 편리하게 여러 가지 측정 데이터를 참조할 수 있는데요. 클릭 한 번이면 원격 서비스 호출 내용부터 데이터베이스 테이블/쿼리까지 트랜잭션 경로가 한눈에 펼쳐집니다.
이렇게 사용자 친화적으로 시각화된 상세정보를 통해 운영자는 마이크로서비스 아키텍처 환경에서도 서비스 지연을 일으키는 구간과 문제의 원인을 매우 빠르게 식별할 수 있습니다.
최종 사용자 경험까지 철저히 관리
1세대 APM은 주로 인프라 구성 요소 및 리소스에 중점을 뒀습니다. 그리고 2세대는 WAS(Web Application Server, 웹 애플리케이션 서버)를 중심
으로 전후 구간을 살폈습니다. LG CNS TunA 같은 최신 APM은 여기에서 더 나아가 모바일, 클라우드 환경에서 사용자 경험을 보장하는 부분까지 모니터링합니다. 백엔드 인프라와 컨테이너 플랫폼 환경 그리고 WAS, 데이터베이스 같은 중요 요소에 대한 모니터링과 함께 사용자 구간의 성능 지표도 적극적으로 추적해 양쪽 측면을 모두 살피는 것이죠.
LG CNS TunA는 엔드 유저 모니터링 기능을 통해 사용자 경험에 영향을 주는 구간과 요소를 살핍니다. 이후 애플리케이션 성능 추적 정보와 연계해 엔드투엔드(End to End) 모니터링을 수행하는데요. 이런 접근방식은 마이크로서비스 아키텍처 환경에서 많은 조직이 적용하는 개발 방법론인 DevOps
지원에도 유리합니다. 지속되는 개발과 배포 사이클 속에서 업그레이드 전후의 애플리케이션의 성능 살피는 데 있어 엔드투엔드 측면의 성능 측정 결과는 매우 유용한 정보이기 때문입니다.
레거시부터 클라우드까지 모두 수용
컴퓨팅 기술과 환경이 빠르게 클라우드로 바뀐다 해도, 엔터프라이즈는 일정 기간 이상 레거시와 최신 서비스를 모두 끌고 가야 합니다. 이처럼 과거, 현재, 미래가 공존하는 환경에서 APM은 성능 모니터링과 관리를 모두 수행할 수 있어야 하죠. 따라서, APM 고도화를 고민 중이라면 LG CNS TunA와 같이 WAS 중심의 성능 관리와 함께 마이크로서비스 아키텍처 환경까지 모니터링이 가능한 현대화된 APM을 도입하고 운영하는 것을 추천합니다.
글 ㅣ LG CNS 솔루션사업부 김경남 책임