SI 프로젝트 프로세스 · 통합테스트와 이행(오픈) · 실습
이행 체크리스트와 롤백 스크립트 작성
목표
이행(오픈) 작업에 필요한 계획서·체크리스트·백업/릴리스/스모크/롤백 스크립트를
직접 만들고, 실제로 실행해 결과 보고서까지 작성할 수 있게 됩니다.
왜 중요한가
이행은 SI 프로젝트에서 가장 압축된 리스크 구간입니다. 새벽에, 지친 상태로,
여러 팀이 정해진 순서대로 움직여야 하고, 되돌릴 시간은 짧습니다.
이때 판단을 지탱하는 것은 미리 숫자로 정해 둔 롤백 기준과, 손이 떨려도
같은 답을 내는 자동화된 검증 스크립트입니다. 사람이 화면을 눌러 보는 스모크
테스트는 사람이 피곤할수록 부정확해집니다. 그래서 이행 준비의 본질은
'문서 작성'이 아니라 '판단을 자동화해 두는 것'입니다.
단계
1. /root/deploy 디렉터리를 만들고 /root/deploy/plan.md 를 작성합니다.## 이행 일시, ## 대상, ## 롤백 기준, ## 담당자 네 개의 h2 제목이 있어야 하고,
본문에 롤백 판단 시한 이라는 문구와 시각이 들어가야 합니다.
2. /root/deploy/checklist.csv 를 만듭니다. 첫 줄은seq,phase,task,owner,expected,rollback.
데이터는 8행 이상이고 phase 값에 사전, 이행, 검증 이 모두 등장해야 합니다.seq 는 1부터 1씩 증가하는 정수, expected(기대 결과)는 비어 있으면 안 됩니다.
3. /opt/lab/fixtures/si-process/app/config.properties 를/root/deploy/app/config.properties 로 복사합니다.
그리고 /root/deploy/backup.sh 를 만듭니다. 실행하면/root/deploy/backup/config.properties.YYYYMMDDHHMM 형식으로 백업을 남깁니다.
작성 후 실제로 한 번 실행하세요.
4. /root/deploy/release.sh 를 만듭니다. 실행하면/root/deploy/app/config.properties 의 app.version 값을 2.0.0 으로 바꾸고,/root/deploy/deploy.log 에 RELEASE 2.0.0 문자열이 포함된 줄을 덧붙입니다.
작성 후 실제로 한 번 실행하세요.
5. /root/deploy/smoke.sh 를 만듭니다. 인자 하나(설정 파일 경로)를 받아app.version 값이 비어 있지 않고 app.db.url 값이 jdbc: 로 시작하면
종료코드 0, 아니면 0 이 아닌 값으로 종료합니다.
6. /root/deploy/rollback.sh 를 만듭니다. 인자 두 개(백업파일 대상파일)를 받아
백업 파일을 대상 파일로 되돌립니다. 백업 파일이 없으면 대상 파일을 건드리지 말고
0 이 아닌 종료코드로 끝나야 합니다.
7. /root/deploy/rollback-criteria.csv 를 만듭니다. 첫 줄은metric,threshold,window,action. 데이터는 3행 이상이고action 은 롤백, 관찰, 유지 중 하나이며 최소 한 행은 롤백 이어야 합니다.threshold 에는 숫자가 들어가야 하고 window(관측 구간)는 비어 있으면 안 됩니다.
8. /root/deploy/result.md 를 작성합니다. ## 수행 결과, ## 이슈,## 백업 위치, ## 확인 사항 네 개의 h2 제목이 있어야 하고,
3 단계에서 만들어진 실제 백업 파일명과 배포된 버전 2.0.0 이 본문에 들어가야 합니다.
참고
date +%Y%m%d%H%M으로 12자리 타임스탬프를 만들 수 있습니다.- 설정 값 읽기:
grep '^app.version=' 파일 | cut -d= -f2 - 흔한 실수 1: 롤백 스크립트가 백업 파일 존재 확인 없이
cp를 실행하는 것. - 흔한 실수 2: 스크립트를 만들고 실행하지 않아 산출물(백업 파일, deploy.log)이 없는 것.
- 흔한 실수 3:
checklist.csv의expected열을 비워 두는 것. 기대 결과가 없으면 체크리스트가 아닙니다.
단계 8개
- 이행 계획서 작성
- 단계별 체크리스트
- 설정 백업 스크립트 작성과 실행
- 릴리스 스크립트 작성과 실행
- 스모크 테스트 스크립트
- 롤백 스크립트
- 롤백 판단 기준표
- 이행 결과 보고서