본문 바로가기

Monitoring

[모니터링]SLI, SLA, SLO 용어와 SRE 직무

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

서비스를 운영하는 데 있어서, 사용자에게 필요한 적정 수준을 정의하고 제공하기 위해, 서비스 제공자와 사용자는 서로 서비스 수준 협약(Service Level Agreements, SLA)을 맺는다. 가용성을 기준으로 예를들어 본다면 1년간 99%의 업타임을 제공해야한다. 다음과 같은 세부적인 시간을 계산해 낼 수 있다.

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

위의 가용성 뿐만아니라 다양한 지표들이 SLA에 포함될 수있다. 그리고 고객과의 약속이라는 것은 "어느 정도의 서비스를 제공해야 제대로 제공했다고 말할 수 있는 것인지"정확하게 명시하지 않으면 안됩니다. SLI는 이런 서비스 수준을 판단할 수 있는 몇가지를 정량적으로 측정한 값이다. 예를들어 다음과 같은 것들이 있다.

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

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

어떤 SLI를 척도로 서비스 수준을 얼만큼 평가할지 SLA를 통해 정하고, 구체적인 목표를 SLO에서 정한다. 예를들면 다음과 같다.

service SLO Type Objects
Get: Cozserver 가용성 99.95% successful in previous 28d
Get: Cozserver 응답시간 99% of requests < 10ms in previous 28d

SRE(Site Reliability Engineer)란?

  • 소프트웨어 엔지니어로 SLA를 성공적으로 달성하기 위해 안정적으로 배포 자동화를 구성하고, 서비스를 모니터링하여 문제가 발생했을때 조취를 취하는 사람이다.
  • 제공하는 서비스가 SLA 수준미달이라면, 서비스 안정화에 SLA 수준이상이라면, 코드개발에 뛰어들기도 한다.
  • 서비스에 버그를 발견하여 사전에 해결했다면, 무엇이 원인이었는지 철저히 점검하여 팀원들과 공유하고 누굴 탓하기보다는 잘못된 점을 함께 다시 반복하지 않도록 한다. 기술회고와 비슷하다.
  • DevOps엔지니어와 많이 비교되는데, SRE는 보다 서비스 안정화에 중점을 둔 반면 DevOps는 자동화 파이프라인 및 빠른 Delivery에 중점을 두고 있다.