운영 가이드를 받았는데 당직자가 그대로 따라 움직일 수 있게 쓰여 있었다. 어떻게 만들었는지가 아니라 어떻게 만지는지만 적혀 있는 점이 좋았는데 배포 절차에서 걸리는 것이 있었다.
Table of contents
Open Table of contents
당직자를 위한 가이드
배포하는 산출물의 이름에 개발 중임을 나타내는 표시가 그대로 붙어 있었다. 그 표시가 붙은 산출물은 같은 이름으로 계속 새것이 덮인다.
그러면 지금 서버에서 도는 것이 어느 시점의 빌드인지를 파일 이름으로는 알 수 없다. 언제 만든 것인지도 파일 날짜 말고는 근거가 없다.
같은 이름으로 덮이는 산출물
더 큰 문제는 되돌릴 방법이 없다는 것이었다. 이전 판이 같은 이름으로 덮여서 사라졌으므로 돌아갈 대상 자체가 없다.
문제가 났을 때 할 수 있는 것이 이전 소스로 다시 빌드하는 것뿐인데 그것은 몇 분이 아니라 몇십 분이 걸린다. 되돌리기가 필요한 상황은 대개 그럴 여유가 없는 상황이다.
되돌리기가 링크 교체가 된다
그래서 산출물에 버전이나 시각을 붙여서 이름이 겹치지 않게 하고 현재 판을 가리키는 링크를 따로 두기로 했다. 배포는 새 파일을 올리고 링크를 옮기는 것이 된다.
이렇게 하면 되돌리는 것이 링크를 이전 것으로 다시 옮기는 일이 된다. 몇 초면 끝나고 이전 판들이 그대로 남아 있으므로 어느 시점으로도 갈 수 있다.
기록 없는 배포와 커지는 로그
배포를 파일 전송 도구로 하고 있어서 언제 무엇이 올라갔는지가 아무 데도 안 남았다. 최소한 언제 누가 어느 판을 올렸는지 한 줄이라도 남기게 했다.
프로세스를 띄우면서 나오는 출력이 파일 하나에 계속 쌓이고 있는 것도 걸렸다. 그것은 자동으로 잘리지 않으므로 디스크가 차야 알게 된다.
가이드에 적으면 안 되는 것
가이드에 설정 파일의 암호화를 푸는 방법이 적혀 있는 부분이 있었다. 당직자가 급할 때 그 방법을 쓰라는 뜻이었을 텐데 그 자리에 그것이 있으면 안 됐다.
대신 그 자리에 필요한 값을 정상 경로로 얻는 방법을 적었다. 마지막으로 소프트웨어 판을 손으로 옮겨 적은 표에서 오기를 하나 찾았는데 그런 표는 빌드 파일에서 뽑는 것이 맞았다.
정리
- 개발 표시가 붙은 산출물은 같은 이름으로 계속 덮인다
- 지금 도는 것이 어느 빌드인지 알 수 없다
- 덮인 이전 판이 없으니 되돌릴 대상이 없다
- 버전이나 시각을 붙이고 링크로 현재를 가리킨다
- 되돌리기가 링크 교체가 된다
- 전송 도구로 배포하면 기록이 없으니 한 줄이라도 남긴다
- 자동으로 안 잘리는 로그는 디스크가 찰 때 알게 된다
- 가이드에 보안을 푸는 방법 대신 정상 경로를 적는다