LabHub

SI 프로젝트 프로세스 · 통합테스트와 이행(오픈) · 실습

이행 체크리스트와 롤백 스크립트 작성

LabHub 에서 이어서 보기

목표

이행(오픈) 작업에 필요한 계획서·체크리스트·백업/릴리스/스모크/롤백 스크립트를
직접 만들고, 실제로 실행해 결과 보고서까지 작성할 수 있게 됩니다.

왜 중요한가

이행은 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.propertiesapp.version 값을 2.0.0 으로 바꾸고,
/root/deploy/deploy.logRELEASE 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 이 본문에 들어가야 합니다.

참고

단계 8개

  1. 이행 계획서 작성
  2. 단계별 체크리스트
  3. 설정 백업 스크립트 작성과 실행
  4. 릴리스 스크립트 작성과 실행
  5. 스모크 테스트 스크립트
  6. 롤백 스크립트
  7. 롤백 판단 기준표
  8. 이행 결과 보고서