본문 바로가기
IT & Tech 정보

🛠️ GitOps 기반 데이터 마이그레이션 자동화: PR 단위 DB 변경 추적, 롤백, 그리고 승인 체계까지

by 지식과 지혜의 나무 2025. 5. 29.
반응형



🔍 왜 이 전략이 필요한가?

일반적인 DevOps 파이프라인에서는 DB 마이그레이션이 애플리케이션 배포보다 취약한 고리입니다.
하지만 실리콘밸리의 상위 기업들은 GitOps 방식으로 DB 마이그레이션까지 자동화하고 있습니다.
이렇게 하면 다음과 같은 문제가 해결됩니다:
• PR별 DB 변경 추적 → Git commit으로 남김
• 승인 없는 직접 마이그레이션 방지 → 프로덕션 보호
• PR머지 전 마이그레이션 Dry-run → 에러 사전 차단
• 롤백 전략 포함 → 실시간 장애 대응 가능



🧱 전체 아키텍처 요약

개발자 → 마이그레이션 파일 커밋 (예: Prisma, Liquibase, Alembic 등)
   ↓
GitHub Actions에서 자동 dry-run 테스트
   ↓
Helm or Kustomize로 preview 환경 배포
   ↓
PR Merge → 실제 마이그레이션 실행 (ArgoCD 연계 or Flyway job)
   ↓
문제 발생 시 Git 태그 기반 자동 롤백 수행




🧪 예시: Prisma + GitHub Actions + ArgoCD

📂 Repository 구조

infra/
  ├── k8s/
  │   ├── preview/
  │   └── prod/
  └── migrations/
      ├── 20240528_add_customer_table/
      └── 20240601_rename_column_x/




🔧 GitHub Actions - Dry-run (PR 시)

name: DB Migration Dry-run

on:
  pull_request:

jobs:
  dry-run:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Dry-run prisma migration
        run: |
          npx prisma migrate dev --preview-feature --skip-generate --name test-run




✅ GitHub Actions - 실제 실행 (머지 후)

name: Apply Migration

on:
  push:
    branches:
      - main

jobs:
  migrate:
    runs-on: ubuntu-latest
    steps:
      - name: Apply migration to production
        run: |
          npx prisma migrate deploy




🔁 실패 대응: Git tag 기반 롤백

# Tag 이전 버전으로 되돌리기
git checkout tags/prev-stable
npx prisma migrate reset




🛡️ 승인 정책 및 보안
• GitHub CODEOWNERS를 통해 migrations/ 디렉토리 PR에는 DB 관리자 승인 필수
• ArgoCD의 automated sync 대신 manual sync + 승인체계로 운영 가능
• Flyway의 경우 SQL checksum 기능으로 커밋 위조 방지 가능



💡 이 전략을 통해 가능한 추가 확장

기능 설명
CI에서 Schema Drift 탐지 현재 DB 상태 vs 예상 스키마 비교
롤링 마이그레이션 Kubernetes Job으로 특정 시간대만 적용
Shadow Database 전략 실제 트래픽 복제 → 신규 스키마로 테스트
Slack 알림 DB 변경 내역 요약 메시지 자동 발송




🧠 결론

이 전략은 단순한 코드 자동화가 아닙니다.
**“인프라 변경을 코드 수준에서 감시하고 승인하며, 완전 자동화된 롤백까지 포함하는 DB GitOps 완성형 구조”**입니다.

SRE, DBA, DevOps 모두가 안전하게 협업할 수 있도록 설계된 이 구조는 특히 대형 마이크로서비스 환경, 데이터 규제가 엄격한 산업(금융/의료)에서 매우 유효합니다.

반응형