관리 메뉴

피터의 개발이야기

APM란 무엇인가? 본문

DevOps

APM란 무엇인가?

기록하는 백앤드개발자 2020. 12. 13. 14:00
반응형

 

이번 글은 APM에 대해서 공부한 내용을 정리하였습니다.

 

APM의 뜻

애플리케이션 성능 관리(APM, Application Performance Management)

응용 소프트위어의 성능과 서비스 이용성을 감시하고 관리하는 데 초점을 둔 시스템 관리 원칙을 일컫는다.

애플리케이션의 성능을 관리하는 서비스를 의미한다.

 

운영 중인 시스템에 대한 응답시간과 같은 성능이나 처리량, 가용성, 및 기능적 무결성, 신뢰성을 확보하고 다운타임의 최소화 등을 통해 안정적인 시스템 운영을 위한 도구로써 부하량, 접속자 파악, 장애진단, 통계, 분석 등을 목적으로 하는 성능 모니터링 제품으로 정의할 수도 있다.

 

 

A

Applicaion, Web Application을 말한다. 더 정확히는 RestAPI로 기업이 제공하는 웹 서비스의 성능을 관리한다. 웹 서비스의 동작 상태를 관찰하고 성능을 분석하며, 특히 미들웨어(WebLogic, Tomcat, JBOSS 등)에서 일어나는 트랜잭션의 사용 시간을 분석하여 각 단계별로 성능에 영향을 미치는 원인을 분석할 수 있다.

 

P

Performance, 애플리케이션의 성능을 의미합니다. 그리고 애플리케이션의 성능은 웹서비스의 응답속도를 통해 측정하게 됩니다. 웹서비스의 응답속도를 구하기 위해 APM 서비스는 트랜잭션을 추적하고 분석하는 일한다.

 

M

Management 또는 Monitoring이 사용됩니다. 국내에서도 APM은 애플리케이션 성능 관리 또는 애플리케이션 성능 모니터링으로 불리고 있다. 성능을 향상시키는 관리의 의미를 강조할 경우에는 Management를 사용하고 단순 모니터링 의미를 강조할 경우에는 Monitoring이 사용된다.

 

 

 

APM의 역사

https://blog.applicationperformance.com/a-brief-history-of-application-performance-management-apm

위의 그래픽은 APM의 역사를 보여줍니다. 

APM 솔루션은 Precise, Wily, Mecury Interactive 및 Quest와 같은 첫 번째 솔루션이 등장하기 시작한 1990년대 후반에 시작되었습니다. 1998년 북미에서 Willy가 APM 서비스를 처음 선보였습니다. Precise는 DB 기반의 모니터링 서비스를 만들었지만 모두 APM의 분야로 인정하고 있다. 웹 서비스의 사용이 확대되면서 서비스의 성능을 유지하는 것이 중요해지면서 APM 서비스는 빠르게 성장하기 시작했다.

2010년부터 SaaS 기반의 서비스와 클라우드를 지원하는 APM 서비스들이 두각을 나타내기 시작했으며 한국은 2018년도까지 '와탭랩스'에서만 SaaS 기반의 클라우드 모니터링 서비스를 제공하고 있다.

 

 

APM은 크게 3세대로 나누어 분류할 수 있다.

  • 1세대
  • - 통신 프로토콜을 확인하여 애플리케이션의 성능을 모니터링하는 dynatrace(DCRUM), Riverbed, ExtraHop등이 여기에 속한다.
  • 2세대
  • - 현재 시장에서 사용되는 대부분의 APM제품으로 agent를 사용하여 데이터를 수집하는 dynatrace(Appmon), New Relic, Cisco(AppDynamics), 제니퍼소프트(제니퍼), TRACER(웰컨) 등이 이에 속한다.
  • 3세대
    - 클라우드, 빅데이터, 마이크로 서비스환경에서는 기존 2세대의 사상으로는 모니터링이 힘들기 때문에 오토스케일링 지원, 에이전트 자동삽입, AI등의 기술이 요구된다. 제품으로 Dynatrace가 있다.

 

APM 구성요소

APM 서비스는 Agent, Repository Server, Application Server로 구성되어 있다. Agent는 웹 서버에 설치되어 데이터를 수집되며 Repository Server에 데이터를 전송된다. Application Server는 운영자가 애플리케이션 성능을 분석하려 할 때에 Repository Server에서 데이터를 끌고 와서 사용자에게 분석 데이터를 제공하는 역할을 한다.

 

APM 생애 주기

APM 솔루션은 일반적으로 서비스 오픈 시기에 사용된다. 서비스 개발이 완료되고 서비스 전반에 대한 에러와 성능을 분석하는 과정에서 사용되지만 서비스가 안정적으로 운영되기 시작하면 간헐적으로 사용하게 된다.

비즈니스의 변화가 빨라지고 웹 서비스가 기업의 비즈니스 핵심으로 변화되면서 애플리케이션의 업데이트 속도는 점점 빨라지고 있다. 애자일 개발, 린, 데브옵스와 같은 문화는 이를 더욱 가속시켰다. 클라우드까지 도입되면서 물리적인 한계까지 극복하게 되면서 서비스의 개발과 업데이트는 더욱 빨라지고 있는 추세이다. 이와 함께 APM 서비스의 사용법도 달라지기 시작했다. 기존에 서비스 오픈 시기에 주로 사용되던 APM 서비스는 개발자나 운영자가 항시 사용하는 서비스로 변화하게 되었다.

 

 

마무리

APM 서비스는 개발자도 익숙하게 사용해야 하는 서비스이다. 개발 시기에는 버그를 찾고, 메모리 관리와 성능 테스트의 지표가 될 수 있다.

운영을 하면서도 고객의 VOC에도 신속히 대응해주는 포인트가 되며, 미리 장애를 관측하고 대응할 수 있다.

 

 

참조
https://ko.wikipedia.org/wiki/애플리케이션_성능_관리
blog.applicationperformance.com/a-brief-history-of-application-performance-management-apm
https://www.whatap.io/ko/blog/19/
반응형
Comments