본문 바로가기

SRE

SRE 18장 - SRE 조직의 소프트웨어 엔지니어링 누군가에게 구글의 소프트웨어 엔지니어링 중 가장 많은 비중을 차지하는 제품이 무엇이냐고 묻는다면, 대부분 지메일이나 지도 같은 사용자 서비스라고 답할 것이다. 하지만, 사실 최종 사용자에게는 드러나지 않는 소프트웨어 엔지니어링의 비중도 엄청나다. 이들 중 상당 부분은 SRE 조직에서 개발한 것이다. SRE는 복잡한 프로덕션 환경을 직접 경험하고, 내부의 문제를 해결하기 위한 적절한 도구를 개발하며, 프로덕션 환경을 지속적이고 안정적으로 운영할 수 있는 다양한 활용 사례들을 만들어내고 있다. 바이너리 배포 메커니즘, 모니터링 또는 동적 서버 조합(dynamic server composition)을 기반으로 한 개발 환경의 구축 등 SRE 조직의 소프트웨어 엔지니어링 역량이 중요한 이유 SRE가 효율적으로 .. 더보기
SRE 5장 - 삽질은 이제 그만! 평범하게 운영 중인 당신의 시스템에 운영자가 손을 대야 한다면 그 시스템에 버그가 있다는 뜻이다. - 칼라 가이저, 구글 SRE 이 장에서는 운영 업무라는 단어의 의미가 사람에 따라 다르게 해석될 수 있으므로 삽질이라고 표현하기로 하겠다. 삽질의 정의 단순히 '하고 싶지 않은 일'을 의미하지만은 않는다. 그렇다고 관리를 위한 허드렛일이나 지저분한 일을 의미하는 것도 아니다. 반드시 수행해야 하며 삽질로 분류해서는 안 되는 업무들도 있다. 이런 업무들이 바로 부하를 일으킨다. 팀 회의나, 둘러앉아 목표를 결정하는 일, 업무 보고, 그리고 구인을 위한 서류 작업 같은 업무들을 포함한다. 지저분한 일은 간혹 장기적으로는 가치가 있을 수도 있다. 그런 경우에는 삽질로 분류해서는 안 된다. 시스템에서 경고와 관련.. 더보기
SRE 4장 - 서비스 수준 목표 서비스를 운영하는 데 있어 가장 중요한 지표들과 이 지표들을 측정하고 평가하는 방법에 대한 올바른 이해 없이는 서비스를 올바르게, 알아서 잘 돌아가도록 관리한다는 것은 불가능하다. 그래서 여기서는 사용자에게 필요한 서비스의 적정 수준을 정의하고 제공하는 방법에 대해 이야기하고자 한다. 이 내용은 우리 저자들의 직감과 경험(오... 직감과 경험...), 그리고 사용자가 서비스 수준 척도(SLI), 서비스 수준 목표(SLO), 서비스 수준 협약(SLA) 등을 어떻게 정의하고 있는지에 대한 이해를 바탕으로 하고 있다. 이 세 가지를 살펴보면 주요 지표들의 기본 속성과 각 지표들의 적정 값, 그리고 기대했던 수준의 서비스를 제공하지 못했을 때의 대처 방안 등을 알 수 있다. 결국 어딘가에 문제가 발생했을 때 올.. 더보기
SRE 1장 - 소개 시스템이 스스로 작동하지 않는다는 것은 이미 널리 알려진 사실이다. 그렇다면 대용량 작업을 수행하는 복잡한 컴퓨팅 시스템은 어떻게 운영되어야 할까? 서비스 관리를 위해 시스템 관리자를 활용하는 방법 기존에는, 시스템 관리자들을 채용했었다. 이 시스템 관리자들은 소프트웨어 컴포넌트들을 모아 배포함으로써 서비스를 구축해 나간다. 이벤트와 업데이트에 대응하는데, 시스템의 복잡도와 트래픽이 증가할수록 감당하기 위해 시스템 관리팀의 규모 역시 커지게 된다. 시스템 관리자를 두면 장점이 몇 가지 있다. 상대적으로 쉽게 서비스를 운영할 수 있다. 수많은 예시가 존재하기 때문이다. 전문 인력들도 이미 풍부하다. 도움이 되는 다양한 도구와 컴포넌트, 그리고 시스템 통합을 업으로 삼는 회사들도 많아서 조금 미숙하더라도 충.. 더보기