인사이트도입과 운영

설치형 AI도 업데이트를 안전하게 할 수 있을까

미룰수록 업데이트는 무거워진다

새 버전이 나왔다는 안내는 받았는데 서버는 여전히 몇 버전 전 그대로입니다. 설치형 소프트웨어를 쓰는 회사에서 흔한 모습입니다. 새 버전에 무엇이 바뀌었는지 알기 어렵고, 적용하다 실패하면 서비스가 멈출 수 있고, 되돌리는 방법은 담당자 머릿속에만 있어서입니다. 그렇게 몇 버전을 건너뛰면 다음에는 중간 버전을 차례로 거쳐야 해서 업데이트가 더 무거워집니다.

OwlAI에서는 관리 화면에서 승인 한 번이면 업데이트가 적용됩니다. 바뀐 점과 되돌리는 방법은 승인하기 전에 확인 창이 보여 주고, 적용과 실패했을 때의 되돌림은 서버의 업데이트 실행기가 맡습니다.

서명이 맞지 않는 파일은 확인 창까지 오지 않는다

OwlAI 새 버전은 개발사가 서명해 내보냅니다. 서버는 받은 파일의 서명부터 확인하고, 맞지 않으면 확인 창을 띄우지 않고 그 파일을 지웁니다. 누가 파일을 바꿔치기했거나 옮기는 중에 손상된 파일은 설치되지 않습니다.

올리는 버전은 늘 최신 버전 하나입니다. 고를 버전 목록도, 거쳐 가야 하는 중간 버전도 없어서 몇 버전을 건너뛰었더라도 한 번에 최신으로 올라옵니다.

업데이트 흐름: 서명 확인부터 기동 확인, 실패 시 되돌림
그림 1. 업데이트 흐름: 서명 확인부터 기동 확인, 실패 시 되돌림

관리자가 승인하지 않으면 새 버전은 들어오지 않는다

인터넷에 나갈 수 있는 설치라면 새 버전이 나왔을 때 관리 화면에 업데이트 버튼이 나타납니다. 폐쇄망이라면 전달받은 릴리스 파일 하나를 올립니다. 그다음 과정은 어느 쪽이든 같습니다.

확인 창에는 판단에 필요한 것만 보입니다. 지금 버전과 새 버전, 적용하는 동안 서비스에 미치는 영향, 문제가 생겼을 때 되돌리는 방법, 백업 범위, 바뀐 점입니다. 관리자는 현재 비밀번호로 본인 확인을 한 번 더 거친 뒤 승인합니다. 2단계 인증을 켠 계정이면 인증 코드도 넣습니다. 아무도 승인하지 않으면 새 버전은 들어오지 않습니다.

승인한 뒤에는 같은 서버의 업데이트 실행기가 정해진 순서대로 적용합니다. 적용 직전에 데이터베이스를 자동으로 백업하고, 서비스를 교체하기 전에는 진행 중인 답변과 분석이 끝나기를 기다립니다. 진행 상황은 단계별로 화면에 보입니다. 적용 중에 서버가 재부팅되거나 전원이 끊겨도 멈춘 단계부터 이어 갑니다.

실패하면 실행기가 스스로 이전 버전으로 돌아간다

새 버전이 제대로 서지 않으면 실행기가 이전 버전으로 되돌리고, 그 결과를 사유와 함께 기록 표에 남깁니다. 되돌리는 순서를 담당자가 기억해 둘 필요가 없습니다.

적용을 마친 뒤에 문제가 보이면 길은 둘입니다. 데이터베이스 구조가 이전 버전과 맞으면 안내된 명령 하나로 이전 버전에 돌아갑니다. 구조가 바뀐 버전이면 업데이트 직전 백업으로 복원합니다. 이번 버전이 어느 쪽인지는 승인하기 전 확인 창에 이미 나와 있습니다.

업데이트 직전 백업에는 데이터베이스가 담깁니다. 업데이트가 바꾸는 것은 프로그램과 데이터베이스 구조라서, 업데이트 직전으로 돌아가는 데는 이 백업 하나면 됩니다. 문서와 생성 파일은 업데이트가 건드리지 않습니다. 업데이트 직전 백업은 정기 백업을 대신하지 않습니다. 데이터베이스와 문서·생성 파일을 함께 지키는 정기 백업은 회사가 쓰는 백업 체계로 운영합니다.

업데이트 중에도 대부분 화면은 그대로 쓴다

적용하는 동안의 영향은 버전마다 다르고 확인 창에 미리 나옵니다. 대부분은 화면을 계속 쓸 수 있고 진행 중인 답변이 몇 분 기다리는 정도입니다. 서비스를 교체하는 몇 분 동안 오류가 날 수 있는 버전이나 데이터 양에 따라 수십 분 멈추는 버전이면, 확인 창이 경고와 함께 사용이 적은 시간에 적용하라고 안내합니다. 화면 연결이 잠시 끊겨도 스스로 다시 연결되고, 직원 PC의 데스크톱 앱은 서버 업데이트가 끝나면 새 화면을 받아 함께 따라오고, 설치본은 앱의 바탕 프로그램이 바뀐 버전에서만 새로 받습니다.

SaaS는 OwlAI가 업데이트를 맡으므로 고객이 따로 할 일이 없습니다. 구축형이라면 승인하기 전에 확인 창의 적용 중 영향과 되돌리는 방법 두 줄부터 읽고 적용 시각을 정하면 됩니다.

어떤 기술로 풀었을까요?

도입과 운영의 다른 글