마이크로서비스 접근 방식은 본질적으로 시스템에 장애가 발생할 수 있는 지점을 증가시킨다.
개발할때는 마찰이 줄지만, 운영 중인 애플리케이션을 배포/검증/모니터링하는 방법이 더 복잡해진다.
아래와 같은 문제가 발생시 어떻게 처리해야할까?
-- 문제가 발생하면 어디에서 오류가 발생했는지 어떻게 알 것인가?
-- 서비스에 영향을 주지 않고 새로운 버전의 서비스를 어떻게 배포할 것인가?
-- 어떤 서비스가 호출돼야 했는지를 어떻게 알 것인가?
-- 어떤 동작이 여러 서비스에 걸쳐 올바르게 작동하는지 어떻게 테스트할 것인가?
-- 서비스를 사용할 수 없으면 무슨 일이 발생하는가?
문제점 및 모니터링 대상
-- 네트워크/라우터 장애: 네트워크 문제가 사용자/서비스/의존성 사이에 요청 전달이 실패하는 문제를 일으킨다.
-- 과부하: 서비스 인스턴스가 요청을 너무 많이 받아 응답하지 못하거나 시간제한에 걸린다.
-- 하드웨어 장애: 데이터베이스 또는 서비스 인스턴스를 실행하는 하드웨어에 장애가 발생한다.
-- 하위 의존성 장애: 의존하는 서비스가 실패하거나 응답이 느려질 수 있다.
-- 제삼자 장애: 의존하는 제삼자로의 요청이 실패할 수 있다.