2015년 지금 다니는 회사에 입사할 때 일이다. "넌 우리 회사에서 무슨 일을 하고 싶니?"라는 팀장님의 질문에 "우리 회사는 많은 서버를 위탁 운영하고 있으니 성능 관리 솔루션을 개발했으면 좋겠습니다"라고 대답했다. 그리고 지옥은 시작됐다.
먼저 무(無)의 상태에서 다른 성능 관리 제품들을 비교하고 어떤 기능이 필요한지 파악했다. 그리고 사용자 인터뷰를 통해 제품의 방향성을 결정했다. 결정된 방향대로 제품을 개발하기 위해서는 리소스(인력) 확보가 필요했다. 내부 투자 심의를 거쳐 투자 승인을 받은 후, 본격적인 프로덕트 개발이 시작됐다. 우리 프로덕트는 다양한 이해관계자가 존재했다. 운영 팀에서는 요구 사항을 제시하고, 개발 팀과 ITSM 관리 팀과 협업을 통해 개발을 완료해야 했다.
개발이 완료된 솔루션은 다시 판매를 위해 상품화 단계를 거쳐야 했다. 사실 가장 힘들었던 단계가 상품화 단계였다. IT 회사라 상품화 단계는 익숙하지 않아 라이선스나 가격을 어떻게 결정해야 하는지 명확히 방향을 제시할 수 있는 인물이 없었다. 결국 경쟁사와 가격과 다양한 라이선스 정책들을 비교해 최적의 라이선스 정책을 결정한 후, 이제 그 프로덕트를 판매하고 있다.
지금 고객 피드백을 받아보면 사용자의 요구 사항을 기반 제품을 개발했는데도, 새로운 요구 사항이 많이 발생한다. 돌이켜보면 우리의 개발은 고객의 요구 사항을 개발자의 렌즈로 변형해서 개발했던 것 아닌가 싶다. 당시에는 고객이 필요한 프로덕트를 어떻게 개발해야 하는지 잘 알지 못했고, 관리하는 방법과 이해관계자들과의 소통 방법에 대한 이해 또한 부족했다.
이 책은 프로덕트 리더십을 통해 프로덕트를 성공으로 이끄는 방법을 다룬다. 고객 요구 사항 관리, 팀 설계 등 내부 인원 관리, 성공을 측정하는 방법이 정리돼 있다. 만약 3년 전에 이 책을 읽었으면 지금보다는 조금 더 사용자가 꼭 필요로 하는 솔루션을 개발했을 것 같다는 생각이 든다. 현재 프로덕트를 관리하거나 새로운 프로덕트를 준비하고 있다면 한 번쯤 읽어보기를 권한다.
서비스의 연속성 보장은 더 강조할 필요가 없을 정도로 이미 그 중요성에 대해서 모두 공감하고 있다. 서비스의 다운타임은 기업의 신뢰성을 떨어뜨려, 매출 감소로 직결되기 때문이다. 다운타임의 감소를 위해 재해복구, H/A 등 다양한 기술이 발전해 왔다. 다운타임을 줄이기 위한 기술들 중 가장 효과가 뛰어난 방법은 모니터링 솔루션을 도입하는 것이다.
모니터링 솔루션은 모니터링하는 대상에 따라 SMS, APM, DPM, NMS 등으로 구분된다. SMS는 서버의 CPU, 메모리, 디스크, 네트워크, 프로세스, 포트 등을 모니터링해 시스템의 정상 여부를 점검한다. APM은 애플리케이션을 모니터링한다. 애플리케이션이 사용하는 자원(CPU, 메모리)이나, 스레드, GC 등을 모니터링해 서비스가 정상으로 동작하는지를 점검한다. DPM은 데이터베이스의 LOCK이나, 성능 정보, 테이블스페이스 상태 등 데이터베이스를 모니터링할 때 사용된다. NMS는 SNMP(Simple Network Management Procotol)를 통해 네트워크 장비의 CPU, 메모리, 트래픽, 포트 상태 등을 모니터링한다.
이런 다양한 솔루션 중에서 자빅스는 SMS, NMS 기능을 완벽하게 제공한다. 또한 일부 애플리케이션이나, 데이터베이스를 모니터링하는 방법도 제공한다. 리눅스, AIX, HP-UX, 윈도우 등 현재 사용되는 모든 OS에서 동작이 가능하며, 소스가 공개돼 GCC 이용이 가능한 플랫폼에서는 소스를 컴파일해 실행파일을 생성할 수 있다.
일반적으로 사람들은 SMS에서 제공돼야 하는 가능은 성능 정보를 수집하고, 임계치와 비교해서 통계를 파악하는 정도로 생각하기 때문에 자체 솔루션을 개발해 사용하는 경우들을 볼 수 있다. 하지만 인하우스 개발은 패키지에서 제공하는 세밀한 기능들을 도출해 개발하는 것이 쉽지 않다. 자빅스는 일반적인 모니터링 솔루션의 가장 기본이 되는 것 외에 사용자 관리, 호스트 그룹 관리, 템플릿 관리, 정기점검(PM, preventive maintenance) 관리, 에스컬레이션 기능들을 제공하고 있으며, 프록시(Proxy) 기능을 통해 100,000대 이상의 장비를 모니터링할 수 있는 기능도 제공한다. 또한 대부분의 기능을 API로 제공하고 있고, 모든 소스가 공개돼 다양한 기능들을 손쉽게 확장할 수 있다.
자빅스는 라트비아에서 개발한 오픈소스 모니터링 솔루션으로 2001년 알파 버전이 처음 릴리스돼 지금은 미국, 일본에 지사를 두고 활발히 발전하고 있다. 다른 상용제품이나 오픈소스와 비교해도 기능이 탁월하지만, 국내에서 참고할 만한 자료가 많지 않아서 적용에 많은 어려움을 겪고 있는 것으로 파악된다. 이 책은 자빅스 3.0에서 제공하는 모든 기능을 자세히 소개하고 적용할 수 있도록 지침이 돼준다. 이 책을 통해 서비스 모니터링에 대한 통찰을 얻고, 자빅스의 기능을 최대한 활용해 서비스 품질을 향상시킬 수 있기를 기대한다.