Site Reliability Engineering

Site Reliability Engineering (SRE) is a discipline that applies software engineering principles to infrastructure and operations problems, aiming to create ultr...

Site Reliability Engineering (SRE)는 소프트웨어 엔지니어링의 측면을 통합하여 인프라 및 운영 문제에 적용하는 학문입니다. SRE의 주요 목표는 초확장 가능하고 매우 안정적인 소프트웨어 시스템을 만드는 것입니다. SRE는 일반적으로 프로덕션 시스템의 안정성, 성능 및 효율성에 중점을 둔 소프트웨어 엔지니어입니다. 주요 원칙에는 시스템 안정성을 측정하기 위한 Service Level Objectives (SLO) 및 Service Level Indicators (SLI) 정의, 안정성에 대한 새로운 기능 개발 속도를 균형 맞추기 위한 error budget 사용, 그리고 toil(수동적이고 반복적인 작업)을 줄이기 위한 운영 작업 자동화가 포함됩니다. SRE 팀은 종종 설계 및 개발부터 배포 및 운영에 이르기까지 프로덕션 시스템의 전체 수명 주기를 관리합니다. 이들은 데이터 기반 의사 결정을 강조하며, 메트릭 및 모니터링을 사용하여 시스템 동작을 이해하고 잠재적인 문제를 사전에 식별합니다. 비난보다는 학습과 개선에 초점을 맞춘 post-mortem을 포함한 incident management도 핵심 구성 요소입니다. SRE는 운영을 소프트웨어 문제로 취급하여 엔지니어링의 엄격함을 적용하여 시스템이 안정성 목표를 충족하도록 보장하는 것을 목표로 합니다.

        graph LR
  Center["Site Reliability Engineering"]:::main
  Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
  click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
  Rel_site_reliability_engineering_sre["site-reliability-engineering-sre"]:::related -.-> Center
  click Rel_site_reliability_engineering_sre "/terms/site-reliability-engineering-sre"
  Rel_agile_methodology["agile-methodology"]:::related -.-> Center
  click Rel_agile_methodology "/terms/agile-methodology"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

매우 빠르고 매우 안전한 경주용 자동차를 만든다고 상상해 보세요. SRE는 자동차가 항상 완벽하게 작동하도록 하고, 충돌을 일으키기 전에 작은 문제를 해결하며, 더 빠르고 안정적으로 만드는 방법을 찾는 팀과 같습니다.

🤓 Expert Deep Dive

SRE operationalizes the concept of treating operations as a software problem, moving beyond traditional IT operations by embedding software engineering practices. The core tenet is the use of error budgets, derived from SLIs and SLOs. An error budget represents the acceptable level of unreliability for a service over a given period. If the error budget is depleted (e.g., due to excessive downtime or latency), the pace of new feature releases must slow down, and focus shifts to reliability improvements. This provides a quantifiable framework for balancing innovation velocity with operational stability. SREs often employ techniques like canary releases, blue-green deployments, and chaos engineering to test system resilience under various conditions. The emphasis on automation extends to infrastructure provisioning (Infrastructure as Code), deployment pipelines, and incident response, aiming to minimize manual intervention and human error. The cultural aspect is also critical, fostering collaboration between development and operations teams.

📚 출처