애플리케이션 성능 관리(APM)는 소프트웨어 툴, 데이터 분석, 애플리케이션 관리 프로세스를 활용하여 조직이 비즈니스 애플리케이션의 성능, 가용성 및 사용자 경험을 최적화하도록 지원하는 방식입니다.
관측 가능성 솔루션의 선구자인 APM은 IT 팀이 애플리케이션 성능 문제가 사용자에게 부정적인 영향을 미치기 전에 이를 시각화하고, 예방하고, 예측하고, 해결할 수 있도록 지원합니다.
APM은 애플리케이션 성능 모니터링(Application Performance Monitoring)의 약자로, 모니터링 툴을 사용하여 응답 시간, 오류율, 리소스 사용률, 사용자 활동과 같은 애플리케이션 성능 메트릭에 대한 데이터를 지속적으로 수집합니다. 이 두 용어는 종종 혼용되지만, 성능 모니터링은 전체적인 애플리케이션 성능 관리 전략의 한 구성 요소일 뿐입니다.
APM은 모니터링 외에도 데이터 분석 프로세스(추세, 이상 징후 및 성능 병목 현상 파악), 문제 해결 프로토콜(근본 원인 분석 및 문제 해결 자동화) 및 최적화 툴(성능 저하를 사전에 해결하고 사용자를 위한 앱 효율성 극대화)을 활용합니다.
APM 솔루션은 또한 IT 팀이 사용자에게 가장 중요한 앱과 서비스를 파악하고 성능 문제가 사용자 생산성에 어떤 영향을 미칠 수 있는지 판단하는 데 도움이 될 수 있습니다.
효과적인 APM 툴은 고급 관측 가능성 솔루션과 함께 소프트웨어 애플리케이션을 통해 최종 사용자에게 서비스를 제공하는 조직에 매우 중요할 수 있습니다.
APM 툴은 개발자가 엔터프라이즈 애플리케이션의 상태와 성능을 유지하는 데 도움이 되며, 특히 조직의 애플리케이션 포트폴리오가 하이브리드 클라우드 및 멀티클라우드와 같은 IT 환경 전반에 분산되어 있는 경우에 더욱 유용합니다. APM 시스템의 정확한 구성은 기업마다(그리고 툴마다) 다르지만 대부분의 주요 APM 툴은 Gartner Research에서 처음 발표한 5가지 주요 차원 내에서 작동합니다.
수동 및 능동 최종 사용자 경험 모니터링 툴은 사용자가 앱을 경험하고 상호 작용하는 방식을 평가합니다. 수동 모니터링은 실제 사용자로부터 사용자 데이터(센서, 네트워크 트래픽 및 오류 로그)를 지속적으로 수집하는 것을 의미합니다.
능동 모니터링은 상황별 소프트웨어 동작(예: 예기치 않은 트래픽 급증 시 앱의 성능)을 더 잘 이해하고 예측하기 위해 사용자 활동을 시뮬레이션합니다.
예를 들어 APM 소프트웨어 내의 경험 모니터링 툴은 동작 스크립트(또는 경로)를 실행하여 전자 상거래 사이트에서의 결제 프로세스에 대한 고객 경험을 시뮬레이션할 수 있습니다. 그런 다음 소프트웨어는 스크립트를 모니터링하여 앱이 결제를 처리하는 속도와 결제 처리량을 처리하는 방식을 파악할 수 있습니다.
런타임 애플리케이션 아키텍처 모니터링은 애플리케이션의 기반 아키텍처에 대한 가시성을 제공합니다. 이를 통해 IT 팀은 다양한 앱 구성 요소와 종속성(예: 데이터베이스, 서버, 네트워크 장치 및 가상 머신)이 애플리케이션을 지원하기 위해 어떻게 상호 작용하는지 파악할 수 있습니다.
APM 툴은 모델링 프로세스를 자동화하여 애플리케이션, 서비스, 인프라 구성 요소 및 사용자 상호작용의 토폴로지를 동적으로 매핑합니다. 이상적으로는 온프레미스 데이터 센터, 프라이빗 클라우드, 퍼블릭 클라우드(모든 SaaS 솔루션 포함) 및 하이브리드 클라우드 환경 전반에 걸쳐 수행됩니다. APM 토폴로지 맵은 IT 팀이 성능 병목 현상과 최적화 기회를 신속하게 파악하는 데 도움이 됩니다.
비즈니스 트랜잭션 관리라고도 하는 트랜잭션 프로파일링은 더욱 구체적인 모니터링 접근 방식을 제공합니다. 프로파일링 기능은 애플리케이션 스택을 이동하는 특정 사용자 트랜잭션을 추적합니다. 이는 사용자의 디바이스에서 시작하여 트랜잭션과 관련된 모든 애플리케이션 구성 요소 또는 리소스를 거치는 과정을 포함합니다.
이러한 모니터링 방식을 통해 개발자는 중요한 앱 기능에 대한 세부적인 인사이트를 얻을 수 있으므로 사용자 경험에 영향을 미치기 전에 문제가 있거나 성능이 저하된 구성 요소를 해결할 수 있습니다.
DDCM은 개별 앱 구성 요소(예: 웹 및 애플리케이션 서버)에 초점을 맞춰 코드 수준에서 특정 코드 섹션, 외부 서비스 호출, 데이터베이스 쿼리 및 기타 요소를 모니터링합니다.
특정 앱 구성 요소를 분석하면 팀이 성능 문제의 근본 원인을 신속하게 파악하고, 관련 없는 구성 요소를 포함하지 않고도 목표 지향적인 개선 작업을 수행할 수 있습니다.
APM 소프트웨어는 방대한 양의 데이터를 수집하며, APM 툴 내의 분석 및 보고 기능은 캡처된 데이터를 실행 가능한 인사이트로 변환하는 프로세스의 핵심입니다.
APM 플랫폼은 각 모니터링 접점에서 수집된 데이터를 집계하여 이해하기 쉬운 보고서, 대시보드 및 시각 자료를 생성함으로써 IT 팀이 성능 추세를 파악하고, 솔루션 및 최적화에 대해 정보에 기반한 결정을 내릴 수 있도록 지원합니다.
특히 Gartner Research는 이후 5가지 차원을 3가지로 축소했습니다. 최종 사용자 경험 모니터링은 이제 디지털 경험 모니터링(DEM)이라고 불립니다. 애플리케이션 검색, 추적 및 진단(ADTD) 차원은 런타임 아키텍처 검색, 사용자 정의 트랜잭션 프로파일링 등 이전에는 별개였지만 연관성을 가진 세 가지 기능을 아우릅니다. 보고 및 분석 차원은 독립형 기능으로 유지됩니다.
애플리케이션 성능 모니터링 툴은 모니터링에만 주력하기 때문에 APM의 한 가지 측면만을 보여줍니다.
기존의 모니터링 솔루션은 "에이전트"라는 소규모 소프트웨어 구성 요소를 사용하는데, 이러한 에이전트는 애플리케이션 환경 및 지원 인프라 전반에 배포되어 정기적인 간격(최대 1분에 한 번)으로 성능 및 성능 관련 메트릭(또는 원격 측정)을 샘플링합니다. 최신 솔루션은 데이터 수집에 대한 비침투적 접근 방식을 위해 에이전트리스 모니터링을 사용하며, 네트워크 트래픽 분석을 통해 앱 성능 데이터를 수집합니다.
애플리케이션 성능 관리는 여러 면에서 앱 유지 관리 라이프사이클(모니터링 이후)의 자연스러운 다음 단계입니다. 앱 성능 관리 시스템은 애플리케이션 성능 데이터 및 모니터링 프로세스에서 인사이트를 얻어 개발자가 엔터프라이즈 애플리케이션의 성능 및 가용성을 최적화하도록 지원합니다.
APM 솔루션은 애플리케이션 내 서비스에서 풍부한 데이터와 분석 정보를 수집하기 위한 범용 툴을 제공합니다. 이러한 솔루션은 애플리케이션 아키텍처를 관측 가능하게 만듭니다. APM 접근 방식은 과거에는 고품질 애플리케이션 관리에 충분했지만, 여러 런타임과 여러 계층을 가진 분산 앱 및 서비스를 관리하는 작업에는 적합하지 않습니다.
오늘날의 애플리케이션은 서비스 및 마이크로서비스를 사용하며, 종종 컨테이너화된 Kubernetes 클러스터에서 실행됩니다. 즉, 여러 런타임이 각각 아키텍처 내의 다른 위치에 로그를 출력하게 됩니다. APM을 사용하여 여러 런타임을 지원하려면 개발자는 여러 APM 툴을 배포해야 합니다. 또한 각 위치의 로깅 데이터를 통합하기 위해 로그 스트리밍 서비스 또는 다른 집계 툴을 사용해야 합니다.
그리고 기업이 아키텍처에 더 많은 서비스와 마이크로서비스를 추가함에 따라 복잡성이 증가하여 문제 발생 시 요청을 추적하기가 더 어려워집니다.
관측 가능성 솔루션은 애플리케이션 로깅 및 모니터링에 클라우드 네이티브 방식을 전체적으로 적용함으로써 APM 툴을 능가합니다. 이러한 솔루션은 원활한 프로세스 자동화를 제공하고 과거의 상황별 데이터를 사용하여 팀이 엔터프라이즈 애플리케이션을 더 효과적으로 최적화할 수 있도록 지원합니다.
팀은 관측 가능성 툴을 사용하여 서비스 간의 상호 작용 방식(예: 종속성 그래프 활용)과 전체 아키텍처 내에서의 역할을 더욱 명확하게 파악할 수 있습니다. 또한 관측 가능성 솔루션을 사용하여 앱 데이터를 집계 및 검증하고 해당 데이터에서 실행 가능한 인사이트를 얻을 수 있습니다.
오늘날의 APM 툴은 다재다능하며 기업이 맞춤형 APM 전략을 구현할 수 있도록 폭넓은 사용자 정의 기능을 제공합니다. 각 기능은 IT 팀이 애플리케이션 에코시스템에 대한 풀 스택 관측 가능성을 확보하는 데 도움을 줄 수 있습니다. 몇 가지 예를 들어 보겠습니다.
다른 많은 IT 운영(ITOps) 방식 및 솔루션과 마찬가지로 APM 툴은 인공 지능(AI)의 확산과 클라우드 컴퓨팅의 진화로 크게 변화했습니다.
기존 APM 툴의 주기적인 샘플링은 모놀리식 앱과 기존의 분산 애플리케이션(새 코드가 주기적으로 릴리스되고 워크플로, 종속성, 서버 및 관련 리소스가 잘 알려져 있거나 추적하기 쉬운 경우)을 관리하는 데 충분했습니다.
그러나 오늘날 기업은 최신 애플리케이션 개발 방식과 클라우드 네이티브 기술(예: 애자일 및 DevOps 방법론, 마이크로서비스, Docker 컨테이너, Kubernetes 및 서버리스 함수)을 채택함에 따라 기존 모니터링 전략에 의존하기에는 너무 빈번하게, 너무 많은 언어와 위치에 새 앱 구성 요소를 배포하는 경우가 많습니다.
또한 기존 APM 기술은 코드 실행을 모니터링하여 문제를 진단합니다. 그러나 오늘날 클라우드 기반 SaaS 애플리케이션은 수백만 줄의 코드로 구성되며, 종종 컨테이너에 분산되어 있습니다.
이러한 이유로, 선도적인 APM 툴은 풀 스택 관측 가능성을 제공하는 최첨단 모니터링 기법을 활용하고, AI 및 머신 러닝(ML) 기술을 통해 실시간으로 데이터를 분석하고 상관관계를 파악합니다.
AI 기반 APM 툴은 복잡한 분산 IT 환경에서 작동하고, 대량의 성능 데이터를 신속하게 분석하고 성능 데이터와 컨텍스트 데이터의 상관관계를 분석하고 성능 문제의 근본 원인을 정확히 찾아낼 수 있는 AI 알고리즘을 활용합니다.
최신 APM 시스템은 또한 ML 모델을 사용하여 예측 분석을 생성하고 성능 추세를 예측합니다. 또한 자연어 처리(NLP) 기능을 통해 APM 소프트웨어는 성능 데이터를 체계적으로 선별하고 팀에 일반 언어로 된 인사이트를 제공할 수 있습니다.
AI 기술에도 어려움이 없는 것은 아닙니다. 설명 가능성, 개인 정보 보호 및 데이터 보안은 AI 기반 IT 툴에서 공통적으로 우려되는 사항입니다. 그러나 AI 기반 APM 소프트웨어는 모니터링 및 문제 해결 속도를 크게 높이고 기업이 애플리케이션 포트폴리오에 대해 더 스마트하고 사전 예방적인 의사 결정을 내리는 데 도움을 줄 수 있습니다.
APM은 엔터프라이즈 소프트웨어 애플리케이션의 효율성과 안정성을 유지하는 데 도움이 됩니다. APM은 또한 다음을 지원합니다.
APM 툴은 과거 성능 데이터를 기반으로 미래 리소스 수요를 예측하여 용량 계획을 더 효과적으로 수립하고 기업이 수요 증가에 맞춰 인프라를 확장할 수 있도록 지원합니다.
APM은 소프트웨어 개발 라이프사이클 전반에 걸쳐 지속적인 피드백을 촉진합니다. 팀은 스테이징 환경과 프로덕션 환경 모두에서 앱을 모니터링하여 개발자가 지속적인 피드백 문화를 구축하는 데 도움을 줄 수 있습니다.
SLA는 대부분의 비즈니스 애플리케이션에 대한 성능 기준을 명시하고, APM 서비스는 이러한 SLA를 준수하는 데 필요한 데이터를 제공합니다. SLA 준수 메트릭은 관계자 보고서에도 사용되어 SLA 이행을 입증하는 데 활용될 수 있습니다.
외부 API를 사용하는 애플리케이션의 경우 APM 툴은 API 응답 시간 및 오류율을 추적하여 조직이 애플리케이션 성능에 영향을 줄 수 있는 타사 서비스의 문제를 식별할 수 있도록 지원합니다.
APM 툴은 다음을 지원합니다.
IBM Instana Observability로 전체 애플리케이션 스택을 자동으로 관찰, 모니터링 및 수정하세요.
맞춤형 애플리케이션의 포트폴리오 전반에 걸쳐 최고의 성능과 높은 사용자 만족도를 제공하세요.
풀스택 관측 가능성을 자동화된 애플리케이션 자원 관리와 연결하여 성능 문제가 고객 경험에 영향을 미치기 전에 해결하세요.