분류 기타

SRE (site reliability engineering) 란 무엇입니까?

컨텐츠 정보

  • 조회 313 (작성일 )

본문

사이트 안정성 엔지니어링 (SRE)은 IT 운영에 대한 소프트웨어 엔지니어링 접근 방식입니다. SRE 팀은 소프트웨어를 도구로 사용하여 시스템을 관리하고 문제를 해결하며 운영 작업을 자동화합니다.


SRE는 이전에 운영 팀에서 수행 한 작업을 수동으로 수행하고 대신 소프트웨어 및 자동화를 사용하여 문제를 해결하고 생산 시스템을 관리하는 엔지니어 또는 운영 팀에게 제공합니다.


SRE는 확장 가능하고 신뢰성이 높은 소프트웨어 시스템을 만들 때 유용한 방법입니다. 수천 또는 수십만 대의 시스템을 관리하는 시스템 관리자에게 보다 확장 가능하고 지속 가능한 코드를 통해 대규모 시스템을 관리하는 데 도움이 됩니다.


사이트 안정성 엔지니어링의 개념은 Google 엔지니어링 팀에서 나 왔으며 Ben Treynor Sloss가 인정했습니다.

SRE는 팀이 새로운 기능을 출시하는 것과 사용자가 신뢰할 수 있는지 확인하는 것 사이의 균형을 찾는 데 도움이 됩니다.


표준화와 자동화는 SRE 모델의 두 가지 중요한 구성 요소입니다. 사이트 안정성 엔지니어는 항상 운영 작업을 개선하고 자동화 할 방법을 모색해야 합니다.


이러한 방식으로 SRE는 오늘날 시스템의 안정성을 개선하는 동시에 시간이 지남에 따라 시스템이 증가함에 따라 개선됩니다.


SRE는 기존 접근 방식에서 IT 운영 방식에서 클라우드 네이티브 접근 방식으로 전환하는 팀을 지원합니다.


사이트 안정성 엔지니어는 무엇을 합니까? 


사이트 안정성 엔지니어는 추가 운영 경험이 있는 소프트웨어 개발자 또는 시스템 관리자 또는 소프트웨어 개발 기술이 있는 IT 운영 역할의 배경 지식이 필요한 고유 한 역할입니다.


SRE 팀은 코드 배포, 구성 및 모니터링 방법은 물론 프로덕션 서비스의 가용성, 대기 시간, 변경 관리, 비상 대응 및 용량 관리를 담당합니다.


사이트 안정성 엔지니어링은 SLA (서비스 수준 표시기) 및 SLO (서비스 수준 목표)를 통해 시스템에 필요한 안정성을 정의하기 위해 SLA (서비스 수준 계약)를 사용하여 팀에서 새로운 기능을 언제 시작할 수 있는지 결정하는 데 도움이 됩니다.


SLI는 제공된 서비스 수준의 특정 측면에 대해 정의 된 측정 값입니다. 주요 SLI에는 요청 대기 시간, 가용성, 오류율 및 시스템 처리량이 포함됩니다. SLO는 SLI를 기반으로 지정된 서비스 수준의 목표 값 또는 범위를 기반으로 합니다.


그런 다음 필요한 시스템 안정성에 대한 SLO는 허용 가능한 것으로 합의 된 다운 타임을 기반으로 결정됩니다. 이 다운 타임 수준을 오류 예산, 오류 및 중단에 대해 허용되는 최대 임계 값이라고 합니다.


SRE에서는 100 % 신뢰성이 기대되지 않습니다. 실패는 계획되고 수용됩니다.


개발 팀은 새로운 기능을 출시 할 때 오류 예산을 "지출"할 수 있습니다. SLO 및 오류 예산을 사용하여 개발 팀은 사용 가능한 오류 예산을 기반으로 제품 또는 서비스를 시작할 수 있는지 여부를 결정할 수 있습니다.


서비스가 오류 예산 내에서 실행되는 경우 개발팀은 원할 때마다 시작할 수 있지만, 현재 시스템에 오류가 너무 많거나 오류 예산이 허용하는 것보다 오래 중단되면 오류가 발생할 때까지 새로 출시 할 수 없습니다.


개발 팀은 안정성을 입증하기 위해 자동화 된 운영 테스트를 수행합니다.


사이트 안정성 엔지니어는 운영 작업과 프로젝트 작업 간에 시간을 나눕니다. Google의 SRE 권장 사항에 따르면 사이트 안정성 엔지니어는 작업에 최대 50 %의 시간 만 소비 할 수 있으므로 작업을 계속하지 않도록 모니터링 해야 합니다.


나머지 시간은 새로운 기능 생성, 시스템 확장 및 자동화 구현과 같은 개발 작업에 소비되어야 합니다.


과도한 운영 작업과 저조한 서비스는 사이트 안정성 엔지니어가 애플리케이션 또는 서비스 운영에 너무 많은 시간을 소비하는 대신 개발 팀으로 다시 리디렉션 되어 실행할 수 있습니다.


자동화는 사이트 안정성 엔지니어의 역할에서 중요한 부분입니다. 문제를 반복적으로 처리하는 경우 솔루션을 자동화합니다. 이는 또한 작업 작업이 작업 부하의 절반으로 유지되도록 하는 데 도움이 됩니다.


운영과 개발 작업 간의 균형을 유지하는 것은 SRE의 핵심 구성 요소입니다.


DevOps vs. SRE 


DevOps는 신속한 고품질 서비스 제공을 통해 향상된 비즈니스 가치와 대응력을 제공하기 위한 문화, 자동화 및 플랫폼 설계에 대한 접근 방식입니다. SRE는 DevOps의 구현으로 간주 될 수 있습니다.


DevOps와 마찬가지로 SRE는 팀 문화와 관계에 관한 것입니다. SRE와 DevOps는 모두 개발 팀과 운영 팀 간의 격차를 해소하여 서비스를 더 빠르게 제공합니다.


더 빠른 애플리케이션 개발 수명주기, 개선 된 서비스 품질 및 안정성, 개발 된 애플리케이션 당 IT 시간 단축은 DevOps 및 SRE 관행 모두에서 얻을 수 있는 이점입니다.


SRE는 통신 및 워크 플로 문제를 제거하기 위한 운영 배경이 있는 개발 팀 내의 사이트 안정성 엔지니어에 의존하기 때문에 다릅니다.


사이트 안정성 엔지니어 역할 자체는 책임의 중복을 요구하여 개발 팀과 운영 팀의 기술을 결합합니다.


SRE는 개발자가 운영 작업에 압도되고 더 전문화 된 운영 기술을 가진 사람이 필요한 DevOps 팀을 도울 수 있습니다.


코드 및 새로운 기능 측면에서 DevOps는 개발 파이프 라인을 효율적으로 이동하는 데 초점을 맞추고 SRE는 사이트 안정성과 새로운 기능을 만드는 데 초점을 맞추고 있습니다.


컨테이너 기술, Kubernetes 및 마이크로 서비스를 기반으로 하는 최신 애플리케이션 플랫폼은 DevOps 관행에 매우 중요하며 안전하고 혁신적인 소프트웨어 서비스를 제공하는 데 도움이 됩니다.


Technology to support SRE 


SRE는 앱의 수명주기 전반에 걸쳐 일상적인 운영 작업 및 표준화 자동화에 의존합니다. Linux® 컨테이너는 팀에 클라우드 네이티브 개발 스타일에 필요한 기본 기술을 제공합니다. 컨테이너는 개발, 제공, 통합 및 자동화를 위한 통합 환경을 지원합니다.


그리고 Kubernetes는 Linux 컨테이너 운영을 자동화하는 현대적인 방법입니다. Kubernetes를 사용하면 퍼블릭, 프라이빗 또는 하이브리드 클라우드에서 Linux 컨테이너를 실행하는 클러스터를 쉽고 효율적으로 관리 할 수 ​​있습니다.


올바른 플랫폼을 사용하면 구현 한 문화 및 프로세스 변경을 최대한 활용할 수 있습니다. Red Hat® OpenShift®는 SRE 이니셔티브를 지원하는 엔터프라이즈 급 Kubernetes 플랫폼입니다.



SRE