DevOps BootCamp/모니터링

서비스 수준 목표

cloudmaster 2023. 6. 6. 17:14

서비스 수준 관련 용어

서비스를 운영하는 데 있어서, 사용자에게 필요한 적정 수준을 정의하고 제공하기 위해, 서비스 제공자와 사용자는 서로 서비스 수준 협약(Service Level Agreements, SLA)을 맺습니다.
하지만 고객과의 약속이라는 것은 "어느 정도의 서비스를 제공해야 제대로 제공했다고 말할 수 있는 것인지"를 정확하게 명시하지 않으면 안 됩니다.
-> SRE 엔지니어는 척도를 통한 목표를 이해하고, 실제로 목표를 세우는 방법을 알아야 합니다.

 

SLI (서비스 수준 척도, Service Level Indicator)

서비스 수준을 판단할 수 있는 몇 가지를 정량적으로 측정한 값
  • 응답 속도: 요청에 대한 응답이 리턴되기까지의 시간
  • 에러율: 전체 요청 수 대비
  • 처리량(throughput): 초당 처리할 수 있는 요청 수
  • 가용성: 서비스가 사용 가능한 상태로 존재하는 시간의 비율
  • 내구성: 데이터 저장이 중요한 목적인 서비스의 경우 특히 중요

 

SLO (서비스 수준 목표, Service Level Objectives)

SLI에 의해 측정된 서비스 수준의 목푯 값, 또는 일정 범위의 값을 의미합니다. 즉 SLO는 다음과 같이 표현됩니다.

 

SLI ≤ 목표치
최소값 ≤ SLI ≤ 최댓값

 

SLA (서비스 수준 협약, Service Level Agreements)

"SLO를 달성하지 못하면 어떻게 되는지"를 적어놓은 약속입니다. SRE가 직접 관여하지는 않습니다.

 

 

지표 설정과 주요 목표 설정

지표 설정

서비스나 시스템에 있어 중요한 지표를 판단하는 근거가 있어야 합니다.
적절한 SLI의 선정은 시스템의 분류에 따라 달라질 수 있습니다.

 

  • 사용자가 직접 대면하는 시스템
    • 보통 프론트엔드에 해당하며, 이 경우 가용성, 응답 시간, 처리량이 중요합니다.

 

  • 저장소 시스템
    • 응답 시간, 가용성, 내구성이 중요합니다.

 

  • 빅데이터 시스템
    • 데이터 파이프라인이 이에 해당하며, 처리량, 그리고 엔드포인트 간 응답 시간이 중요합니다.

 

 

척도 수집

측정 원본을 합산하거나, 평균을 내거나 하는 방법이 있겠지만, 대부분의 경우 분포가 중요합니다.
일부 요청이 빠르게 처리되어도, 나머지 요청이 균일하게 느리다면 실제로 서비스는 느린 것으로 간주할 수 있습니다.
 -> 평균은 이러한 흐름의 변화를 감지하기 어렵습니다.

 

 

척도의 표준화

SLO를 설정할 때, 주요 SLI의 정의를 표준화시키면 편리합니다. 예를 들어 다음과 같습니다.
  • 집계 간격: 1분
  • 집계 범위: 하나의 클러스터에서 수행되는 모든 태스크
  • 측정 빈도: 매 10분
  • 집계에 포함할 요청: 전체 HTTP GET 요청

 

목표 설정하기

다음과 같은 목표를 설정할 수 있습니다. 다음은 성능에 중점을 둔 SLO입니다.
  • GET 호출의 90%는 1ms 이내에 수행되어야 한다.
  • GET 호출의 99%는 10ms 이내에 수행되어야 한다.
  • GET 호출의 99.9%는 100ms 이내에 수행되어야 한다.