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