509
12
장
회복 탄력성
요약요약
소프트웨어가 사용자의 삶에서 더욱 중요해짐에 따라 우리가 만드는 소프트웨어의 회복 탄력
성을 향상시키려는 노력도 함께 증가하고 있다. 하지만 이 장에서 살펴봤듯이 소프트웨어와 인
프라스트럭처만 생각해서는 회복 탄력성을 달성할 수 없으며 사람, 프로세스, 조직에 대해서도
생각해야 한다. 이 장에서는 데이비드 우즈가 설명한 회복 탄력성의 네 가지 핵심 개념을 살펴
봤다.
견고성
예상되는 변동을 흡수하는 능력
회복성
충격적인 사건 이후 회복하는 능력
원만한 확장성
예상치 못한 상황에 얼마나 잘 대처하는가?
지속적인 적응력
변화하는 환경, 이해관계자, 요구 사항에 지속적으로 적응하는 능력
마이크로서비스를 좀 더 좁게 살펴보면, 시스템의 견고성을 향상시키는 다양한 방법이 있다.
하지만 견고성은 저절로 높아지지 않으므로 어떤 방법으로 향상시킬지 결정해야 한다. 회로 차
단기, 타임아웃, 이중화, 격리, 멱등성 등과 같은 핵심 안정성 패턴은 모두 사용할 수 있는 도구
지만, 언제 어디서 사용할지를 결정해야 한다. 하지만 이러한 좁은 개념 외에도 우리가 모르는
것이 무엇인지 깨달을 수 있도록 끊임없이 경계해야 한다.
어느 정도의 회복 탄력성을 원하는지 파악해야 하는데, 이는 거의 언제나 시스템의 사용자와
비즈니스 소유자가 정의하는 것이다. 기술 전문가로서 여러분은 작업을 수행하는 방식을 담당
할 수 있지만, 어떤 회복 탄력성이 필요할지 파악하려면 사용자 및 프로덕트 오너와 자주 긴밀
하게 소통해야 한다.
이 장의 앞부분에서 지속적인 ...