206
2
부
시스템 설계
복구하고 정상적인 상태로 돌아간다. 이런 시스템을 구성하는 서비스는 장애가 발생해도 여전
히 동작하는 것이 이상적이지만, 간혹 다소 성능이 저하된 상태에서 동작하기도 한다.
회복성을 위한 시스템 설계는 복구를 위한 설계 (자세한 내용은
9
장 참고 )와는 다르다. 회복성
과 복구는 밀접하게 연관되어 있지만 복구는 시스템에 문제가 발생한 후 이를
고치는
것에 집중
하는 반면 회복성은 장애의 영향을
지연시키거나
견뎌내는
것을 의미한다. 회복성과 복구를 모두
고려해 설계한 시스템은 장애로부터 훨씬 잘 복구되며 그 과정에서 사람의 개입도 최소화되어
있다.
8.1
회복성을 위한 설계 원리
시스템의 회복성은
2
부 앞에서 설명했던 원리를 기초로 만들어진다. 시스템의 회복성을 평가
하려면 시스템의 설계와 구현 원리를 반드시 잘 이해하고 있어야 한다. 또한 이 책에서 설명했
던 최소 권한, 이해 가능성, 적응성
adaptability
, 복구 등 다른 설계 원리도 밀접하게 연관 지어야
시스템의 안정성과 회복성을 강화할 수 있다.
이번 장에서 심도 있게 살펴볼 다음의 접근법은 회복성 있는 시스템의 특징을 결정짓는다.
●
시스템의 각 계층이 독립적으로 회복성을 갖도록 설계한다. 이 방법은 각 계층에 심층방어를 구현하는
것이다.
●
각 기능의 우선순위를 정하고 그 비용을 계산해서 시스템의 부하가 얼마가 되든 지속적으로 동작하도록
해야 하는 주요 기능이 무엇인지, 리소스가 제한적일 때 사용을 제한하거나 비활성화 해도 괜찮은 기능
은 무엇인지 판단한다. ...