SRE (Site Reliability Engineering) 역할

 

SRE(Site Reliability Engineering) 조직이 해당 시스템, 서비스 제품에서 적절한 수준의 안정성을 달성하도록 지원하는 엔지니어링 분야로,  실패 비용을 줄임으로써, 신속하게 올바른 방향으로 이동할 있도록 지원한다. 과정에서 SRE 자동화, 수치화, 프로세스화를 진행한다. 특히 SRE 관점은 근본적인 문제는 소프트웨어의 문제라고 정의하고 접근한다. SRE 하는 일은 크게 5가지 정도로 나누어 있다.

 

[Metric & Monitoring]

모니터링 지표를 정의하고, 정의된 지표를 모니터링 시스템으로 구성한다. 인사이트를 통해 시스템이 안정적인 상황과 또는 장애가 나는 지표는 무엇인지, 왜인지? 그리고 이러한 지표를 어떻게 개선할 있는지를 고민한다.기본적으로 SRE에서 가장 중요한 부분은 모든것을 데이타화하고, 의사결정을 데이타를 기반으로 한다는 것이다.

 

[Capacity Planning]

시스템을 운영하는데 필요한 하드웨어 리소스(서버, CPU,메모리,디스크,네트워크 ) 확보하는 작업을 진행한다. 수집된 데이터를 통해 서비스 안정성에 필요한 하드웨어를 미리 예측하는 것이다. SRE 엔지니어는 자원 활용의 효율성 측면에서 소프트웨어의 성능을 그리고 안정성 측면에서 소프트웨어의 안정성을 함께 있어야 한다.

 

[Change Management]

대부분의 시스템 장애의 원인은 대략 70% 시스템에 변경을 주는 경우에 발생한다. SRE 점진적인 배포와 변경을 관리한다.배포 또는 장애시 빠르고 정확하게 해당 문제를 찾아낼 있도록 해야하며 마지막으로 문제가 발생하였을때 빠르게 롤백할 있도록 해야한다.

 

[Emergency Response]

일반적으로 장애 복구 단계에서 사람이 직접 매뉴얼로 복구를 하게 되면 장애 복구 시간이 많이 소요된다. 사람이 컨트롤을 하되 가급적이면 단계는 자동화 되는게 좋으며, 사람이 해야 하는 일은 되도록이면 메뉴얼화 되어 있는 것이 좋다. SRE 자동화 뿐만아니라 메뉴얼, 프로세스를 함께 제공한다.

 

[Culture]

운영에 필요한 작업뿐만 아니라 SRE 문화를 전반적으로 만들고 지켜나가는 작업을 진행한다.  데이타에 기반한 합리적인 의사결정과 서로 비난하지 않고 장애 원인을 분석하고 이를 예방하는 포스트모템 문화, 그리고 책임을 나눠가지는 문화를 장려하고 선순환 구조를 만들 있도록 해야한다.

 

[참고자료]

·       IO116-Improving Reliability with Error Budgets, Metrics, and Tracing in Stackdriver : https://drive.google.com/file/d/1iOMaYIwlUBiGoG2mf8MFzl3EHy5xGJpq/view

·       Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템) : https://www.slideshare.net/deview/216sresearchreliabilityengineering

·       네이버 검색의 SRE 시스템 : https://d2.naver.com/helloworld/2047663

·       SRE(사이트 안정성 엔지니어링) 소개 : https://docs.microsoft.com/ko-kr/learn/modules/intro-to-site-reliability-engineering/

 

 

 

2020-05-13 / Sungwook Kang / http://sungwookkang.com

 

SRE, Site Reliability Engineering, DevOps, 사이트안정성엔지니어링, 사이트신뢰성엔지니어링, 시스템운영, SiteReliability, 서비스운영, 모니터링자동화, 시스템운영자동화

SRE (Site Reliability Engineering)

 

 

사이트 안정성 엔지니어링(SRE, site Reliability Engineering) 조직이 해당 시스템, 서비스 제품에서 적절한수준의 안정성을 지속적으로 달성하도록 지원하는 엔지니어링 분야이다. 여기서 말하는 적절한수준의 안정성은 무엇일까? IT 시스템이 발달할 수록, 나은 안정성을 추구 할수록, 안정성을 높이는 필요한 노력과 리소스( 비용) 빠른 속도로 증가하고 있다. 이를 다르게 표현한다면, 불필요한 안정성 추구는 시간과 돈의 낭비가 발생한다는 것이다. 결론적으로 안정성 수준은 비즈니스 수요에 적절하고 실용적이어야 하는 수준에서 트레이드오프를 해야한다. 예를 들어, 고객이 100% 안정적이지 않은 네트워크(시간의 90% 가동한다고 가정) 통해 연결하는 경우 노력과 비용() 투자하여 서비스가 95% 안정적으로 되도록 하는 것은, 정의상 시간과 돈을 낭비하는것과 같다. “지속적인 달성  이러한 모든 상황에서 사용자가 해야 역할을 의미한다. SRE 지속 가능한 운영방식을 만들고, 신뢰할 있는 시스템을 만든다. 개발자(시스템 사용자) 서비스, 제품을 만든다. 시간이 지나도 지속되는 운영방식을 구현하여, 사람들(개발자, 사용자)들이 업무에 최선을 다할수 있도록 환경을 제공하는것이 정말 중요하다.

 

SRE 역사는 2013 Google에서 Benjamin Treynor 7명의 소프트웨어 엔지니어로 구성된 팀을 이끌면서 프로덕션의 운영환경을 개선하기 위한 프로젝트를 진행하면서 시작되었다. 팀의 목표는 변화를 수용하면서, 동시에 우수한 품질을 최종 사용자에게 제공하는것이다. 구글은 현재 1500 이상의 엔지니어들이 SRE 업무를 수행하고 있다. SRE 프로세스는 이제 Microsoft, Apple, Amazon, Facebook, Twitter 같은 대기업에서도 도입하여 사용하고 있다.

SRE 엔지니어는 운영(OPS)” 관련된 작업을 수행하는데 최대 50% 시간을 소비한다. SRE 관리하는 소프트웨어 시스템은 고도로 자동화 되어 있으며, 자가치유 기능을 가지고 있어야 한다. 그래서 일반적으로 시스템의 자동화 작업에 50% 시간을 소비하며 나머지 50% 운영에 소비한다. 이상적인 SRE 후보자는 시스템 관려 경험을 가진 소프트웨어 엔지니어 코딩 자동화에 숙련된 시스템 관리자들이다.

 

기존의 DevOps SRE 어떻게 다를까? 모니터링을 통한 문제 식별, 자동화라는 목표는 조직 모두 동일하지만, DevOps 개발쪽에 조금 편향되어 있다면, SRE 운영쪽에 조금 편향되어 있다.

 

 

DevOps 개발과 운영조직 각각의 사일로 현상을(내부 이익만 추구하는 부서간 이기주의 현상) 해체하기 위한 문화적인 움직임으로, 하나의 문화로 인식된다. 그래서 역할을 정의할때도, “저는 DevOps 하는 운영자, 또는 개발자 입니다.”라고 표현한다.

 

 

 

SRE 안정성을 위한 엔지니어링으로 DevOps 운영적인 부분을 보완한다. 그래서 SRE 문화라기보다는 하나의 역할이며, 표현할 때에도 저는 SRE 입니다라는 식으로 규범으로 인식한다.

 

 

[참고자료]

·       IO116-Improving Reliability with Error Budgets, Metrics, and Tracing in Stackdriver : https://drive.google.com/file/d/1iOMaYIwlUBiGoG2mf8MFzl3EHy5xGJpq/view

·       Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템) : https://www.slideshare.net/deview/216sresearchreliabilityengineering

·       네이버 검색의 SRE 시스템 : https://d2.naver.com/helloworld/2047663

·       SRE(사이트 안정성 엔지니어링) 소개 : https://docs.microsoft.com/ko-kr/learn/modules/intro-to-site-reliability-engineering/

 

 

 

2020-05-10 / Sungwook Kang / http://sungwookkang.com

 

SRE, Site Reliability Engineering, DevOps, 사이트 안정성 엔지니어링

작업 관리자에서 디스크 성능 정보 표시하기

  • Windows Server 2012, 2012 R2

 

Windows Server 2012, 2012 R2 작업 관리자를 실행하였을 때 디스크 정보가 보이지 않는 경우가 있다.

 

작업 관리자에서 디스크 정보를 표시하기 위해서는 커맨드 명령 또는 파워쉘을 이용하여 간단한 명령으로 디스크 정보를 나타내도록 수정할 수 있다.

Diskperf -Y

 

 

커맨드 명령을 완료하고 작업 관리자를 다시 실행해 보면 디스크 정보가 표시되는 것을 확인할 수 있다.

 

 

 

2016-02-02 / 강성욱 / http://sqlmvp.kr

 

작업 관리자, 디스크 정보, Diskperf, Task Manager, Disk Performance, Windows, Windows 2012, Windows Counter

Amazon Elastic Block Store (Amazon EBS) 소개

   

Amazon Elastic Block Store(EBS)는 Amazon EC2 인스턴스에 사용할 블록 레벨 스토리지 볼륨을 제공 한다. EBS 볼륨은 네트워크에 연결되며 EC2에 연결하여 인스턴스 내의 디바이스로 표시 할 수 있다. 특히 데이터베이스, 파일 시스템, 원시 블록 레벨 스토리지에 대한 액세스가 필요한 애플리케이션에 적합하다.

   

[성능]

  • EBS에서는 EC2 인스턴스에 디바이스로 마운트할 수 있는 스토리지 볼륨은 1GB ~ 1TB까지 생성할 수 있으며 여러 볼륨을 동일한 인스턴스에 마운트 할 수 있다.
  • EBS에서 프로비저닝된 IOPS 볼륨을 선택하면 특정 수준의 I/O성능을 프로비저닝 할 수 있다. I/O 집중적인 워크로드에 적합하며 볼륨당 최대 4000IOPS를 제공한다. 여러 개의 볼륨을 함께 스트라이핑하여 애플리케이션에 EC2 인스턴스당 수천 개의 IOPS를 제공할 수 있다.
  • 표준 볼륨은 평균 약 100IOPS를 제공하여 순간 최대 수백 IOPS를 지원한다. 버스트 기능이 빠른 인스턴스 시작 시간을 제공하기 때문에 부트 볼륨으로 사용하기에도 적합하다.
  • EBS최적화 인스턴스는 유형에 따라 500Mbps ~ 1000Mbps의 범위에서 선택 할 수 있다.

   

   

[내구성]

  • 볼륨의 내구성은 볼륨의 크기와 마지막 스냅샷 이후 변경한 데이터의 비율(%)에 따라 달라진다. 20GB미안의 수정된 볼륨의 경우 AFR(연간 실패율)이 0.1% ~ 0.5%로 예상된다. 여기서 고장은 완전히 손실됨을 뜻한다.
  • EBS는 일관된 지정 시간 볼륨 스냅샷을 만들 수 있는 기능을 제공하며 생성된 스냅샷은 Amazon S3에 저장되어 여러 가용 영역에 자동으로 복제 된다. 또한 마지막 스냅샷을 이용해 볼륨을 재생성 할 수 있다.

   

[스냅샷]

  • Amazon EBS 스냅샷은 마지막 스냅샷 이후 변경된 디바이스의 블록만을 저장하는 증분식 백업이다. 100GB 데이터의 디바이스가 있으나 5GB 데이터만 마지막 스냅샷 이후 변경된 경우 추가된 5GB의 스냅샷 데이터만 Amazon S3에 다시 저장된다. 스냅샷은 증분식으로 저장되지만, 한 스냅샷을 삭제하면 다른 스냅샷에 필요하지 않은 데이터만 제거된다.
  • 모든 스냅샷의 볼륨 복원 시기가 같기 때문에 증분식 백업에 필요한 공간을 절약하면서 복원 시간 동안 전체 백업을 복원할 수 있다.
  • 기존 Amazon S3 스냅샷을 이용해 생성한 새 볼륨은 백그라운드에서 느리게 로드된다. 이는 스냅샷에서 볼륨을 생성한 경우 Amazon S3에서 Amazon EBS 볼륨으로 모든 데이터가 전송되기를 기다리지 않고도 연결된 인스턴스에서 볼륨과 모든 데이터에 액세스할 수 있음을 의미한다. 인스턴스에서 아직 로드되지 않은 데이터에 액세스하는 경우, 볼륨은 요청한 데이터를 Amazon S3에 즉시 다운로드한 후, 볼륨의 나머지 데이터를 백그라운드에서 계속해서 로드한다.

   

   

다음 표는 EBS 처리랑 및 최대 IOPS를 나타내는 표이다. 지속적으로 이러한 수준의 성능을 달성하기 위해서는 EBS 최적화로 인스턴스 유형을 시작하여야 한다.

   

   

[참고자료]

EBS IOPS : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-ec2-config.html

+ Recent posts