CS/SRE

Ch29. 방해 요소에 대한 대처

12.tka 2023. 11. 5. 18:48
728x90

운영 업무의 부하

복잡한 시스템에서 운영 업무의 부하란 시스템이 제대로 동작하는 상태를 유지하기 위해 반드시 해야만 하는 일들을 의미한다. 복잡한 시스템을 만든 사람이 완벽하지 못한 만큼, 시스템 자체도 완벽할 수 없다. 이런 시스템에서 발생하는 운영 업무들을 관리하고 있다면, 그 시스템을 만든 사람 역시 완벽하지 않다는 점을 항상 기억하자. 운영 부하는 긴급 호출, 티켓, 진행 중인 운영 업무 세 가지로 분류할 수 있다.

 

긴급 호출

운영 환경에서 발생하는 경고나 장애에 대처하기 위한 것으로, 긴급한 상황이 발생했을 때 생겨난다. 이들은 대부분 단조롭고, 반복적으로 발생하며, 약간은 생각을 해야 한다. 긴급 호출은 그에 상응하는 기대 응답 시간(SLO)이 정해져 있으며, 대부분 분단위로 측정한다.

 

긴급 호출은 통상 비상 대기 요원들이 전담 관리한다. 즉, 한 사람이 긴급 호출에 응답하고 해당 장애를 관리한다. 우선 비상 대기 엔지니어는 고객 지원 응대, 제품 개발자로의 상향 전파 등의 업무를 수행하기도 한다. 구글은 긴급 호출로 인해 팀이 방해를 받는 경우를 최소화하고 장애를 그냥 방관만 하는 상황이 발생하지 않도록 엔지니어들이 돌아가며 한 명씩 비상 대기 업무를 수행하도록 규정하고 있다.

 

티켓

고객의 요청에 따라 수행해야 할 업무를 정의한다. 티켓 역시 가대 응답 시간(SLO)를 가지고 있지만 그 응답 시간은 주로 시간, 일 혹은 주 단위로 측정한다.

 

티켓을 관리하는 방법은 SRE팀에 따라 몇 가지로 나뉜다. 비상 대기 업무 중에 우선 비상 대기 요원이 티켓을 처리할 수도 있고 보조 비상 대기 요원이 티켓을 처리할 수도 있다. 혹은 비상 대기 업무를 수행하지 않는 엔지니어가 티켓을 전담해서 처리하는 팀도 있다. 티켓은 임의의 팀원에게 자동으로 할당되기도 하고, 팀원들이 알아서 티켓이 등록되는 즉시 처리하기도 한다.

 

진행 중인 운영 업무

팀이 보유한 코드 혹은 플래그의 배포, 갑작스러운 업무에 대한 대응, 빠른 처리를 위한 고객의 요구 사항 등의 활동이 포함되어 있다. 특별한 SLO를 정의하고 있지는 않더라도, 이런 작업은 분명히 방해 요소로 작용한다.

 

진행 중인 운영 업무 역시 다양한 방법으로 관리된다. 비상 대기 엔지니어가 해당 업무를 수행하기도 하고 어떤 경우는 팀원들에게 필요한 시점에 각 역할을 맡기기도 하며, 비상 대기 엔지니어가 비상 대기 수행 기간이 끝난 후에도 계속해서 해당 업무에 대한 책임을 유지하기도 한다.


방해 요소의 관리 방법을 결정하기 위한 요소들

방해 요소의 기대 응답 시간(SLO), 대부분 나중으로 미뤄놓는 방해 요소의 수, 방해 요소의 심각도 수준, 방해 요소의 빈도, 특정 방해 요소를 처리하기 위해 필요한 사람의 수 등의 지표를 활용해서 방해 요소의 관리 방법을 결정한다.

 

산만한 주변 환경

엔지니어들은 산만한 주변 환경으로 인해 여러 가지 방식으로 인지적 몰입 상태를 이루지 못한다. 주의가 분산되는 상황을 최소화하기 위해서는 컨텍스트 전환을 최소화해야 한다. 시간을 나누어 쓴다는 것은 각자가 매일 하루의 업무를 프로젝트 업무만 진행할 것인지 아니면 방해 요소를 처리하는 일만 할 것인지를 스스로 알고 있어야 한다는 것을 의미한다.

 

결론

팀 차원에서 해결할 수 있는 방해 요소는 최대한 해결하는 것이 좋을 것 같다. 하지만 개인적인 차원에서의 방해 요소 해결 방법은 사람마다 너무 다르다고 생각하기에 책 내용은 참고만 하고 자신에게 적합한 방법을 찾아나가는 것이 좋을 것 같다.

728x90