어느 업종이나 마찬가지겠지만 월요일은 금융업무 특성상 거래량이 많은 편이다.
주말 동안 거래가 불가했거나 영업일에만 가능한 업무들을 한꺼번에 처리하는 경우가 많아 시스템의 부하도 많은 편이다. 그래서 시스템 인프라를 관제하는 팀은 월요일 오전에 특히 신경을 곤두세워 모니터링을 수행하며 시스템의 부하가 있지는 않은지 예의주시한다.
문제가 있었던 그날 오전.
10시가 지났을까 갑자기 관제용 모니터에 시스템의 이상을 알리는 경고음이 울리기 시작했고 모니터에는 현재 상태에 문제가 있음을 알리는 붉은색을 드러내기 시작했다. 이는 시스템에 평소 수준 이상의 부하가 시작됐음을 나타내며 그 상태가 30초 이상 지속된다면 정말 문제가 발생했다는 것을 의미한다.
몇몇 IT팀의 담당자들이 이 상황이 원만히 해결되기를 바라는 초조한 표정으로 상태를 주시하고 있었고, 시간이 지나도 개선이 되지 않자 분위기는 더더욱 심각해져 갔다.
안정적인 서비스의 제공을 위해 여러 대의 서버를 클러스터링(연결)해 두고 유입되는 트래픽을 분산하기 위해 로드 밸런싱 기법이 적용이 되어 있는 만큼, 서비스에 지장이 있는 경우 원인을 찾고 해결하는 데는 나름의 노하우가 필요하다. 더군다나 즉시 처리를 해야 하는 부담감도 상당하다.
(규정상 10분 이상 서비스에 문제가 있으면 24시간 이내 감독기관에 보고를 하게 되어있다)
아무튼 난 애플리케이션을 관리하고 있으므로 이 부분은 시스템 엔지니어가 적절히 조치를 할 것으로 믿고 있었다. 다만 빨리 이 문제가 해결이 되어서 대고객서비스에 문제가 없기만을 바랄 뿐이었다. 시간이 더 지체되면 고객들의 민원과 함께 이후에 데이터로 처리해야 할 업무가 더 늘어나게 됨은 불 보듯 뻔한 상황이었다.
30~40분쯤 지났을까. 서비스는 서서히 안정을 찾기 시작했고 정상화가 되는 듯했다.
(다행히 전체 업무가 멈춰 서지 않았다는 명분으로 감독기관에 별도 보고는 하지 않았다)
퇴근시간쯤 오전에 있었던 문제를 분석한 시스템팀은 문제의 원인을 DB서버와 스토리지를 연결하는 스위치의 포트 불량으로 특정했고 즉시 교체를 하기를 원했다. 다행히 현재는 이중화로 구성된 시스템으로 문제가 없지만 나머지 영역에서 추가 장애가 발생하면 큰 리스크로 번질 수 있다는 것이었다.
작업 소요 예상시간은 30분.
오늘 밤 00시에 시작을 해서 30분 동안만 서비스를 중지하고, 00시 30분부터 정상적인 서비스를 제공한다는 시나리오였다. 시스템팀의 작업계획서를 검토하고 나머지 스태프들도 그 타임스케줄에 맞춰 준비를 했다.
여기에는 대고객서비스를 총괄하는 업무팀도 포함이 되어 있는 만큼 많은 팀들이 해당 타임스케줄에 맞춰 준비를 했던 것이다. 채널(앱, 웹 등)에는 비대면서비스의 일시중지 공지까지 해둔 상태였다.
작업은 시작이 되었고 예정된 시간이 모두 지났지만 서비스가 정상적으로 기동이 되지 않았다.
작업상황을 주시하고 있던 스태프들은 모두가 긴장을 하기 시작했고, 대고객서비스를 담당하는 팀은 얼굴을 붉히며 찾아와 항의를 하기 시작했다. 결국 서비스는 예정된 시간보다 1시간이 더 소요되어 01시 30분쯤 기동이 되었다.
그런데 다시 되짚어 보니 부족한 대목이 있었다.
왜 우리는 모든 일들이 순조롭게만 진행될 것이라고 생각을 했던 것일까.
왜 아무런 돌발상황 없이 진행이 된다고 확신을 했던 것일까.
어쩌면 발생한 문제를 최소화해서 아무 일도 없던 것처럼 일을 황급히 처리하려고만 했던 것은 아닐까.
사실상 당일 저녁에 상세한 검토 없이 서비스를 중지하는 작업 계획은 경솔했다.
더군다나 대고객서비스 중지시간을 30분으로 잡은 것부터가 작업자만의 낙관적인 판단이었던 것이다.
만약 2시간의 작업시간을 계획했다면 어땠을까.
그리고 30분 작업으로 마무리를 한 후 서비스 제공을 예정시간보다 빨리 했다면 어땠을까 하는 생각도 들었다.
(대고객서비스를 중지하는 경우는 사전에 고객에게 공지를 해야 하는 절차가 있기는 하다. 어쩌면 그날은 사전 공지 없이 진행을 하다 보니 서비스 중지시간을 짧게 잡았던 패착이 있지 않았나 싶기도 하다)
분명한 것은 예상치 못한 상황을 고려하지 않은 계획 자체가 너무나 무모했다는 것이다.
담당자라면 반드시 업무를 수행함에 있어 예외적인 고려사항이 없는지 면밀히 살펴야 했고
관리자라면 간과하거나 소홀하기 쉬운 부분을 다시 한번 꼼꼼히 확인할 필요가 있었다는 것이다.
가끔은 계획을 세움에 있어서 낙관적 관점보다 비관적 관점을 우선으로 할 필요도 있는 것이다.