SLA/SLO/SLI
KPI(Key Performance Indicator)
KPI 는 성공을 측정하는데 사용될 수 있는 메트릭이다.
KPI 는 목표나 목적과는 다른, 목표를 달성하는 과정 중에 있는지 측정하는 메트릭이다. 따라서 수반하는 목표가 필요하다. 또한 KPI 를 모니터링하는 것은 목표를 달성하기 위해 필수적이다.
- SMART 법칙
- Specific: KPI 는 구체적이어야 한다.
- Measurable: 모니터링하기 위해서 KPI 는 측정 가능해야 한다.
- Acheivable: 100% 는 성취하기 어렵다.
- Relevent: 관련있지 않은 KPI 는 목표 달성을 이끌어 낼 수 없다.
- Time-bound: 99% available-Per Year? Per month? Per day?
종류
- Business KPI
- Return on Investment (ROI)
- Earning before interest and taxes (EBIT)
- Employee turnover, Customer churn
- Technical or Software KPI
- Page view, User registration, Clickthroughs, Checkouts
Service Level
Indicators → Objectives → Agreement
SLI(Service Level Indicators)
서비스의 측정 가능한 특성, A KPI
SLI 는 시간이 정해지고 측정 가능해야 한다.
ex) Availability
SLO(Service Level Objectives)
주어진 SLI 로 성취하고 싶은 목표나 숫자 지표
ex) 95%, 99% or 99.99% availability
SLO 는 성취 가능하고 관련 있어야 한다.
가능한 높은 목표를 세우는 것이 아니라, 사용자를 만족시킬 만큼에서 가격 효율적인 SLO 를 선택해야 한다. SLO 가 높을수록 높은 비용과 노력을 초래하기 때문이다. SLO 를 최소화 해야 하고 어플리케이션이 SLO 를 크게 능가해서는 안된다.
SLA(Service Level Agreements)
만약 서비스가 특정 기대를 못 미쳤을 때, 고객 보상을 제공해주는 구속력있는 계약 = more restrictive version of SLO
SLA 에는 만약 서비스가 특정 가용성을 또는 퍼포먼스 기준을 유지하지 못했을 때 제공자에 가해지는 penalty 에 대해 적는다. 그리고 SLA 가 깨지면 고객은 제공자로부터 보상을 받는다.
모든 서비스에 SLA 가 있어야 하는 것은 아니지만 SLO 는 있어야 하며 SLO 의 기준은 SLA 보다 높아야 한다.
만약 SLA 가 95% availabilty 일 경우 SLO 는 95% availabilty 보다 높아야 한다는 것이다.
아래는 SLI, SLO, SLA 에 대한 예시이다.
SLI 로는 200 응답에 대한 latency 를 잡았고 SLO 로는 99% 의 latency 가 200ms 보다 작아야 한다. 또한, SLA 로는 99% latency 가 300ms 를 초과할 경우 보상을 지불하도록 설정됐다.