애플리케이션 성능 관리(APM)란?
애플리케이션 성능 관리를 통해 성능 문제가 비즈니스에 영향을 미치기 전에 예측하고 방지합니다.
IBM 뉴스레터 구독
사무실에서 컴퓨터로 작업을 하고 있는 젊은 여성 사업가의 모습
애플리케이션 성능 관리란?

애플리케이션 성능 관리(APM) 소프트웨어는 조직의 중요 애플리케이션이 성능, 가용성, 고객/최종 사용자 경험의 기대 수준을 충족하도록 지원합니다. 이를 위해 애플리케이션 성능을 측정하고, 성능 기준에 미치지 못할 경우 관리자에게 알리고, 성능 문제의 근본 원인을 규명하며, 각종 성능 문제가 사용자나 비즈니스에 영향을 주기 전에 자동으로 해결합니다.

APM은 Application Performance Monitoring의 약어이기도 합니다. 이 용어는 대개 혼용되곤 하는데, 사실 애플리케이션 성능 모니터링은 여러 애플리케이션 성능 관리의 구성 요소입니다. 결국 성능을 관리하려면 모니터링해야 하기 때문입니다. 

하지만 애플리케이션 성능 관리 솔루션은 기존 애플리케이션 성능 모니터링 툴에 의존하는 데 머무르지 않고 관측성(observability)까지 포함하는 방향으로 진화하는 중이며, 최신 분산형 클라우드 네이티브 애플리케이션의 복잡성을 더 효과적으로 수용하는 데 적합한 성능 데이터 수집 및 분석 기술입니다. 

APM의 작동 방식

물론 APM은 소프트웨어 애플리케이션 성능 데이터를 수집하고 분석하여 잠재적인 성능 문제를 발견한 다음 더 신속한 해결을 위해 정보를 제공하거나 작업을 수행합니다. 애플리케이션 성능 모니터링과 관측성의 차이점은 데이터를 수집하고 분석하는 방식에 있습니다.

애플리케이션 성능 모니터링

애플리케이션 성능 모니터링에서는 애플리케이션 환경 및 지원 인프라의 전 범위에 에이전트가 배치되어 성능을 '모니터링'합니다. 이를 위해 성능 및 성능 관련 메트릭(텔레메트리라고도 함)을 샘플링하는데, 주로 1분 단위로 수행합니다. 이러한 에이전트에서 수행하는 모니터링에는 다음과 같은 유형이 있습니다.

  • 디지털 경험 모니터링 최종 사용자 디바이스의 사용자 인터페이스로부터 로드 시간, 응답 시간, 업타임, 다운타임 등과 같은 성능 메트릭을 수집합니다. (이전에는 최종 사용자 경험 모니터링이라고 했으나, 그 범위를 확대하여 로봇, 기타 소프트웨어 구성 요소 등 비인간적 엔티티까지 애플리케이션과 상호 작용하고 저마다 성능 예상치를 포함하게 되었습니다.) 디지털 경험 모니터링은 대개 실제 사용자 모니터링을 지원합니다. 이는 시스템의 실제 사용자 경험을 모니터링하는 것이며, 프로덕션 및 비프로덕션 환경의 성능 테스트를 담당하는 통합 모니터링도 지원합니다.

  • 애플리케이션 모니터링. 애플리케이션 스택 전체를 모니터링합니다. 여기에는 애플리케이션 프레임워크(예: Java 또는 .NET), 운영 체제, 데이터베이스, API, 미들웨어, 웹 애플리케이션 서버, UI는 물론 IT 인프라 모니터링까지 포함되며, 이는 CPU 사용률, 디스크 공간, 네트워크 성능 등과 같은 요인을 샘플링합니다. 스택 모니터링에서는 대개 코드 수준 추적을 수행하는데, 이는 성능 병목 현상을 유발하는 코드 위치를 찾아내는 데 도움이 될 수 있습니다.

  • 데이터베이스 모니터링. 애플리케이션 모니터링 에이전트에서 수행하는 데이터베이스 모니터링과 함께 SQL 쿼리 또는 프로시저의 성능을 샘플링합니다.

  • 가용성 모니터링. 애플리케이션 및 하드웨어 구성 요소의 실제 가용성을 모니터링합니다. 애플리케이션은 최종 사용자가 액세스하지 못할 때도 성능 데이터를 생성할 수 있기 때문입니다.

이 에이전트는 성능 데이터를 수집할 뿐만 아니라 사용자가 정의한 트랜잭션 프로파일링도 수행합니다. 즉, 최종 사용자 UI 또는 디바이스에서 시작하여 해당 트랜잭션에 참여하는 각 애플리케이션 구성 요소 또는 리소스까지 트랜잭션의 전 과정을 추적하는 것입니다. 이 정보는 애플리케이션 종속성을 파악하고 토폴로지 맵을 생성하는 데 사용됩니다. 이 맵은 애플리케이션 및 인프라 구성 요소 간의 종속성을 시각화하는 것이며 온프레미스, 프라이빗 클라우드, 퍼블릭 클라우드(모든 SaaS 솔루션 포함), 하이브리드 클라우드 환경까지 포괄하는 것이 바람직합니다. 

APM 솔루션은 대개 컨트롤러 및 중앙 대시보드를 제공하는데, 여기서 성능 메트릭을 취합하여 분석한 다음 기존의 기준치와 비교합니다. 이 대시보드는 기준치와의 편차를 시스템 관리자에게 알립니다. 이는 실제 또는 잠재적 성능 문제의 지표가 됩니다. 관리자가 문제 해결에 활용할 수 있는 컨텍스트 기반 정보 및 실행 가능한 인사이트도 제공합니다.

관측성

정기적인 샘플링은 모놀리식 애플리케이션이나 기존 분산형 애플리케이션을 모니터링하고 문제 해결할 만큼 효과적입니다. 신규 코드가 정기적으로 배포되고 애플리케이션 구성 요소, 서버, 관련 리소스 간의 워크플로우 및 종속성이 잘 확인되어 추적하기 쉽기 때문입니다.

그러나 요즘에는 현대적인 개발 프랙티스 및 클라우드 네이티브 기술, 즉 애자일 및 DevOps 방법론, 마이크로서비스, Docker 컨테이너, Kubernetes 그리고 서버리스 기능이 도입됨에 따라, 새로운 애플리케이션 구성 요소가 매우 빈번하게, 다양한 위치에, 다양한 언어로 배치됩니다. 게다가 그 기간도 천차만별입니다. 따라서 1분 단위로 이루어지던 기존 모니터링 솔루션의 샘플링 방식으로는 충분하지 않습니다.

관측성은 중단 없이 성능 및 컨텍스트 데이터를 수집하고 머신 러닝 기법으로 데이터 및 그 상관성을 실시간 분석하는 계측 방식으로 기존 모니터링 에이전트를 대체합니다. 관측성 솔루션을 사용하면 개발, IT 운영 및 SRE(Site Reliability Engineering) 팀에서 다음과 같은 이점을 누릴 수 있습니다.

  • '알려지지 않은 미확인 요소' 탐색 및 해결. 기존 모니터링은 알려진 기준치를 대상으로 알려진 편차만 찾아냅니다. 관측성 플랫폼의 머신 러닝 기능은 성능 텔레메트리의 패턴을 탐지하여 성능 문제와 관련된 새로운 편차를 찾아낼 수 있습니다. 

  • 개발 초기 단계에 문제 파악 및 해결. DevOps 팀에서는 관측성 솔루션을 통해 소프트웨어 개발 프로세스의 초기 단계에 모니터링을 포함시킴으로써 신규 코드의 문제점이 고객 경험이나 SLA에 영향을 미치기 전에 테스트, 식별 그리고 해결할 수 있습니다.

  • 자동으로 관측성 확장. 예컨대 개발자가 Kubernetes 클러스터 구성의 일환으로 관측성 계측을 지정함으로써 모든 신규 클러스터가 시작 시점부터 종료 시점까지 텔레메트리 수집을 수행하게 할 수 있습니다.

관측성이 모니터링을 대체할 수는 없습니다. 더 효과적으로 모니터링을 수행하고 APM을 지원합니다. 

관측성 자세히 보기
AI 및 AIOps: APM의 미래

오늘날 APM 툴은 다양한 수준에서 관측성과 AI를 활용하고 있습니다. 기존 애플리케이션 성능 모니터링과 AI를 결합하여 가변적인 트랜잭션 경로 및 애플리케이션 종속성의 검색을 자동화하는 경우도 있습니다. 관측성과 AI의 조합으로 성능 기준치를 자동으로 결정하고 IT 운영 관리(ITOM) 데이터의 '노이즈'와 유의미한 신호, 즉 실행 가능한 인사이트를 분류하기도 합니다. 업계 분석 전문 기업인 Gartner에서는 기업에서 "AI 증강 툴을 활용하여 ITOM의 노이즈를 60% 줄일 수 있다"고 말합니다.

APM과 IT 운영의 궁극적인 목표 및 미래는 관측성과 인공 지능을 연계하여 IT 운영에 활용하는 AIOps를 통해 스스로 해결하고 최적화하는 인프라를 구현하는 것입니다. 실시간 관측성 텔레메트리의 안정적인 스트림과 AIOps 머신 러닝 및 자동화를 접목함으로써 관리자의 개입 없이 시스템 출력을 토대로 애플리케이션의 성능 문제를 예측하고, 최종 사용자 경험이나 운영에 영향을 미치기 전에 이를 해결하며, 애플리케이션 성능을 최적화하기 위한 작업도 수행할 수 있습니다.

관련 솔루션
IBM Cloud Pak® for AIOps

환경 전체의 성능 데이터와 종속성에 대한 가시성을 제공하는 AIOps 플랫폼을 활용하여 혁신을 가속화하고 운영 비용을 절감하며 IT 운영(ITOps)을 전환합니다.

Cloud Pak® for AIOps 살펴보기
IBM Observability with Instana®

하이브리드 클라우드용 최신 엔터프라이즈 관측성 플랫폼을 살펴봅니다.애플리케이션의 위치에 관계없이 애플리케이션 성능 관리를 개선하고 CI/CD 파이프라인의 속도를 높입니다.

IBM Observability with Instana® 살펴보기
리소스 AI로 IT 운영의 미래 보장

IT용 AI가 어떻게 비즈니스 성과를 개선하고, 수익을 늘리며, 조직의 비용과 리스크를 모두 낮출 수 있는지 알아봅니다.

AI 기반의 IT 자동화

IT 운영에서 새로운 차원의 효율성 및 복원력을 실현합니다.

사이트 신뢰성 엔지니어링(SRE)이란?

SRE는 소프트웨어 엔지니어링을 사용하여 시스템 관리자가 수동으로 수행해야 하는 IT 운영 작업을 자동화합니다.

AI 기반 자동화를 통한 지능형 앱 리소스 관리

사용자 응답 시간 및 리소스 혼잡의 원인을 제공하는 애플리케이션 및 인프라 리소스 할당 문제를 심층 분석합니다.

다음 단계

IBM IBM Cloud Pak® for AIOps와 함께 인공지능, 머신 러닝 및 자동화를 수용하여 ITOps 관리자와 SRE(Site Reliability Engineer)가 인시던트 관리 및 수정을 처리하도록 지원합니다.환경 전체의 성능 데이터와 종속성에 대한 가시성을 제공하는 AIOps 플랫폼을 활용하여 변화하는 환경에서 혁신을 가속화하고 운영 비용을 절감하며 IT 운영(ITOps)을 전환합니다.

IBM Cloud Pak® for AIOps 살펴보기