나의 잡다한 노트 및 메모
SRE ( Site Reliability Engineering ) 본문
소프트웨어 엔지니어링 원칙을 IT 운영에 적용하여 서비스의 안정성과 성능을 유지 및 개선하는 역할을 한다.
주요 목표는 자동화와 효율성을 통해 운영 작업을 최소화하는 것이다.
서비스 가용성, 성능, 모니터링, 대응을 주로 관리하며, 개발자와 운영자 간의 효율적 협업을 장려한다.
SRE에서 가장 중요한 점 중 하나는 모든 것을 데이터화하고, 의사결정을 데이터를 기반으로 한다.
Metric & Monitoring
- 모니터링 지표 정의
- 대시보드 형태로 시각화
- 지표 분석을 통한 인사이트 찾기
Capacity Planning
- 운영에 필요한 충분한 하드웨어 리소스를 확보하는 작업
- 시스템의 자원은 시스템이 필요한 용량, 확보된 리소스 용량, 그 위에서 동작하는 소프트웨어의 최적화 이 3가지에 대한 함수 관계. (소프트웨어에 대한 성능 튜닝 또한 중요하다)
Change Management
- 소프트웨어 배포/업데이트, 설정 변경, 인프라 구조 변경
- 사람을 프로세스에서 제외하고 자동화하는 방향으로 작업을 진행
- 점진적인 배포와 변경 ( 카나리 배포, 롤링 업데이트 )
- 배포시 장애가 발생했을 경우 빠르고 정확하게 해당 문제를 찾아낼 수 있도록 할 것
- 롤백
Emergency Response
- 시스템 안정성 → MTTF( Mean Time To Failure )와 MTTR ( Mean Time To Recover )
- MTTR을 줄이는 게 목표
- 장애 복구 단계에서 사람이 컨트롤을 하되 가급적이면 각 단계는 자동화되는 게 좋고, 사람이 해야 하는 일은 메뉴얼화 돼 있는 것이 좋다. 이것을 Playbook 이라고 하는데, 없는 경우에 비해 3배이상 MTTR이 낮다는 게 통계이다.
Culture
- Error budget
- 데이터에 기반한 합리적인 의사결정. 모든 의사결정은 데이터 기반으로 돼야 한다.
- 서로 비난하지 않고, 장애 원인을 분석하고 예방하는 문화
- 책임을 나눠가지는 문화
'DevOps > SRE' 카테고리의 다른 글
SLI와 SLO (0) | 2025.04.24 |
---|---|
모니터링을 위해 수집되야 할 DB 주요 지표와 의미 (0) | 2025.03.26 |
모니터링 방법론 (1) | 2024.09.08 |