무중단 점검이 필요한가

현대적인 기술에 기반한 무중단 인프라를 사용하지 않더라도 이미 어느 정도 무중단 서비스를 하고 있습니다.

무중단 점검이 필요한가

라이브 중인 게임 서비스들은 오랜 세월에 걸쳐 한 주 중 정해진 어느 하루에 점검하곤 했습니다. 점검 시간 동안에는 서비스를 중단했는데 이 사이에 새 바이너리를 배포하고 서버를 업데이트하고 인프라를 업데이트하고 또 필요에 따라 데이터베이스를 마이그레이션 하곤 했습니다. 각 작업은 서로 다른 부서에서 진행하고 상황에 따라서는 다른 회사에서 진행하기 때문에 점검 시간 동안 점검에 관여하는 모든 사람들은 서로 촉각을 곤두세우고 다른 부서나 다른 회사의 작업 진행 상황을 확인해 가며 자기 차례를 기다렸습니다. 모든 점검 과정이 완료된 다음에는 소위 라이브 테스트라고 해서 외부 고객의 로그인만 막아 둔 채로 얼라우리스트 기반으로 우리들만 로그인 해 실제 환경에서 핵심 기능들을 테스트 해 무결성을 확인했는데 만약 이 과정에서 문제를 발견하면 그 날 새벽 업무는 밤까지 무한정 늘어나기도 했는데 고객들의 원성은 덤입니다.

한편 게임 서비스 점검 때마다 처음부터 점검 시간을 넉넉하게 잡아 두면 점검이 끝나는 시각에 맞춰 게임을 시작하려던 고객들로부터 욕을 먹지 않아도 될텐데 왜 점검 시간을 항상 부족하게 잡아 점검을 연장하는지 궁금한 분들이 계실 겁니다. 이 궁금함에 대한 답은 우리도 그렇게 오래 걸릴 줄 몰랐기 때문입니다. 회사 입장에서는 항상 점검 시간을 최소화 할 때 가장 큰 이익을 낼 수 있기 때문에 점검 시간이 길어지는 상황을 원하지 않을 겁니다. 그래서 큰 업데이트 전에는 점검 시간 동안 수행할 모든 작업을 계획하고 각 작업 절차를 주의 깊게 설계하며 각 작업마다 예상 소요시간, 위험 요소 따위를 고려해 업데이트 시간표를 작성해 공유합니다. 대 고객 서비스 담당자가 이 시간표에 기반해 점검 공지를 작성하고 점검 시간을 고객들에게 안내하는데 정작 이 담당자는 점검 과정에 직접 관여하지는 않기 때문에 만약 점검 과정에 문제가 생길 경우 고객들에게 안내할 말이 없을 수 있습니다. 사실 점검 과정에 생긴 문제를 고객들에게 정확히 안내할 이유가 없기도 합니다.