모니터링 및 로깅
모니터링은 중요합니다. 아키텍처에 따라 다소 어려울 수 있습니다. 분산 시스템의 경우 훨씬 더 어렵지만 그만큼 중요할 수도 있습니다.
실시간 애플리케이션 모니터링
실시간 시스템에서 작업이 지정된 시간 프레임 내에서 기능을 수행한다는 것을 배웠습니다. 일반적인 실시간 애플리케이션 스택을 모니터링하는 5단계 목록을 살펴보겠습니다.
- 시스템의 모든 개별 작업을 정의합니다.
- 각 작업마다 완료할 시간 프레임을 예측합니다.
- 각 작업의 성능, 그 종속성 및 전반적인 시스템 규칙성을 모니터링하고 확인합니다.
- 작업에 시간 프레임이 없는 경우 경고를 지정하고 전략을 설정합니다.
- 자동화를 시도해 보세요.
Important
개별 작업을 다른 작업과 분리된 것으로 정의해야 합니다. 한 작업의 실패가 다른 작업까지 실패까지 야기해서는 안 됩니다.
참고
신뢰할 수 있는 시스템이 관건입니다. 자동화를 통해 시스템의 안정성을 높일 수 있습니다.
이벤트 구동 애플리케이션 스택 모니터링
대부분의 이벤트 구동 아키텍처는 ‘실행 후 망각’ 원칙을 사용합니다. 실행 후 망각 원칙에서는 메시지를 보낸 후 받는 사람의 응답을 기대하지 않습니다. 이 시나리오에서 보낸 사람은 생산자이며 다음 서비스로 이벤트를 보냅니다. 그다음 서비스는 다른 함수, 메시지 브로커 또는 이벤트 허브나 스트림이 될 수 있습니다. 이 서비스는 메시지의 수신자여서는 안 됩니다. 주어진 시나리오와 마찬가지로 이벤트 허브에서 메시지를 받는 소비 함수가 메시지의 수신자입니다.
이벤트 구동 애플리케이션 스택이 분산 시스템인 경우 인프라의 각 부분과 전체 시스템을 제대로 모니터링해야 합니다.