topics 사이트 신뢰성 엔지니어링(SRE)이란? 사이트 안정성 엔지니어링(SRE)이란 무엇인가요?
IBM CSR 솔루션 살펴보기 AI 주제 업데이트 구독
기어, 로봇 팔, 휴대폰 픽토그램이 콜라주된 일러스트
SRE란 무엇인가요?

사이트 안정성 엔지니어링(SRE)은 프로덕션 시스템 관리, 변경 관리, 인시던트 대응, 심지어 비상 대응까지 시스템 관리자(sysadmin)가 수동으로 수행해야 했던 IT 운영 작업을 소프트웨어 엔지니어링을 통해 자동화합니다.

SRE를 뒷받침하는 원칙은 소프트웨어 코드를 사용하여 대규모 소프트웨어 시스템의 감독을 자동화하는 것이 수동 개입보다 더 확장 가능하고 지속 가능한 전략이라는 점입니다. 특히 시스템을 클라우드로 확장하거나 마이그레이션할 때 이 전략은 더욱 주효합니다.

또한 SRE는 팀 간에 발생하는 자연스러운 마찰을 상당 부분 줄이거나 제거할 수 있습니다. 개발 팀은 신규 또는 업데이트된 소프트웨어를 프로덕션에 지속적으로 출시하려 할 것입니다. 반면 운영 팀은 가동 중단이나 기타 운영 문제가 발생하지 않는다는 확신 없이는 어떤 종류의 업데이트나 신규 소프트웨어도 출시하지 않으려 할 것입니다. 결과적으로 SRE는 DevOps에 반드시 필요하지 않아도 DevOps 원칙과 밀접하게 조율되며 DevOps 성공에 중요한 역할을 할 수 있습니다.

SRE의 개념은 Google의 엔지니어링 부사장인 Ben Treynor Sloss가 창안했으며 "SRE는 소프트웨어 엔지니어에게 운영 팀을 설계하도록 요청할 때 발생"한다는 그의 설명이 잘 알려져 있습니다.

IBM 로보틱 프로세스 자동화(RPA)의 총경제효과(TEI)™

IBM Robotic Process Automation(RPA)의 비용 및 이점 분석을 참조하세요.

관련 내용

IBM AI 기반 자동화 솔루션에 대한 분석 보고서 읽기

사이트 안정성 엔지니어링이란 무엇인가요?

사이트 안정성 엔지니어링(SRE)은 프로덕션 시스템 관리, 변경 관리, 인시던트 대응, 심지어 비상 대응까지 시스템 관리자(sysadmin)가 수동으로 수행해야 했던 IT 운영 작업을 소프트웨어 엔지니어링을 통해 자동화합니다. 

SRE를 뒷받침하는 원칙은 소프트웨어 코드를 사용하여 대규모 소프트웨어 시스템의 감독을 자동화하는 것이 수동 개입보다 더 확장 가능하고 지속 가능한 전략이라는 점입니다. 특히 시스템을 클라우드로 확장하거나 마이그레이션할 때 이 전략은 더욱 주효합니다.

또한 SRE는 신규 소프트웨어나 업데이트된 소프트웨어를 프로덕션에 지속적으로 출시하려는 개발 팀과 가동 중단이나 기타 운영 문제가 발생하지 않는다는 확신 없이는 어떤 종류의 업데이트나 신규 소프트웨어도 출시하지 않으려는 운영 팀 간의 자연스러운 마찰을 상당 부분 줄이거나 제거할 수 있습니다. 결과적으로 SRE는 DevOps에 반드시 필요하지 않아도 DevOps 원칙과 밀접하게 조율되며 DevOps 성공에 중요한 역할을 할 수 있습니다.

SRE의 개념은 Google의 엔지니어링 부사장인 Ben Treynor Sloss가 창안했으며 "SRE는 소프트웨어 엔지니어에게 운영 팀을 설계하도록 요청할 때 발생"한다는 그의 설명이 잘 알려져 있습니다.

사이트 안정성 엔지니어는 어떤 역할을 하나요?

사이트 안정성 엔지니어는 IT 운영 경험이 있는 소프트웨어 개발자로, 코딩 방법을 알고 대규모 IT 환경에서 '운영 상태를 유지'하는 방법을 이해하는 사람입니다. 

사이트 안정성 엔지니어는 로그 분석, 성능 조정, 패치 적용, 프로덕션 환경 테스트, 인시던트 대응, 사후 분석 수행 같은 수동 IT 운영 및 시스템 관리 작업을 수행하는 데 절반의 시간을 소비합니다. 나머지 시간에는 이러한 작업을 자동화하는 코드를 개발합니다. 이들의 목표는 수동 작업에 사용하는 시간을 줄이고 자동화 코드 개발에 더 많은 시간을 투자하는 것입니다.

한 마디로, SRE 팀은 개발 팀이 가능한 한 빨리 신규 소프트웨어 또는 새로운 기능을 프로덕션에 도입할 수 있도록 개발 팀과 운영 팀 간의 다리 역할을 합니다. 또한 이들은 조직이 고객과 체결한 서비스 수준 계약(SLA)에 따라 합의된 허용 가능 수준으로 IT 운영 성능 및 오류 위험을 보장합니다. SRE 팀은 경험과 풍부한 운영 데이터를 바탕으로 개발 및 운영 팀이 다음 항목을 수립하도록 지원합니다.

  • 서비스 수준 지표(SLI): 시스템이 제공하는 서비스 수준 측정치로서 가용성(가동 시간) 또는 지연 시간과 같은 메트릭이 해당됩니다.

  • 서비스 수준 목표(SLO): 서비스 수준 지표를 측정하기 위한 합의된 수단입니다.

  • 오류 예산: SLA의 계약 조건을 위반하지 않으면서 시스템 장애나 성능 저하를 허용할 수 있는 최대 시간입니다. 오류 예산은 단순한 메트릭을 넘어 사이트 안정성 엔지니어링 팀이 회사의 혁신 속도와 서비스 신뢰성을 자동으로 조율하는 데 사용하는 도구입니다. 
오류 예산은 어떻게 작동하나요?

오류 예산은 SRE 팀이 기업의 서비스 신뢰성과 소프트웨어 개발 및 혁신 속도를 자동으로 조율하는 데 사용하는 도구입니다. 

기업의 SLA가 연간 99.99%의 가동 시간(일반적인 가용성 목표)을 보장한다고 가정해 보겠습니다. 이 경우 월간 오류 예산, 즉 특정 월에 계약상 결과를 유발하지 않으면서 허용되는 총 가동 중단 시간은 약 4분 23초입니다.

이제 개발 팀에서 시스템에 몇 가지 새로운 기능이나 개선 사항을 도입하려 한다고 가정해 보겠습니다. 시스템이 오류 예산으로 운영되는 경우 개발 팀은 새 기능을 제공할 수 있습니다. 그렇지 않은 경우 개발 팀은 운영 팀과 협력하여 이러한 오류나 가동 중단을 허용 가능한 수준으로 낮추기 전까지는 새 기능을 제공할 수 없습니다.

이러한 점에서 오류 예산은 개발 팀과 운영 팀에 다음과 같은 이점을 제공합니다.

  • 서비스의 안정성과 성능을 개선합니다.

  • 새로운 기능이나 애플리케이션 배포에 관해 데이터 기반 결정을 내립니다.

  • 허용 가능한 한도 내에서 위험을 감수하여 혁신을 극대화합니다.
SRE와 DevOps

DevOps는 소프트웨어 제공 라이프사이클을 자동화하고 개발 팀과 운영 팀이 서로의 작업에 대해 더 많은 책임을 공유하며 더 많은 의견을 제공함으로써 보다 높은 품질의 애플리케이션을 더 빠르게 제공할 수 있는 현대적인 방법입니다. 

SRE와 마찬가지로 DevOps는 더 많은 애플리케이션 및 변경 사항을 더 빠르게 제공해야 하는 필요성과 프로덕션 환경의 '중단'을 방지해야 하는 필요성 사이에서 균형을 유지하여 보다 민첩하게 비즈니스를 운영할 수 있도록 지원합니다. DevOps는 허용 가능한 오류 위험을 설정하여 이러한 균형을 달성하는 것을 목표로 한다는 점도 SRE와 같습니다. 실제로 SRE와 DevOps는 매우 유사해서 일부 전문가는 두 가지를 동일하게 간주하지만, 대부분은 SRE 방식이 DevOps 원칙을 구현하는 탁월한 방법이라고 말합니다. 예:

DevOps 원칙: 조직의 사일로를 줄이고 도구 및 자동화를 활용합니다.

SRE 방식: 개발자가 사용하는 소프트웨어 개발 및 개선용 도구를 운영 자동화 및 개선에 동일하게 사용합니다.

DevOps 원칙: 실패를 정상적인 것으로 받아들이고 점진적인 변화를 구현합니다.

SRE 방식: 오류 예산을 사용하여 허용 가능한 수준 내에서 새로운 기능을 지속적으로 배포합니다.

DevOps 원칙: 모든 것을 측정합니다.

SRE 방식: SLA 메트릭을 기반으로 신규 소프트웨어 출시에 대한 결정을 내립니다.

 

기타 SRE 이점

사이트 안정성 엔지니어링은 DevOps의 성공적 구현 외에도 기업에서 다음과 같은 이점을 실현하는 데 도움이 됩니다.

  • 서비스 상황에 대한 가시성 향상. 조직의 모든 서비스에서 메트릭, 로그 및 추적을 관리하고 인시던트 발생 시 근본 원인을 파악하기 위한 컨텍스트를 제공합니다.

  • 가동 중단 비용 정량화. 개발 및 운영 팀은 SLA 위반 비용을 파악하고 경영진은 시스템 신뢰성이 프로덕션, 영업, 마케팅, 고객 서비스 및 기타 비즈니스 기능에 미치는 영향을 정량화할 수 있습니다.

  • 인시던트 대응 최적화. 효율적인 온콜 프로세스를 구축하고 경고 워크플로우를 간소화합니다.

  • 최신 네트워크 운영 센터 구축. IT 운영에 대한 심층적인 이해와 머신 러닝 및 자동화를 결합하여 문제 해결 담당자에게 직접 경고를 전송합니다.
SRE, 클라우드 및 클라우드 네이티브 개발

기존 IT 및 온프레미스 데이터 센터에서 하이브리드 클라우드 환경으로의 마이그레이션은 일반적인 기업에서 생성되는 데이터가 매년 2~3배 증가하는 주요 원인 중 하나입니다. IT 환경이 더욱 복잡해짐에 따라 이 데이터를 활용하여 시스템 관리, 운영 및 인시던트 대응을 자동화하고 기업의 신뢰성을 개선하는 데 SRE가 점점 더 중요한 역할을 하는 것으로 인식되고 있습니다.

클라우드 네이티브 개발 접근 방식을 도입해 애플리케이션을 마이크로서비스로 구축하고 컨테이너에 배포하면 애플리케이션 개발, 배포 및 확장성을 단순화할 수 있습니다. 그러나 클라우드 네이티브 개발은 운영 및 관리하기가 복잡한 더 분산된 환경을 만듭니다. SRE 팀은 클라우드 네이티브 접근 방식을 통한 신속한 혁신을 지원하고 DevOps 팀에 더 많은 운영 부담을 주지 않으면서 시스템 신뢰성을 보장하거나 개선할 수 있습니다.

관련 솔루션
IBM Turbonomic

수동 개입 없이도 중요한 작업을 지속적으로 실시간 자동화하여, 스택의 전 계층에서 앱을 위해 컴퓨팅, 스토리지 및 네트워크 리소스를 가장 효율적으로 사용할 수 있습니다.

IBM Turbonomic 살펴보기
IBM Instana™ Observability

애플리케이션 성능 모니터링을 강화하여 인시던트를 더 빨리 해결하는 데 필요한 컨텍스트를 제공합니다.

IBM Instana 살펴보기
플랫폼 엔지니어링 서비스

IBM Consulting 플랫폼 엔지니어링 서비스는 개발자의 인프라 자동화 셀프 서비스를 지원하여 소프트웨어 제공 팀의 생산성을 높입니다.

컨설팅 플랫폼 엔지니어링 살펴보기
리소스 AIOps를 향한 SRE 여정

IT 운영에 AI와 자동화를 적용하면 SRE가 엔터프라이즈 애플리케이션의 복원력 및 견고성을 보장하고 혁신을 지원할 귀중한 시간과 인재를 확보하는 데 어떤 도움이 되는지 알아보세요.

IBM Cloud Professional Site Reliability Engineer(SRE) V2

IBM의 전문가 수준 교육 및 인증을 통해 SRE로서의 역량을 향상하세요. IBM® Cloud 환경 및 도구로 지식을 습득하고 가상 랩에서 실습할 수 있습니다.

DevOps란 무엇인가요?

DevOps는 소프트웨어 개발 팀과 IT 운영 팀의 작업을 결합하고 자동화하여 고품질 소프트웨어의 제공 속도를 높입니다.

클라우드 네이티브 애플리케이션이란 무엇인가요?

클라우드 네이티브 애플리케이션은 마이크로서비스로 구성되고 컨테이너에 패키징 및 배포되며 어떠한 클라우드 환경에서도 실행되도록 설계됩니다.

쿠버네티스란 무엇인가요?

Kubernetes는 애플리케이션의 배포, 관리 및 확장을 자동화하는 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다.

다음 단계 안내

IBM Turbonomic을 사용하면 애플리케이션을 원활하고 지속적이며 비용 효율적으로 실행하여 비용을 절감하면서 효율적인 앱 성능을 달성할 수 있습니다.

Turbonomic 살펴보기 무료 데모 예약하기