Fault Tolerance
내결함성
msa
Fault Tolerance
아마존 부사장인 버너 보겔스(Werner Vogels)는 소프트웨어는 모두 실패한다라고 말한바 있다. 실패에 빠르게 대응할 수 있도록 설계해야 한다는 말이다. 이를 내결함성(fault tolerance)이라고 한다.
- 과거 아키텍처 성격
- 무결함 or 실패 무결성을 추구
- 현재 아키텍처 성격
- 실패하지 않는 시스템이 아니라, 실패에 빠르게 대응할 수 있는 시스템을 만드는 것이 효율적
- 시스템은 항상 실패하지 않을 수 없기 때문
- 이를 위한 대비책
- 다양한 실패에 대비한 테스트 환경
- 실시간 모니터링 체계 갖추기
서킷 브레이커(circuit breaker)
- 서킷 브레이커 패턴은 회로 차단기처럼 각 서비스를 모니터링 하고 있다가 한 서비스가 다운되거나 실패하면 이를 호출하는 서비스의 연계를 차단하고 적절하게 대응하는 것을 의미
카오스 몽키(chaos monkey)
- 넷플릭스에서는 카오스 몽키라는, 장애를 일부러 발생시키는 도구를 만들어 이러한 탄력적인 아키텍처가 제대로 동작하는지를 검증하기도 함
References
- 도메인 주도 설계로 시작하는 마이크로서비스 개발 / 한정헌, 유해식, 최은정, 이주영 저 / 위키북스