계측기란?
기계공학 용어사전에 따르면 계측기는 중량, 용량, 속도, 진동, 소음, 온도, 열량, 길이 등 양의 크기나 물리적 상태를 수치로 포착하여 지시 또는 기록하는 기구이다.
그러면 이 글의 제목은 왜 "조종사의 비행 계측기에 해당하는 장치를 만들자 " 인가?
요즘 읽고 있는 "이펙티브 엔지니어"라는 책에서 성공한 IT 기업들은 개발자가 시스템 동작을 쉽게 측정, 모니터링, 시각화할 수 있게 조종사의 비행 계측기에 해당하는 장치를 만든다고 나와있다.
그래서 특정 동작의 근본 원인을 빨리 파악할수록 문제를 더 빠르게 처리하며 발전할 수 있다고 했다.
모니터링 시스템을 사용해서 지표를 수집하고 집계하여 그래프로 만들고 이상이 감지되면 경고를 보낸다.
코드 배포 시에도 지표를 수집한다면 코드 배포 시간의 연관성을 그래픽으로 확인하면 문제를 일으킨 배포를 신속하게 찾아낼 수 있다.
현재 다니고 있는 회사는 조종사의 비행기 계측기에 해당하는 장치 즉 모니터링 시스템이 거의 없다고 봐도 무방하다.
모니터링 시스템이 없으면 발생하는 문제를 이 회사에서 경험했다.
이번에 데이터 누락이 발생하였고 일어난 원인을 전달해야 했었다.
하지만 모니터링이 되어 있지 않았고 해당 부분에 대한 로그도 있지 않아
원인을 코드만 보고 추측해서 전달할 수밖에 없었다.
데이터 누락 원인은 타 서비스 쪽에서 우리 쪽으로 데이터를 보내줘야 했지만 실제로는 넘어오지 않았고
이 과정에서 우리쪽 서비스에 데이터가 누락되어 애플리케이션 오류가 발생했다.
하지만 이 또한 요청 결과가 실패인지 성공인지 그런 게 없다 보니 추측일 뿐이다.
그래서 그런지 이 기회에 더욱더 애플리케이션에 관한 모든 것을 측정하고 싶어졌다.
만약 내년에도 이 회사를 다닌다면 목표에 모니터링 도입을 추진하여 달성할 수 있도록 나의 입지를 잘 다져야겠다.
시스템 모니터링 서비스 종류
이 책에서는 거의 실시간에 가깝게 시스템 모니터링할 수 있는 오픈 소스 도구를 아래와 같이 소개해주고 있다.
'Graphite, StatsD, InfluxDB, Ganglia, Nagios, Munin'
관리형 엔터프라이즈 솔루션은 뉴 렐릭(New Relic), 앱다이나믹스(AppDynamics) 이다
마지막으로
이 책에서는 몇 가지 설계 중 어떤 것이 성능이 더 좋은지, 수치가 적절한지, 기능을 얼마나 더 발전 시킬 수 있는지,
지표가 정상적으로 작동하다면 잠시 멈추라고 한다.
어떤 벤치마크가 이 질문에 답하는 데 도움이 될지 생각해보고 그 자료(데이터)를 수집하고 체득하는 데 시간을 투자하라고 한다.
'책 > 기록' 카테고리의 다른 글
[데일카네기 인간관계론] 사람들이 당신을 좋아하도록 만드는 6가지 방법 (0) | 2023.01.24 |
---|---|
[데일카네기 인간관계론] 사람을 다루는 기본 방법 3가지 (0) | 2023.01.16 |
스프링 부트로 Reactive Programming 간단하게 맛보기 (0) | 2022.06.24 |
[Effective Java] 아이템5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2022.06.21 |
[Effective Java] 아이템4 인스턴스화를 막으려거든 private 생성자를 사용하라 (0) | 2022.06.20 |