본문 바로가기

Orange/기타

어플리케이션 성능 모니터링(APM)과 차이는 무엇인가요?

서버에서 흔히 사용하는 APM과 오렌지는 어떻게 다릅니까? 라는 질문을 종종 받습니다. 

그래서 이에 대해 조사한 내용을 알려 드립니다. 

 

먼저 결론

 

APM

서버 프로그램이 동작하는 특정 개발 환경을 대상으로 성능을 측정하는 도구. 

특정 개발 환경 내부에 대한 세부 정보 제공

개발 환경은 서버 프로그램을 만들고 사용하는 회사에 따라 천차만별.

그래서 APM은 제품 수가 많고 일반적인 윈도우즈를 대상으로 하는 PC용 성능 측정 도구를 제공하지 않습니다. 

APM이 동작하면서 일으키는 부하가 꽤 크지만 (최대 30%) 서버의 운영과 어플리케이션 부하 측정을 위해 사용합니다. 

 

 

오렌지

PC에서 사용하는 윈도우즈 OS에서 동작하는 모든 프로그램에 대해 성능을 측정하는 도구. 

PC용 성능 측정 도구가 됩니다. 

 

세부적인 내용

APM은 소프트웨어 도구와 원격 측정 데이터를 사용해 비즈니스 크리티컬 어플리케이션의 성능을 모니터링하는 프로세스입니다. 

 

비즈니스 크리티컬

 

기업에서 고객에게 제공하는 서비스 품질 관리를 위해 관련된 어플리케이션의 성능과 문제를 신속하게 파악하고 문제를 해결할 수 있게 해주는 것입니다. 

 

참고사이트 - AWS에서 제공하는 APM

 

APM이란 무엇인가요? - 애플리케이션 성능 모니터링 설명 - AWS

복잡한 아키텍처를 사용하는 최신 애플리케이션의 문제를 해결하려면, 애플리케이션 성능 모니터링(APM) 이상의 기능이 필요합니다. 관측성 기능은 전반적인 비즈니스 인텔리전스와 인사이트를

aws.amazon.com

그러니까 APM은 고객에게 서비스 해주는 서버(서버는 비싼 PC 라 보시면 됩니다) 가 잘 동작하는지 확인을 위해 그 안 소프트웨어의 CPU 사용량, 응답 시간, 오류율, 가동시간 이런 걸 제공해주는 제품입니다. 

 

여기까지 보면 오렌지와 APM이 지향하는 바는 같습니다. 

하지만 APM은 비싼 서버에서 사용하는 프로그램입니다. 그래서 APM도 비쌉니다.

그럼 왜 사용자 PC용 APM 이 없을까요?

 

서버는 장애가 생기면 그 서버를 사용하는 다수의 고객에게 피해를 줄 수 있습니다.
문제 발생 시 영향 범위가 크지만 PC는 문제가 생겨도 그 PC 사용자 1명 뿐입니다.
그래서 비싼 APM을 쓸 필요가 없다라고 생각할 수도 있습니다.

 

우선 APM에 대해 어떻게 동작하고 만들어졌는지 알아야 판단할 수 있어 우리나라의 제니퍼 APM 홈페이지에서 제공하는 문서로 조사했습니다. 회사에 수영장이 있다는 유명한 곳입니다. 

 

 

Index Page

제니퍼로 애플리케이션의 성능을 최적의 상태로 유지하세요. 기능에 대해 더 알아보기 실시간 모니터링 제니퍼는 모든 트랜잭션이 서버에 들어오는 순간부터 처리되기까지의 전 과정을 실시간

jennifersoft.com

 

지원 플랫폼이 명시돼 있습니다. 

여기서 말하는 플랫폼은 윈도우즈, 리눅스와 같은 OS를 의미하지 않습니다.

Java, .Net,  PHP, Python 은 서버 서비스 운영 어플리케이션을 만드는 개발 환경인데 OS 위에서 동작합니다.

APM은 개발 환경의 내부에서 그 안에서 동작하는 어플리케이션의 성능, 장애를 모니터링합니다. 

 

각 플랫폼마다 개발 언어와 동작하는 방식이 다릅니다. 만든 사람이 다르고 구조가 다를거잖아요?

결국 제니퍼 APM은 플랫폼마다 별도의 아키텍처와 개발 방법으로 만들었을텐데요.

 

APM 개발사는 무척 빡세겠습니다. 새로운 대세 개발 플랫폼이 새로 추가되면 그에 맞게 사람 뽑고 추가 개발해야 합니다. 

 

윈도우즈에서 실행 파일은 모든 윈도우즈에서 동작하지만 PHP라는 스크립트로 만든 프로그램은 PHP를 읽고 실행할 수 있는 플랫폼이 설치된 환경에서 동작합니다. 

 

아키텍처를 보면 OS 단에서 APM들이 하는 건 없습니다. OS 위에 설치된 플랫폼이란 개발 환경 안에 들어가 그 안에서 동작하는 서버 어플리케이션을 모니터링한다. 

 

알겠습니다. 서버의 APM은 서버에서 많이 사용하는 동작 환경에 맞게 따로 만드는 위 4가지 다른 플랫폼에서 동일 APM 제품이라도 개발 언어와 개발자가 다를 게 틀림 없습니다.

 

이제 APM이란 제품들이 왜 이리 많은지 알겠습니다. 서버의 OS는 리눅스 아니면 윈도우즈 라는 General OS 두가지인데 그걸 기반으로 사용하는 개발 환경은 매우 많기 때문입니다. 

 

각 회사들은 자신들이 보유한 기술 스택에 맞게 다양한 개발 환경을 선택할 수 있고 그에 맞는 APM을 설치해야 동작하니  APM의 종류는 많을 수 밖에 없다라고 생각됩니다.

 

그럼 오렌지는요?

 

오렌지는 윈도우즈라는 OS단에서 성능과 장애를 감지합니다. 그래서 윈도우즈 위에서 동작하는 모든 프로그램들은 오렌지의 모니터링 대상입니다.

 

OS위에서 동작하는 개발환경도 따지고 보면 다 윈도우즈 에서 동작하는 하나의 프로그램이거든요. 

 

여기까지 조사해보니 서버의 APM 제품들과 PC의 APM인 오렌지는 지향하는 바가 같은 뿐 둘은 완전히 다른 제품입니다.

 

APM

- 정해진 대상 개발 플랫폼이 관리 대상. 

- 해당 개발 플랫폼 내부는 매우 자세한 정보를 제공해준다. 

- 윈도우즈처럼 다양한 프로그램이 동작하는 환경에서 특별히 해줄 수 있는 것이 없다. 

 

오렌지

- 윈도우즈 환경은 OS 자신이 거대한 개발 플랫폼.

- 윈도우즈 환경에서 아무 프로그램을 동작시켜도 그에 대한 정보를 기록하고 성능을 판단한다. 

- 특정 개발 플랫폼 내부의 상세한 정보를 APM 처럼 알 수 없다.

 

APM 개발자는 오렌지와 호환되는 제품을 만들 수 없습니다. 오렌지 개발자 역시 APM을 만들 순 없습니다. 

둘이 같은 성능 모니터링 이란 장르 제품을 지향하지만 동작 환경과 개발 방식이 완전히 다릅니다. 

 

이해가 되실지 모르겠습니다. 

 

'Orange > 기타' 카테고리의 다른 글

대상 시장  (0) 2023.09.05