q1: SRE(Site Reliability Engineering)

a1:

**SRE(Site Reliability Engineering)**는 구글에서 시작된 개념으로, 소프트웨어 엔지니어링 원칙을 기반으로 시스템 운영과 인프라를 관리하는 방법론입니다.

쉽게 말하면, 운영을 자동화하고 시스템을 안정적으로 유지하기 위해 개발적인 접근을 사용하는 엔지니어링입니다.



1. SRE의 정의
Site Reliability Engineering = 시스템 신뢰성 엔지니어링
소프트웨어 개발 기술을 활용해서 운영(Operations) 업무를 자동화하고, 시스템의 안정성, 확장성, 성능, 가용성 등을 보장하는 역할
• SRE는 전통적인 시스템 관리자(SysAdmin)보다 개발자스러운 운영 담당자라고 볼 수 있습니다.



2. 주요 역할

서비스 가용성 확보 : 다운타임 최소화, 자동 복구 시스템 구축
모니터링과 알림 : Prometheus, SigNoz 등으로 상태 감시
자동화 도구 개발 : 배포, 롤백, 확장 등을 자동화하는 스크립트 및 시스템 개발
성능 개선 : 병목 지점 파악 및 튜닝
장애 대응 및 근본 원인 분석 (Postmortem) : 장애 발생 시 재발 방지책 마련
SLI/SLO/SLA 관리 : 서비스 품질을 수치로 측정하고 목표를 관리



3. SRE 관련 핵심 개념

SLA (Service Level Agreement)
- 외부 고객과 약속한 서비스 수준 (예: 99.9% 가용성)
SLO (Service Level Objective)
- 내부 목표 수준 (예: 응답 시간 200ms 이하 유지)
SLI (Service Level Indicator)
- 실제 측정 수치 (예: 평균 응답 시간, 에러율)



4. SRE와 DevOps의 관계
DevOps: 개발(Dev)과 운영(Ops) 사이의 협업을 강조하는 문화
SRE: DevOps의 정신을 구체적인 기술과 원칙으로 구현한 엔지니어링 실천법

즉, DevOps가 철학과 문화라면, SRE는 그것을 실제로 운영하는 방법론입니다.



5. 예시 상황

A. 장애 자동 복구
웹서비스가 다운되면, SRE가 만든 헬스체크 + 자동 재시작 스크립트가 문제를 감지하고 서버를 재기동함.

B. 배포 자동화
SRE가 개발한 CI/CD 파이프라인을 통해 개발자가 git push만 하면 자동으로 테스트배포가 진행됨.



6. 주요 도구
모니터링: Prometheus, Grafana, SigNoz
트레이싱: Jaeger, Zipkin, OpenTelemetry
로깅: ELK Stack, Loki
자동화: Ansible, Terraform, Jenkins, ArgoCD



7. 요약

무엇인가요?
- 운영 업무를 자동화하는 소프트웨어 엔지니어링 방식
왜 필요한가요?
- 시스템의 안정성과 확장성, 신속한 대응을 위해
누가 하나요?
- SRE 팀, 백엔드 개발자, 인프라 엔지니어 등
어떤 기술 쓰나요?
- 모니터링, 자동화, 클라우드, CI/CD 도구

반응형

+ Recent posts