482
2
부
구현
스템 상태는 어느 정도 이분법적이다. 즉, 프로세스는 정상
up
또는 중단
down
중 하나다. 하지만
마이크로서비스 아키텍처에서는 훨씬 더 미묘한 상황을 고려해야 한다. 어떤 상황에서 옳은 일
은 기술적인 결정이 아닌 경우가 많다. 장바구니가 다운됐을 때 기술적으로 가능한 작업이 어
떤 것인지 알 수 있지만, 비즈니스 맥락을 이해하지 못하면 어떤 조치를 취해야 하는지 이해할
수 없다. 예를 들어, 사이트 전체를 내리고 사람들이 여전히 카탈로그 항목을 탐색하도록 허용
하거나 장바구니 컨트롤이 포함된
UI
일부를 주문 전화번호로 대체할 수 있다. 하지만 여러 마
이크로서비스를 사용하는 모든 고객을 대면하는 인터페이스나 여러 다운스트림 협업자에 의존
하는 마이크로서비스에 대해서는 “이들이 다운되면 어떻게 될까?”라고 자문해야 하며 무엇을
할지 알고 있어야 한다.
교차 기능 요구 사항의 측면에서 각 기능들의 중요성을 판단하면 우리가 무엇을 할 수 있는지
훨씬 더 잘 정할 수 있다. 이제 기술적인 관점에서 실패가 발생했을 때 원만하게 처리하기 위해
할 수 있는 몇 가지 일을 고려해보자.
12.512.5
안정성 패턴 안정성 패턴
무언가 잘못될 경우 심각한 파급 효과를 피하기 위해 사용하는 몇 가지 패턴이 있다. 이러한 패
턴의 개념을 이해하는 것이 중요하며, 한 명의 나쁜 시민
bad
citizen
이 전 세계를 무너뜨리는 일이
없도록 시스템에서 이 패턴들을 활용하는 것을 적극 고려해야 한다. 잠시 후에 고려해야 할 몇
가지 주요