376
2
부
구현
기대치, 즉 앞서 언급한
SLO
를 갖는 것이 일반적이다. 이 목표의 일환으로 특정 수준의 성능을
제공하기로 약속한다면, 어떤 자동화된 테스트가 해당 목표치를 충족할 수 있는지 (그리고 바
라건대 초과할 수 있는지 )에 대해 피드백을 제공하는 것이 타당하다.
특정 성능 목표 대신에 자동화된 성능 테스트는 변경 사항에 따라 마이크로서비스의 성능이 어
떻게 달라지는지 확인하는 데 여전히 매우 유용하다. 이 테스트는 급격한 성능 저하를 유발하
는 변경을 했을 때 여러분을 잡아줄 안전망이 될 수 있다. 따라서 특정 목표치에 대한 대안으
로, 한 빌드와 다음 빌드 간의 성능 차이가 너무 큰 경우에는 테스트가 실패한다.
성능 테스트는 실제 시스템 성능에 대한 이해와 맞물려 수행돼야 하며(자세한 내용은
10
장에
서 설명한다), 이상적으로는 시스템 동작을 시각화하려면 운영 환경에 사용된 것과 동일한 도
구를 성능 테스트 환경에서 사용한다. 이 방식을 사용하면 유사성을 훨씬 쉽게 비교할 수 있다.
9.8.29.8.2
견고성 테스트견고성 테스트
마이크로서비스 아키텍처는 가장 약한 링크에 의해 신뢰성이 결정되며, 결과적으로 시스템 안
정성을 향상시키기 위해 마이크로서비스가 자체적으로 견고성
robustness
을 개선할 메커니즘을 구
축하는 것이 일반적이다.
12
.
5
절 ‘안정성 패턴’에서 이 주제를 자세히 다루겠지만, 예를 들면
인스턴스의 장애를 감내하려고 로드 밸런서 뒤에 여러 마이크로서비스 인스턴스를 실행하거나
다운스트림 마이크로서비스가 중단되는 ...