[SRE] Ch03. Embracing Risk
일반적으로 구글의 서비스를 많이 사용하는 유저라면, 구글이 100% 신뢰할 수 있으며 장애가 절대로 일어나지 않는 서비스들을 구축했을 것이라 생각할 수 있다!
하지만 신뢰성
을 극대화하면 기능 개발 속도나 제품 출시 기간에 제동을 걸게 되며 비용이 상승하여 방해가 된다고 한다.
사용자 경험이란 모바일 네트워크나 일반적인 네트워크와 같은 신뢰성이 낮은 컴포넌트들에 의해 좌우되기 때문에, 사용자들은 높은 수준의 신뢰성
과 극대화된 신뢰성
의 차이를 알아치리지 못한다.
따라서 SRE는 Uptime 을 극대화하기보다, 서비스가 다운될 수 있는 위험 요소와 빠른 혁신과 효과적인 서비스 운영 사이의 균형을 찾고 전체적인 서비스 만족도를 향상시키는 것에 집중하고 있음
위험 요소 관리하기
시스템 구축 비용은 신뢰성의 증가에 비례해서 증가하는 것이 아니다. 신뢰성 향상으로 비용이 100배 증가하는 경우도 있다!
따라서 구글에서는 가용성 목표치를 99.99%로 설정하면 이를 초과 달성하려고 노력하기는 하지만, 넘치게 초과하려고는 하지 않음.
넘치게 초과하려고 하다보면 기술 부채와 운영 비용을 줄이기 위한 기회를 잃어버리는 경우가 있음
서비스 위험 측정하기
- 시간을 기준으로 한 가용성
- 종합 가용성
구글은 Fault Isolation 방식을 사용하기 때문에 특정 서비스의 트래픽 중 일부는 세계의 어느 한 지역에 제공하고 있음. 따라서 전체 시간 중 최소 일부는 정상 동작 중
이라는 의미
그렇기 때문에 시간을 기준으로 한 가용성은 의미가 없고, 종합 가용성을 고려함
서비스의 위험 수용도
Risk Tolerance (위험 수용도) 는 소비자를 대상으로 하는 서비스와 Infra 서비스의 경우 기준이 달라짐
소비자 대상 서비스의 위험 수용도
정의와인프라스트럽처 서비스의 위험 수용도
정의는 다름- 목표 가용성 수준
- 장애의 종류
- 비용
에러 예산 활용해보기
SRE의 실적은 서비스 신뢰성이 차지하는 비중이 큼
. 따라서 많은 양의 배포 사항을 배제하려는 경향이 있음.- 하지만
개발자는 빠르게 배포하고 싶어함
. - 이 둘 간의 간극에서 대립이 발생함.
- 의견 대립의 예시
- 소프트웨어 결함 허용 유연성
- 충분한 테스트
- 출시 빈도
- 카나리 테스트 빈도와 규모
- 서로 균형을 맞춰야 함!
장점
- 에러 예산을 도입하고 SLO를 설정하면, 제품 개발팀과 SRE팀이 혁신과 신뢰성 사이의 올바른 균형을 찾을 수 있음
- 즉, 시스템이 SLO 기준에 부합하면 릴리즈하고, 그렇지 않으면 중단 후 개발과 테스트에 자원을 투입!