본문 바로가기
DevOps

#13 Site Reliability Engineering

by Anonymouszero 2025. 6. 11.
반응형
더보기

DevOps
 도구 : Infra 구성 관리 도구
 개발 : Git, Gitlab
 CI/CD : Gitlab runner, Github Action

Flicker로부터 DevOps가 시작
 > Google에서도 DevOps와 비슷한 내용이 존재 했음 : 운영에 조금더 초점이 맞춰져 있던 형태
 > Site Reliability Engineering

사이트 신뢰성 엔지니어링(Site Reliability Engineering / SRE)
 - DevOps를 운용하는 방법 중 하나
 - Google의 운영으로 축적된 노하우
 - DevOps와 달리 운영에 초점을 맞춘 개념

사이트 신뢰성(Site Reliability)
 - 어떤 것에서 저하가 발생 = 비즈니스 실현의 저해 확률을 높이는 것
  : ex) 시스템 가용성(Availability) > 높으면 언제든 사용 가능 / 낮으면 실행해도 동작 안하는 경우가 발생
         : 하락 > 사이트 신뢰성 저하 > 비즈니스 실현의 저해 확률 증가(실제 저해로 이어지는 것은 미지수)
 - 당장 표면화 되지 않은 시스템 문제에 대해서 관심
  : 자동화/간소화 > 작업 품질 향상 활동, 중장기에 걸친 용량

DevOps와 SRE의 공통점
 DevOps)
  - 안정적인 가동 및 최적화가 목표가 아님(당연한 것) => 비즈니스 실현이 목적
 SRE)
  - 사이트 신뢰성을 확보(저해 요소를 없앰) => 비즈니스 실현이 목적

SRE 팀의 미션
 - 가용성, 지연, 성능, 효율화, 변화 관리, 모니터링, 긴급 대응, 용량 관리에 책임을 짐
  : 전통적인 운용 팀이 담당하고 있는 영역과 크게 겹침
  : 다양한 도구와 방법의 확실한 사용 => 사이트 신뢰성 기여

SRE 접근법
 - engineering : 어떤 분야에 관련된 기술의 집합
 - SR + E : 사이트 안전성을 위한 테크닉(기술)
 - 종류
  > 시스템 튜닝
   : 가용성(Availability), 지연(Latency)/성능(Performance)
  > 모니터링
   : 서비스, 용량(Capacity)
  > 작업 품질
   : 자동화/간소화, 변경 관리
  ----------------------------<< 사전 대책
  > 장애 대응 : 대응 대책

SRE - 시스템 튜닝 : 가장 알기 쉬운 사이트 신뢰성 향상 방법
 : 시스템 다운 혹은 사용이 어려워지는 상태
  > 비즈니스에 악영향, 비즈니스 가치 저하
 : 문제가 있는 곳 분석 >> 모니터링 필요
  > 하드웨어 성능에 근본적인 문제, 애플리케이션의 좋지 않은 구현

 : SRE 팀의 역할 >> 인프라에서 애플리케이션에 이르기까지 다양한 전문성이 요구되는 고급 작업
  > 팀 전체로써 시스템에 사용되는 기술 요소를 많은 부분에서 커버할 수 있는 것이 바람직
  > 전통적인 운영 팀과의 차이점 : DevOps와 같이 개발팀과 운용팀이 잘 연계 되는 것

SRE - 모니터링 : 튜닝을 위해 선행되어야하는 작업
 : SRE 실천에 필요한 도구
  > 사이트 신뢰성은 여러가지 요인에 의해 저해 : 서비스와  Capacity 관점으로 분석
 : 문제의 조기 발견 > 기록 확인 > 원인 분석 > 튜닝

 : 서비스 모니터링 > 시스템에 대한 모니터링
  - 웹 서비스 > Access Test > 정상 Code / Error Log 
   : Resource Monitoring > CPU Load / Memory Usage / IOPS의 이상 탐지
  - 문제 발견 시 즉시 대책 강구 : CPU 부하 증가 > 새로운 서버 추가

 : Capacity 모니터링 > 미래의 시스템에 대한 모니터링
  - 서비스 모니터링 : CPU 부하측정
  - Capacity 모니터링 : 변화 추이에 주목
   : 위험 영역 임계에 도달하는 시점 예측 > 사전 대응

SRE - 작업품질
 : 사이트 신뢰성을 향상시키는 작업(대응, 튜닝, 개선, 진단)
  > 해당 작업이 사이트 신뢰성을 저하시키지 않도록 대책 강구
 : DevOps의 작업의 자동화/간소화를 통한 변경 관리와 동일함

SRE - 장애 대응
 : 장애를 완전히 배제할 수 없음
  > 물리적 장애 ~ 논리적 장애(특정 상황에서만 발생하는 장애)
  > 인프라 ~ 애플리케이션에 이르는 다양한 장애
 : 어떤 문제든 사이트 신뢰성을 저해하는 것에 대해 SRE 팀은 총력을 기울여 사태를 해결하기 위해 노력

 : 장애 대응의 중요한 것
  > "단 시간"에 "적은 인원"으로 장애 대응을 하는 것
  > 수 많은 장애에 대응 가능한 인력을 전부 배치할 수는 없음
     특히, 운영 개선을 목적으로 하고 있기에 인력을 많이 배치할 수 있는 조직은 아님
  > 장애가 길게 이어진다는 것은 사이트 신뢰성이 떨어진 다는 것을 의미 >> 장애는 짧아야 함

SRE의 목적
 : "Engineering"하는 것
 : SRE 팀의 목적 > 사이트 신뢰성에 기여하는 것 = 비즈니스 가치 향상으로 이어짐
 : DevOps의 목적과 일치
   - 전통적인 운용팀을 DevOps 팀으로 변화시킬 때, SRE의 구체적 기술을 넣는 것이 매우 효과적임

반응형

'DevOps' 카테고리의 다른 글

#15 Docker  (1) 2025.06.12
#14 ChatOps  (1) 2025.06.11
#12 DevOps와 애자일 개발  (3) 2025.06.11
#11 인프라 아키텍쳐 변경  (1) 2025.06.11
#10 CI/CD  (1) 2025.06.11