245
8
장
회복성을 위한 설계
한 수요를 충족하도록 낮은 우선순위 리소스를 릴리스한다. 하지만 시스템이 실제로 그런 리소
스를 안정적으로, 그리고 납득할 수 있는 시간 안에 릴리스할 수 있는지 검증해야 한다.
구글은 한 때 배치 처리를 위해 엄청난 디스크 공간을 필요로 하는 서비스를 보유한 적이 있다.
사용자 서비스는 배치 처리보다 높은 우선순위를 가지며 사용량이 급증하는 경우를 대비해 상
당한 예약 디스크를 할당한다. 배치 처리 서비스를 허락했던 이유는 특정 조건하에서 사용자
서비스가 사용하지 않는 디스크를 활용하기 위한 것이었다. 여기서 특정한 조건이란 특정 클러
스터 안의 디스크는 무조건
X
시간 후에 완전히 릴리스되어야 한다는 것이다. 우리가 개발한
검증 전략은 정기적으로 배치 처리 서비스를 클러스터 외부로 옮기고 이 작업이 얼마나 오래
걸리는지 측정하여 이때마다 매번 발견되는 새로운 이슈를 수정하는 것이었다. 이는 시뮬레이
션이 아니었다. 우리의 검증 전략 덕분에
X
시간의
SLO
를 약속한 엔지니어는 진짜 증거와 진
짜 경험을 갖게 되었다.
이런 검증 전략은 비용이 많이 들지만 대부분의 비용은 자동화 때문에 발생한다. 로드 밸런싱을
도입하면 원본 및 목적지 위치의 리소스 프로비저닝 관리 비용을 어느 정도 관리할 수 있다. 만일
리소스 프로비저닝이 대부분 자동화되어 있다면 (예를 들어 클라우드 서비스를 사용하는 경우 )
라면 필요한 일련의 자동화 요청을 보내는 스크립트나 플레이북
playbook
을 실행하기만 하면 된다.
소규모