무중단 배포: 워크플로우 및 인프라
롤링 배포는 명시적인 혼합 버전 호환성 창과 롤백 규칙을 갖춘 확장-마이그레이션-축소 단계를 따르며, 스키마 및 API 변경 중에 이전 및 새로운 바이너리가 안전하게 공존하도록 합니다.
패키지 상태: AI 지원 참조 패키지. 정적 패키지 검증은 통과했으나, 구현 시나리오는 실행되지 않았으며 안정적인 도입 전에는 인간 도메인 검토가 필요합니다.
결정
무중단 배포는 병렬 변경으로 모델링됩니다: 플랫폼을 확장하여 이전 및 새로운 동작을 모두 수용하고, 혼합 버전이 실행되는 동안 트래픽과 데이터를 마이그레이션하며, 호환성 창이 닫힌 후에만 불필요한 경로를 제거하여 축소합니다. 각 릴리스는 혼합 버전 간격에서 안전한 API 및 스키마 기능과, 마이그레이션이 이미 진행된 상태에서 새 바이너리가 롤백될 경우 롤백 동작을 선언합니다. 롤백은 단일 원자적 전환을 가정하지 않으며, 지원되는 혼합 상태와 지속 기간을 정의합니다.
범위
- 릴리스 단계 게이트: 확장, 마이그레이션, 축소.
- API 리더/라이터 및 데이터베이스 스키마 수준의 혼합 버전 매트릭스.
- 새 코드가 롤백되었지만 확장 단계 아티팩트가 남아 있을 때의 롤백 창 정책.
- 마이그레이션 중 헬스 게이트와 함께하는 트래픽 전환 조정.
- 혼합 버전 상태가 정체된 경우 운영자 런북.
이 블록 외부
- 컨테이너 빌드 및 레지스트리 프로모션 메커니즘.
- 배포 게이팅을 넘어선 기능 플래그 제품 의미론.
- 손실된 리전의 전체 재해 복구.
계약
- 모든 배포 가능 아티팩트는 프로모션 전에 최소 호환 스키마 세대와 동료 바이너리 버전 범위를 선언합니다.
- 확장 단계는 마이그레이션 트래픽이 프로파일 임계값을 초과하기 전에 완료되어야 합니다.
- 창 내의 이전 바이너리는 매트릭스에 따라 새로 추가된 널 허용 스키마 및 알 수 없는 필드를 견뎌야 합니다.
- 새 바이너리는 이전 행을 읽고 축소 단계가 시작될 때까지 이중 호환 형식을 작성해야 합니다.
- 축소 단계는 혼합 버전 오류율 및 백로그 지표가 예산 내에 있을 때만 실행됩니다.
- 롤백 창 내에서는 부분 마이그레이션 후에도 이전 바이너리로의 롤백이 계속 지원됩니다.
- 롤백 창 만료 후에는 순방향 마이그레이션에 대해 명시적 운영자 승인과 문서화된 복구가 필요합니다.
구현 지침
- 호환성 매트릭스 항목을 배포 오케스트레이션에서 사용하는 버전 관리 구성으로 인코딩합니다.
- 확장 단계에서는 추가적 스키마 마이그레이션을 사용하고, 축소 단계에서만 파괴적 삭제를 수행합니다.
- 배포 단계 메트릭 라벨을 발행하여 대시보드에서 환경별 확장/마이그레이션/축소 단계를 표시합니다.
실패 처리 및 안전장치
- 마이그레이션 오류율이 중단 임계값을 초과하면 트래픽 전환을 중단하고 확장 경로를 활성 상태로 유지합니다.
- 이전 바이너리가 0% 이상의 프로덕션 트래픽을 받는 동안에는 되돌릴 수 없는 데이터 변환을 절대 실행하지 않습니다.
- 혼합 버전 간격은 최대 지속 시간이 있으며, 이를 초과하면 릴리스 담당자에게 알림이 전송됩니다.
검증 및 운영
- 혼합 버전 지속 시간, 롤백 연습, 스키마 세대 편차, 비호환 요청률을 측정합니다.
- 마이그레이션이 부분적으로 적용된 상태에서의 게임 데이 롤백은 롤백 창 정의 내에서 성공해야 합니다.
- 대상 저장소에서 수용 시나리오를 실행합니다; 패키지화된 시나리오는 실행된 증거가 아닙니다.
도입 가정
example.yaml및compatibility-matrix.yaml의 값은 프로파일 선택이며 보편적 기본값이 아닙니다.- 팀은 버전 식별자, 트래픽 컨트롤러 및 마이그레이션 도구를 로컬에서 매핑합니다.