CS/SRE

[SRE] Ch01 ~ 02. 소개

12.tka 2023. 7. 11. 22:40
728x90

후니의 쉽게 쓴 네트워킹 스터디가 끝난 후 사이트 신뢰성 엔지니어링(Site Reliability Enginnering) 스터디를 하고 있습니다. 현재 데이터 엔지니어 직군으로 일하고 있는 저에게 후니의 쉽게 쓴 네트워킹과 사이트 신뢰성 엔지니어링 책 내용은 직접적으로 업무와 관련된 책은 아닙니다. 하지만 네트워크는 어떻게 구성되어 있는지, SRE 업무에 있어서 핵심은 무엇인지 파악하는 과정에서 시야가 많이 넓어질 것이라고 기대하고 있습니다 !

 

오늘은 SRE 책 내용 중 Ch01 ~ 02 - 소개에 대해서 이야기를 하려고 합니다.

이 책은 현직 개발자가 사이트 신뢰성 엔지니어가 되기 위한 기술적인 토대를 갖추기 위한 책이 아니라, 사이트 신뢰성 엔지니어링 조직의 문화와 이념, 그리고 철학을 이해하고자 하는 개발자와 기술 조직의 리더들에게 더욱 유익한 책이다.

머리말에 언급된 내용을 살펴보면, 제가 이 책을 선택한 이유와 책의 목적이 일치한다는 것을 알 수 있습니다. 그리고 이 책은 기술적으로 아주 깊숙이 파고드는 책은 아니라서 주니어 개발자분들도 읽으면 도움이 많이 될 것 같습니다. (저도 주니어입니다,,)

 

안정화

소프트웨어 업계에서는 프로덕션 환경에 배포가 완료되어 실제로 동작하는 소프트웨어를 '안정화된' 것으로 생각하고 소프트웨어 엔지니어들이 이에 대해 비교적 신경을 덜 쓰는 형태가 정착되어 있는데, 이는 완전히 잘못된 것이다.

처음에는 배포가 완료되어 실제로 동작하는 소프트웨어를 '안정화된' 것으로 생각하는 게 왜 잘못된 생각인지 이해하지 못했습니다. 프로덕션 환경에 배포를 했으면 사용자들이 사용할 수 있는 형태인데 어느 정도 안정화된 것이 아닌가라는 생각을 하였습니다. 물론 자잘한 버그는 있을 수 있지만 불안정화된 상태라고는 생각하지 않았습니다. 하지만 책을 읽어보면서, 저의 초점이 잘못되었다는 것을 깨달을 수 있었습니다. 제대로 된 접근은 시스템의 디자인과 개발에만 초점을 맞추는 것이 아니라, 배포를 포함하여 운영, 개선, 그리고 폐기에 이르기까지 전체 생명주기를 고려하는 방법에 초점을 맞추는 것이었습니다.

 

SRE

사이트 신뢰성 엔지니어링(SRE)란 운영팀을 위한 소프트웨어 엔지니어를 말한다.

사이트 신뢰성 엔지니어링(SRE) 용어는 구글에서 처음으로 만들었는데요. 끊임없이 엔지니어링을 추구하지 않으면, 업무 부담이 증가하여 그 부담을 나누기 위해 더 많은 인력이 필요하게 되고, 결국에는 서비스의 크기에 따라 전통적인 운영 업무를 담당하는 인력이 기하급수적으로 늘어나기 때문에 서비스를 운영하는 팀은 코드를 작성할 줄 알아야 한다고 합니다. 따라서 구글의 SRE팀은 엔지니어링에 초점을 맞추고 있으며 50% 시간을 오롯이 개발을 위해 활용해야 한다고 합니다.

+) 구글은 개발팀과 운영팀의 상이한 목표를 해결하기 위해 SRE를 도입하고 있습니다. 개발팀의 목표는 빠른 기능추가이며 운영팀은 서비스를 안정하게 운영하는 것입니다.

 

모니터링

모니터링 결과는 알림, 티켓, 로깅 세 가지로 구분할 수 있습니다.

- 알림: 어떤 문제가 발생했거나 발생하려고 할 때 상황을 개선하기 위해 사람이 즉각적으로 어떤 대응을 취해야 하는 상황

- 티켓: 사람의 대응이 필요하지만 즉각적인 대응이 필요하지는 않은 상황

- 로깅: 향후 분석이나 조사를 위해 기록되는 내용

 

하드웨어

구글의 대부분의 컴퓨터 자원은 구글이 전원 공급, 냉각 기능, 네트워크 및 컴퓨터 하드웨어 등을 모두 직접 디자인한 데이터센터에 있다고 합니다. 다른 데이터센터와는 달리 구글의 컴퓨터 하드웨어는 모든 데이터센터에 동일하게 적용되어 있습니다. 일부 데이터센터는 다양한 세대의 컴퓨터 하드웨어를 사용하기도 하며, 간혹 데이터센터를 구축한 이후 증설을 하는 것으로 아는데 역시 구글은 다른 것 같습니다.

 

아래 그림은 구글 데이터센터의 토폴로지를 도식화한 것입니다. 수십대의 머신이 랙에 장착되어 있으며 랙은 일렬로 배치되어 있습니다. 이러한 랙들이 결합하여 클러스터를 구성하며, 클러스터들이 다시 결합하여 데이터센터를 구성합니다. 그리고 근거리의 데이터센터 건물이 모여 캠퍼스를 이룹니다.

 

 

 

기타

구글은 포스트모텀 문화는 특정인을 비난하기보다는 실수를 공유함으로써 엔지니어가 자신의 단점을 피하거나 숨기려 하지 않고 스스로 고쳐나갈 수 있도록 유도하는 문화로 이미 정착되어 있다고 합니다. 현재 제가 속한 팀도 구글과 비슷한 분위기인 것 같습니다. 실수를 공유함으로써 다른 사람의 실수를 방지할 수도 있기 때문에 좋은 문화라고 생각합니다.

 

728x90