493
12
장
회복 탄력성
찍 확인할 수 있으며, 작업의 일부로 사용할 마이크로서비스를 현재 사용할 수 없는 경우 작업
을 시작하기도 전에 중단할 수 있다.
12.5.512.5.5
격리 격리
한 마이크로서비스가 다른 마이크로서비스의 가용성에 더 많이 의존할수록 한 마이크로서비스
의 상태가 다른 마이크로서비스의 작업 수행 능력에 더 많은 영향을 미친다. 예를 들어 미들웨
어나 다른 종류의 호출 버퍼링 시스템을 사용해 다운스트림 서버를 오프라인으로 만드는 기술
을 사용할 수 있다면, 업스트림 마이크로서비스는 계획되거나 계획되지 않은 다운스트림 서비
스의 중단으로 인해 영향을 받을 가능성이 줄어든다.
서비스 간 격리를 강화하면 또 다른 이점도 있다. 서비스가 서로 격리되면 서비스 소유자 간의
조정 작업이 훨씬 줄어든다. 팀 간 조정이 줄어들수록 팀은 자신들의 서비스를 더 자유롭게 운
영하고 발전시킬 수 있으므로 더 많은 자율성을 갖게 된다.
격리는 논리적인 것에서 물리적인 것으로 전환하는 방식에도 적용된다. 서로 완전히 격리된 것
처럼 보이는
2
개의 마이크로서비스를 생각해보라. 이 두 마이크로서비스는 어떤 방식으로도
서로 통신하지 않는다. 따라서 그중 하나에 문제가 생겨도 다른 것에 영향을 끼치지 못할 것이
다. 하지만 두 마이크로서비스가 동일한 호스트에 실행되고 있으며, 그중 하나가
CPU
를 모두
사용하기 시작해 결국 해당 호스트에 문제가 발생하면 어떻게 될까?
다른 예를 생각해보자. 두 마이크로서비스에는 각각 논리적으로 격리된 자체 데이터베이스가 ...