애플리케이션 성능 관리
이 문서의 내용은 출처가 분명하지 않습니다. (2012년 10월) |
애플리케이션 성능 관리(APM, Application Performance Management) 또는 응용 프로그램 성능 관리는 응용 소프트웨어의 성능과 서비스 이용성을 감시하고 관리하는 데 초점을 둔 시스템 관리 원칙을 일컫는다. 또, 운영 중인 시스템에 대한 응답시간과 같은 성능이나 처리량, 가용성, 및 기능적 무결성, 신뢰성을 확보하고 다운타임의 최소화 등을 통해 안정적인 시스템 운영을 위한 도구로써 부하량, 접속자 파악, 장애진단, 통계, 분석 등을 목적으로 하는 성능 모니터링 제품으로 정의할 수도 있다.
응용 프로그램의 성능은 중도에 얼마나 처리를 빨리 마치는지, 또 특정 네트워크, 응용 프로그램 및 웹 서비스 인프라를 거친 응용 프로그램을 통해 정보가 최종 사용자에게 전달되는지와 관련이 있다.
응용 프로그램의 성능을 측정하는 방법에는 주로 2가지가 있다. 첫째는 컴퓨터가 비즈니스 응용 프로그램을 사용한 이후로 응용 프로그램이 사용하는 리소스를 측정하는 방식이 쓰였다. 두 번째는 응용 프로그램의 응답 시간을 측정하는 것이 사용되었다.
응용 프로그램 성능 관리는 최종 사용자 체험 관리(End User Experience Management)와 실제 사용자 관리(Real User Management)와 관련되어 있다. 응용 프로그램을 사용하는 실제 사용자의 체험을 측정하는 것은 응용 프로그램의 성능을 측정하는 가장 올바른 방식으로 많은 사람들에게 여겨지고 있다.
응용 프로그램 성능을 관리하는 데 쓰이는 웹 애플리케이션은 이를테면 J2EE와 마이크로소프트 닷 넷 플랫폼을 들 수 있다. 시스템 관리를 주도하는 업체들(Dynatrace, New Relic, Cisco(AppDynamics)) 모두 J2EE, 닷넷 APM 제품을 자사의 포트폴리오에 포함시키고 있다.
J2EE용 APM과 닷넷 기반 응용 프로그램들은 웹 서버의 측면에서 응답 시간을 측정할 수 있다는 것과 J2EE나 닷넷 환경에서 실행하는 응용 프로그램 코드 안에서 성능 문제를 일으킬 가능성이 있는 원인을 파악하기 위해 루트 원인 분석을 제공할 수 있다는 이점이 있다.
세계적으로 Dynatrace, New Relic, Cisco(AppDynamics)의 3사가 시장을 주도하고 있으며 국내에서는 제니퍼 등이 로컬 플레이어로서 활약하고 있다.
APM은 크게 3세대로 나누어 분류할 수 있다.
1세대 - 통신 프로토콜을 확인하여 애플리케인션의 성능을 모니터링하는 dynatrace(DCRUM), Riverbed, ExtraHop등이 여기에 속한다.
2세대 - 현재 시장에서 사용되는 대부분의 APM제품으로 agent를 사용하여 데이터를 수집하는 dynatrace(Appmon), New Relic, Cisco(AppDynamics), 제니퍼소프트(제니퍼), TRACER(웰컨) 등이 이에 속한다.
3세대 - 클라우드, 빅데이터, 마이크로 서비스환경에서는 기존 2세대의 사상으로는 모니터링이 힘들기 때문에 오토스케일링 지원, 에이전트 자동삽입, AI등의 기술이 요구된다. 이러한 제품으로는 Dynatrace가 있다.
문제
편집APM이 IT 산업에 직면한 문제가 두 가지가 있다. 첫째로는 수많은 기업에서 비즈니스 중심의 응용 프로그램 가운데 극히 일부만이 웹 기반이며 J2EE/닷넷을 필두로 다양한 기술들로 작성된 것이라는 것이다. 두 번째 문제는 수많은 응용 프로그램 시스템이 가상화되고 있어 응용 프로그램이 실행 중인 게스트 운영 체제의 시간 기반의 유효성을 무너뜨리는다는 것이다. 그러므로 APM은 가상화 시스템에 맞는 새로운 접근이 요구된다.
업계에서 사용되는 기술은 아주 다양하기 때문에 APM도 그에 따라 가야 한다. 국내에서는 JAVA/.NET 모니터링에 WAS단일 노드 모니터링이 주로 사용되었으나(제니퍼) 시장의 추세는 APM에 EndToEnd 모니터링을 요구하며 글로벌 업체들의 제품은 이러한 요구에 부합하고 있다.
국내업체의 경우 니치마켓의 플레이어로서 글로벌업체의 개념등을 빠르게 습득하여 제품화하고 있다.