[테크] 맞춤형 APM으로 비즈니스 혁신 가속
상태바
[테크] 맞춤형 APM으로 비즈니스 혁신 가속
  • 데이터넷
  • 승인 2014.09.24 19:27
  • 댓글 0
이 기사를 공유합니다

자동화·확장·데브옵스 지원 … 비즈니스 속도 맞춘 서비스 제공

애플리케이션은 비즈니스 경쟁력의 핵심이다. 다양한 애플리케이션을 통해 모든 비즈니스가 이뤄지고 있기 때문. 애플리케이션의 원활한 동작 여부 파악은 중요한 과제지만 복잡한 IT 환경에서 최종 사용자에 이르는 모든 구간에서 애플리케이션 트랜잭션 모니터링을 수행하기란 쉽지 않다. 맞춤형 APM 구축방안을 살핀다. [전성호 한국컴퓨웨어 전무]

애플리케이션이 비즈니스 경쟁력의 핵심이 되면서 ‘애플리케이션 성능 관리(APM)’에 대한 관심이 높아지고 있다. 분명한 것은 APM이 만병통치약은 아니지만 현재의 APM 성숙도에 최적화된 솔루션은 존재한다는 것이다. APM 둘러싼 논란 중 하나는 애플리케이션 트랜잭션 모니터링의 근본적인 접근법에 대한 것이다. 이에 따라 과부하 혹은 확장성, 데이터 호더링(hording)과 스마트 분석 등의 이슈가 발생한다.

전통적인 APM 도전과제
과거 APM 솔루션들 또한 일반적인 성능 문제들을 해결하기에는 충분할 수 있다. 그러나 빠르게 변화하고 있는 오늘날의 비즈니스 속도에 맞춰 전략적인 지속 서비스를 제공하고자 하는 경우, 기존 툴로는 데브옵스(DevOps)를 실현하기 어려운 것이 사실이다. 

예를 들어 차세대 성능 관리를 위한 APM 솔루션 ‘다이나트레이스(dynaTrace)’는 전체 소프트웨어 라이프사이클을 지원하도록 설계됐다. 성능 문제의 근본 원인을 분석할 수 있도록 상세 정보가 포함된 모든 트랜잭션을 확보하기 위함이다. 샘플링을 통한 모니터링의 경우 비즈니스에 중요한 정보를 놓칠 수 있으므로 적합하지 않기 때문이다.

대부분의 고객들은 실제로 매소드 아규먼트(method arguments)를 포함해 SQL 구문, 로그 메시지 혹은 제외(exceptions) 명령어 등 트랜잭션을 100% 캡처 하더라도 운영 환경에 체감할 정도의 과부하는 경험하지 않았다는 피드백을 제공하기도 했다.

퓨어패스(PurePath)의 다양한 시각화 기능 중 하나인 트랜잭션 플로우를 통해 시스템 내 트랜잭션 흐름을 확인함으로써 써드 파티가 영향을 미치거나 커스텀 코드가 이슈가 되는 곳, 혹은 가비지 콜렉션(Garbage Collection) 등이 문제를 발생시키는 등의 핫스팟은 어디인지 파악할 수 있으며, 웹 서비스 콜이 과다하게 발생하거나 과도한 SQL 구문이 생성되는 등의 아키텍처 이슈를 확인할 수 있다.

만약 모든 트랜잭션을 캡처하지 않고도 스마트하게 문제가 되는 트랜잭션만을 잡아낸다면 어떨까? 이러한 접근법의 경우 오류가 발생하거나 베이스라인 기준 평균 응답 시간을 넘어가는 트랜잭션들을 분석함으로써 손쉽게 문제를 찾아내고 수정할 수 있다. 그러나 표준을 벗어난 트랜잭션에 의해 문제가 발생하는 경우 이러한 진단 및 수정이 어려워진다.

실제로 최근의 분석을 통해 확인한 데이터베이스 데드록(deadlock) 문제를 한 예로 들 수 있다. 이러한 스마트 접근법은 데드록을 발생시킨 트랜잭션만을 찾아내지만 데이터 조작으로 인한 데드록을 발생시키는 트랜잭션의 정보는 얻을 수 없게 된다.

이 문제를 해결하기 위해서는 데드록이 발생하는 순간에 업데이트된 구문 중 어떤 트랜잭션이 실행됐는지 확인해야 한다. 분석을 통한 평균 응답 시간을 기반으로 하는 스마트한 수준 이상의 성숙도에 도달한 기업의 경우 평균적인 문제가 아닌 모든 것을 파악할 수 있는 역량이 요구된다.

맞춤형 비즈니스 컨텍스트 확보
맞춤형 비즈니스 컨텍스트란 청구서 작성, 송금 등 실제 비즈니스에 연관된 기능이나 사용자 이름, 시스템 테넌트 등을 의미한다. 얼핏 간단해 보이지만 실제로는 그렇지 않다. 많은 애플리케이션들이 비즈니스 기능을 URL 혹은 쿠키 내 사용자 네임으로 제공하지 않기 때문이다.

하나의 예로 이러한 이슈를 살펴보도록 하자. claimCen ter.do URL 상에 모든 것을 숨기도록 설계된 써드파티의 청구 관리 소프트웨어를 사용하는 A 기업은 다이나트레이스를 통해 모든 트랜잭션을 분석하고 시스템 상의 어떤 기능들이 실제로 잘 수행되고 있는지 파악하기 위해 애플리케이션의 비즈니스 계층에 있는 매소드 아규먼트를 선별했다. 또 이 기능을 실행한 사용자를 파악해 어떤 사무소 혹은 어떤 직원 그룹에서 청구서를 많이 발행했는지를 확인하고, 분기 리포트에 이러한 내용을 포함시켰다.

이러한 리포팅이 가능한 이유는 다이나트레이스를 통해 전체 실행 트랜잭션의 컨텍스트 가운데 비즈니스 컨텍스트를 선별적으로 취할 수 있기 때문이다. 퓨어패스 기술을 기반으로 매소드 아규먼트, 반환 값, 바인드 값, 세션 변수, HTTP 매개변수, 쿠키 값 등 모든 내용을 확인할 수 있다.이러한 모든 정보는 비즈니스 리포팅에 사용되거나 성능 문제의 근본 원인을 파악하는데 활용된다.

툴 통합으로 편의성 향상
만약 트레이싱, CPU 프로파일러, 메모리 진단, UML 그래프 생성, 시스템 및 애플리케이션/비즈니스 툴이 하나로 통합 제공된다면 각각의 툴을 별도로 사용할 이유가 없을 것이다. 다이나트레이스의 경우, 모든 기능이 통합돼 있으며 단일 솔루션을 통해 개발자, 아키텍트, 테스터, 운영팀 및 경영진을 모두 지원한다.

특히 전통적인 CPU 및 메모리 누수 진단 기능의 경우 간단한 클릭만으로 모든 애플리케이션 서버에서 CPU/메모리 스냅샷을 제공한다. 퓨어패스 기술은 트리뷰 뿐만 아니라 모든 트랜잭션에 대한 UML 다이어그램을 생성할 수 있도록 지원해 코드 및 아키텍처 리뷰 회의시 유용하게 활용할 수 있다. 또한 운영 환경의 경우 최종 사용자, 애플리케이션, 시스템 모니터링을 모두 지원하므로 기존의 전통적인 시스템 모니터링 툴을 무료 툴로 대체할 수 있다.

경영진 입장에서는 이러한 모든 비즈니스 관련 데이터를 통해 사용 중인 소프트웨어가 어느 정도의 가치를 제공하고, 비즈니스 목표 달성을 지원하고 있는지 평가할 수 있다. 어떤 사용자가 더 많은 혹은 더 적은 돈을 소비하는지, 사용자들이 어디에서 유입되는지, 어떤 곳을 방문하는지, 어떤 경로로 비즈니스에 연계된 기능을 사용하는지 등에 대한 고전적인 단계별 전환율 분석 추적을 지원한다.

이러한 모든 데이터는 다이나트레이스에서 자체적으로 제공되거나, 혹은 이클립스, 비주얼 스튜디오, 젠킨스, 밤부, 실크퍼포머, 로드러너, 고메즈, MS SCOM, HP 오픈뷰 등과 같은 외부 툴에 통합시켜 확인할 수 있다.

개발·테스트·운영 협업 제공
개발·테스트·운영(DevTOps) 또한 지원해야 한다. DevTOps의 기본은 협업이다. 다이나트레이스의 경우, 간단한 클릭만으로 캡처 데이터를 공유함으로써 이러한 협업 대한 솔루션을 제공한다.

트랜잭션, 전체 로드 테스트, 운영 환경 데이터, CPU, 메모리 스냅샷 등 모든 데이터를 세션 파일로 내보내기 할 수 있으며, 이 파일을 JIRA 티켓에 첨부해 스카이프나 이메일을 통해 팀 동료는 물론 써드 파티 벤더에게 전송할 수 있다. 다이나트레이스 클라이언트를 통해 이 데이터를 무료로 확인할 수 있으므로 손쉬운 협업이 가능해 진다.

일례로 컴퓨웨어의 한 고객은 오라클 JDBC 구축 과정에서 80 JVM 클러스터에 대한 이슈를 경험한 바 있다. 그들은 이 세션 파일을 오라클과 공유하였고, 공급사에서는 그들의 오류로 인한 문제가 맞음을 시인하는 한편 퓨어패스에서 제공한 정보를 토대로 문제를 해결했다.

다른 한편으로, 애플리케이션을 지원하는 프레임워크, 오픈소스 플랫폼 및 서비스는 지속적으로 성장하고 있다. 어떠한 APM 벤더도 이 모든 것을 완벽하게 지원하기는 힘들지만, 기존에는 가능하지 않았던 커스텀 지원에 필요한 확장형 매커니즘을 제공할 수는 있다. 맞춤형 APM 구축을 위해서는 외부 데이터 소스의 데이터 풀링, 외부 시스템으로의 데이터 내보내기 등의 확장이 가능해야 하며, 엔드-투-엔드 트레이싱 등의 확장형 매커니즘이 맞춤형 구축에 큰 도움이 될 것이다.

무엇보다 자동화가 중요하다. 진정한 의미의 지속 서비스에 관심이 있고 이를 고민해 왔다면 자동화가 프로세스 및 제품의 품질 향상의 가장 중요한 요소임을 어렵지 않게 알 수 있을 것이다. 수동으로 하는 모든 작업은 오류의 위험을 안고 있을 뿐만 아니라 프로세스를 더디게 한다. 차세대 APM에서 정의하는 자동화란 REST 인터페이스를 통해 데이터 쿼리 작업을 지원할 뿐만 아니라 구성자체를 관리하는 것을 말한다.

현재 계획에 따라 운영 중인 빌드를 등록하거나 새로운 운영 환경에 APM을 적용하고자 할 때 이 기능을 활용함으로써 구축 후 실제 가동 되는 시점부터 그 즉시 자동 베이스라이닝이 지원되어야 한다. 또 다른 자동화 요소는 Splunk 및 기타 외부 분석 솔루션으로의 비즈니스 트랜젝션 데이터 피드의 자동화 이다.

전통적인 로깅 대체
많은 IT 부서에서 로그 스패밍과 끝없는 싸움을 계속하고 있다. 그러나 차세대 APM은 문맥상의 관련 로그만을 수집함으로써 이러한 문제를 해결한다. 또한 개발자들이 트랜잭션의 같은 로그 메시지를 지속적으로 로깅하는 것은 물론 로그 정보가 트랜잭션과 무관하다는 것을 발견하는 경우 솔루션 자체적으로 로깅 작업을 최적화하기도 한다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.