로그인 / 등록 Account

DevOps

SRE(사이트 신뢰성 엔지니어링)란?

Jump to section

사이트 신뢰성 엔지니어링(SRE)은 IT 운영에 대한 소프트웨어 엔지니어링 접근 방식입니다. SRE 팀은 소프트웨어를 툴로 활용하여 시스템을 관리하고, 문제를 해결하고, 운영 태스크를 자동화합니다.

SRE 팀은 기존에 운영 팀이 수동으로 하는 경우가 많았던 태스크를 받아 엔지니어 또는 운영 팀에 넘기고, 엔지니어 또는 운영 팀은 소프트웨어 및 자동화를 사용해 문제를 해결하고 프로덕션 시스템을 관리합니다. 

SRE는 확장 가능하고 신뢰성이 높은 소프트웨어 시스템을 생성할 때 유용한 방법입니다. 코드를 통해 대규모 시스템을 관리할 수 있으므로 수천 대에서 수십만 대에 이르는 머신을 관리하는 시스템 관리자에게 더 큰 확장성과 지속가능성을 제공합니다. 

사이트 신뢰성 엔지니어링은 Google 엔지니어링 팀의 Ben Treynor Sloss가 창안한 개념입니다. 

SRE를 활용하는 팀은 새 기능을 적시에 출시하고 사용자가 이 기능을 안정적으로 사용하도록 할 수 있습니다.

표준화 및 자동화는 SRE 모델에서 중요한 2가지 구성 요소입니다. 사이트 신뢰성 엔지니어는 운영 태스크를 개선하고 자동화할 방법을 끊임없이 모색해야 합니다.

이를 통해 SRE는 현재 시스템의 신뢰성을 향상하고 그 신뢰성이 갈수록 더 높아지도록 지원합니다. 

SRE는 전통적인 IT 운영 방식을 클라우드 네이티브 방식으로 전환하는 팀에 유용합니다.

사이트 신뢰성 엔지니어의 역할

사이트 신뢰성 엔지니어는 부가적인 운영 경험이 있는 소프트웨어 개발자, 소프트웨어 개발 기술을 갖춘 시스템 관리자 또는 IT 운영자와 같은 경력이 요구되는 독특한 역할입니다. 

SRE 팀은 코드의 배포, 설정, 모니터링 방식뿐만 아니라 프로덕션 환경에서 서비스 가용성, 대기 시간, 변경 관리, 비상 대응 및 용량 관리를 담당합니다.

팀에서 사이트 신뢰성 엔지니어링을 활용하면 새로 출시할 기능과, 서비스 수준 계약(SLA)을 사용하여 서비스 수준 지표(SLI) 및 서비스 수준 목표(SLO)를 통해 시스템의 신뢰성 요구 사항을 정의해야 할 시점을 결정할 수 있습니다. 

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

그런 다음 허용 가능한 것으로 합의된 다운 타임에 따라 시스템의 신뢰성 요구 사항을 위한 SLO를 결정합니다. 이 다운 타임 수준을 오차 할당(오류 및 중단에 허용되는 최대 임계값)이라고 합니다. 

SRE에서는 100% 신뢰성을 기대하지 않으며 장애에 대비해 계획을 마련합니다. 

개발 팀은 새 기능을 출시할 때 오차 할당을 '사용'할 수 있습니다. SLO 및 오차 할당을 사용하면 개발 팀이 가용 오차 할당에 근거하여 제품 또는 서비스 출시 가능 여부를 결정할 수 있습니다.

서비스가 오차 할당 범위 내에서 실행 중이라면 개발 팀은 원할 때 언제든지 출시할 수 있습니다. 하지만 현재 시스템에 오류가 너무 많거나 허용되는 오차 할당보다 더 오랫동안 중단되는 경우에는 오류가 오차 할당 범위 이내로 줄어들 때까지 신규 출시가 이루어질 수 없습니다.   

개발 팀은 자동화된 오퍼레이션 테스트를 수행하여 신뢰성을 증명합니다. 

사이트 신뢰성 엔지니어는 운영 태스크 시간과 프로젝트 작업 시간을 구분합니다. Google의 SRE 모범 사례에 따르면 사이트 신뢰성 엔지니어는 자기 시간의 최대 50%만 운영에 사용할 수 있으며 모니터링을 통해 이 시간을 초과하지 않도록 해야 합니다. 

나머지 시간은 새 기능 생성, 시스템 스케일 조정, 자동화 구현 등의 개발 태스크에 사용해야 합니다.

이 시간을 초과하는 운영 작업 및 성능이 저하된 서비스는 사이트 신뢰성 엔지니어가 애플리케이션 또는 서비스 운영에 너무 많은 시간을 할애하지 않도록 개발 팀으로 다시 리디렉션된 후 실행될 수 있습니다. 

자동화는 사이트 신뢰성 엔지니어의 역할에서 중요한 부분을 차지합니다. 사이트 신뢰성 엔지니어는 자신이 문제를 반복적으로 처리하고 있다면 이를 자동화하려 할 것입니다. 이렇게 하면 엔지니어의 워크로드에서 운영 작업의 비중을 절반 수준으로 유지할 수 있습니다. 

운영 및 개발 작업 간의 균형을 유지하는 것이 SRE의 핵심입니다. 

DevOps와 SRE 비교

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

DevOps와 마찬가지로 SRE는 팀 문화 및 관계에 관한 것입니다. SRE와 DevOps 모두 개발 팀과 운영 팀 사이의 간극을 메우고 서비스를 더 빠르게 제공하는 데 도움이 됩니다. 

DevOps 및 SRE 모두 더 빠른 애플리케이션 개발 라이프사이클, 서비스 품질 및 신뢰성 개선, 개발되는 애플리케이션당 소요되는 IT 시간 단축 등의 이점을 달성할 수 있습니다.

SRE는 커뮤니케이션 및 워크플로우 문제를 해결할 때 운영 관련 경험이 있는 개발 팀의 사이트 신뢰성 엔지니어에 의존한다는 점이 다릅니다.

사이트 신뢰성 엔지니어 역할 자체에는 서로 중첩되는 책임이 요구되므로 개발 팀과 운영 팀의 기술이 결합됩니다. 

DevOps 팀에서 개발자의 운영 태스크가 과도하고 더 전문화된 운영 기술을 보유한 사람이 필요한 경우 SRE가 도움이 될 수 있습니다. 

코드 및 새 기능의 측면에서 DevOps는 개발 파이프라인을 효율적으로 거치는 데 중점을 두는 반면, SRE는 사이트 신뢰성과 새로운 기능 개발 간 균형을 맞추는 데 중점을 둡니다. 

컨테이너 기술, 쿠버네티스 및 마이크로서비스에 기반을 둔 현대적인 애플리케이션 플랫폼은 DevOps 사례에 매우 중요하며, 안전하고 혁신적인 소프트웨어 서비스를 제공하는 데 도움이 됩니다.

 

SRE 지원 기술

SRE는 애플리케이션의 라이프사이클 전반에 걸친 일상적 운영 태스크 자동화 및 표준화를 사용합니다. Linux® 컨테이너는 클라우드 네이티브 개발 스타일에 필요한 기반 기술을 팀에 제공합니다. 컨테이너는 개발, 배포, 통합, 자동화를 위한 통합 환경을 지원합니다.

또한 쿠버네티스는 Linux 컨테이너 운영을 자동화할 수 있는 현대적인 방법입니다. 쿠버네티스를 이용하면 퍼블릭, 프라이빗 또는 하이브리드 클라우드 전반에서 Linux 컨테이너를 실행 중인 클러스터를 손쉽게 효율적으로 관리할 수 있습니다.

적절한 플랫폼을 사용하면, 기업은 구현된 문화 및 프로세스의 변화가 주는 장점을 잘 활용할 수 있습니다. Red Hat® OpenShift®는 SRE 이니셔티브를 지원하기 위한 엔터프라이즈 레디 쿠버네티스 플랫폼입니다.

SRE에 필요한 툴

Red Hat Ansible Automation

간편한 에이전트리스(agentless) IT 자동화 기술로서 현재의 프로세스를 개선하고, 비즈니스 운영을 최적화하기 위해 애플리케이션을 마이그레이션하며, 조직 전체에 DevOps 사례를 구현할 수 있도록 단일 프로그래밍 언어를 제공합니다.

Red Hat OpenShift

자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드 및 멀티클라우드 배포를 관리하는 엔터프라이즈 레디 쿠버네티스 컨테이너 플랫폼입니다. 

DevOps로 수행하는 작업들을 살펴보세요