diff --git a/ROLLBACK_PLAN.md b/ROLLBACK_PLAN.md new file mode 100644 index 0000000..bb25df2 --- /dev/null +++ b/ROLLBACK_PLAN.md @@ -0,0 +1,99 @@ +# 롤백 계획 + +## 1. 개요 + +본 문서는 런타임 역할 전환 작업 중 문제가 발생할 경우를 대비한 롤백 절차를 정의합니다. + +## 2. 롤백 실행 기준 + +### 2.1 자동 롤백 기준 +다음 조건 중 하나라도 충족되면 자동 롤백이 실행됩니다: +- 테스트 통과율이 95% 미만일 경우 +- Critical/High 보안 취약점이 발견된 경우 +- 배포 후 5분内有错误率 > 1%일 경우 + +### 2.2 수동 롤백 기준 +다음 조건 중 하나라도 충족되면 수동 검토 후 롤백을 결정합니다: +- 성능 테스트 결과가 기준 미달성인 경우 +- 정적 분석에서 High 레벨 결함이 발견된 경우 +- 운영 환경에서 예기치 않은 동작이 발생한 경우 + +## 3. 롤백 절차 + +### 3.1 단계 1: 상황 평가 (2분) +1. 에러 로그 및 메트릭 확인 +2. 영향 범위 파악 +3. 롤백 필요성 판단 + +### 3.2 단계 2: 롤백 준비 (5분) +1. 백업 존재 여부 확인 +2. 롤백 타겟 버전 확인 +3. 관련 팀원에 알림 발송 + +### 3.3 단계 3: 롤백 실행 (10분) +1. 데이터베이스 마이그레이션 롤백 +2. 애플리케이션 버전 롤백 +3. 설정 파일 복원 + +### 3.4 단계 4: 검증 (15분) +1. 기본 기능 테스트 실행 +2. 모니터링 대시보드 확인 +3. 로그 이상 여부 확인 +4. 주요 API 응답 시간 측정 + +### 3.5 단계 5: 사후 처리 (30분) +1. 인시던트 보고서 작성 +2. 근본 원인 분석 +3. 재발 방지 조치 수립 + +## 4. 롤백 후 검증 체크리스트 + +- [ ] 애플리케이션 시작 성공 +- [ ] 기본 CRUD 기능 정상 동작 +- [ ] 인증/인가 기능 정상 동작 +- [ ] 모니터링 메트릭 정상 수집 +- [ ] 에러율 기준선 복귀 +- [ ] 응답 시간 기준선 복귀 + +## 5. 연락처 + +| 역할 | 이름 | 연락처 | +|------|------|--------| +| 프로젝트 매니저 | PM | pm@example.com | +| 개발 리드 | Tech Lead | tech@example.com | +| DevOps | DevOps Engineer | devops@example.com | + +## 6. 롤백 스크립트 + +```bash +#!/bin/bash +# 롤백 실행 스크립트 + +# 환경 변수 설정 +export ROLLBACK_VERSION="v1.2.3" +export DEPLOY_ENV="production" + +# 롤백 실행 +echo "롤백 시작: $ROLLBACK_VERSION" + +# 데이터베이스 마이그레이션 롤백 +echo "데이터베이스 마이그레이션 롤백 실행" +# ./rollback-db.sh + +# 애플리케이션 배포 롤백 +echo "애플리케이션 배포 롤백 실행" +# kubectl rollout undo deployment/app + +# 설정 파일 복원 +echo "설정 파일 복원" +# ./restore-config.sh + +echo "롤백 완료" +``` + +## 7. 복구 시간 목표 (RTO/RPO) + +| 지표 | 목표 | +|------|------| +| RTO (Recovery Time Objective) | 30분 | +| RPO (Recovery Point Objective) | 5분 |