SRE(Site Reliability Engineering)는 Google이 창안한 소프트웨어 엔지니어링 접근법으로 운영 문제를 해결하는 방법론이다. 신뢰성을 정량화하고 오류 예산을 통해 개발 속도와 안정성의 균형을 관리한다.
핵심 지표 (SLI/SLO/SLA)
SLI (Service Level Indicator): 측정 가능한 서비스 수준 지표
예: 가용성 = 성공 요청 / 전체 요청
SLO (Service Level Objective): 목표치
예: 99.9% 가용성 (월 43분 다운타임 허용)
SLA (Service Level Agreement): 고객과의 계약
예: 99.9% 미달 시 크레딧 제공
오류 예산 (Error Budget):
오류 예산 = 1 - SLO = 0.1%
→ 이 범위 내에서 기능 릴리즈·실험 허용
→ 오류 예산 소진 시 릴리즈 동결
SLI 측정 예시
python
# Prometheus 쿼리로 가용성 SLI 계산
availability_sli = """
sum(rate(http_requests_total{status!~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
"""
latency_sli = """
histogram_quantile(0.99,
sum(rate(http_request_duration_seconds_bucket[5m])) by (le)
)
"""
토일(Toil) 관리
토일 = 수동적, 반복적, 자동화 가능한 운영 작업
SRE 원칙: 토일을 전체 업무의 50% 이하로 유지
나머지 50%: 엔지니어링 작업 (자동화, 개선)
관련 개념