CI/CD Release Safety
CI/CD Release Safety 관련 장애 문제 105개를 모았습니다. 검수된 문제부터 풀어 보세요.
먼저 읽을 가이드
CI cache가 잘못된 dependency graph를 복원할 때cache hit 이후에도 package.json, lockfile, artifact 기준이 서로 맞지 않는 상황CI/CD2분 읽기GitHub Actions 성공 후 rollout만 실패하는 경우빌드 로그는 정상인데 배포 대상 cluster나 runtime에서만 장애가 드러나는 상황CI/CD3분 읽기GitHub Actions는 성공했는데 배포만 실패할 때 점검 순서workflow는 green인데 rollout, promotion, health check 단계에서만 실패하는 상황CI/CD2분 읽기
추천 문제
검수된 문제를 먼저, 그다음 시나리오가 자세한 문제를 보여 줍니다.
CICD-064앱 배포는 끝났는데 Helm 업그레이드가 post-upgrade 훅에서 시간 초과주문 서비스 v5.1을 Helm으로 운영에 배포했습니다.검수CI/CD중급20분무료CICD-103카나리가 승인됐는데 새 버전이 500을 쏟아냄: 배포된 매니페스트에 readiness probe가 없음API 카나리 배포가 Argo CD에서 Healthy로 표시되고 자동 승격까지 됐는데, 승격 직후 오류율이 급증해 긴급 롤백했습니다.검수CI/CD중급18분무료CICD-116장애 중 승인된 롤백 버전을 배포하려는데 레지스트리에 이미지가 없음결제 API v2.9.0 배포 뒤 환불 처리에 오류가 생겨, 변경 관리 기록에 '승인된 되돌림 버전'으로 적혀 있는 v2.8.4로 롤백하기로 했습니다.검수CI/CD중급16분무료
모든 문제 105개
CICD-103카나리가 승인됐는데 새 버전이 500을 쏟아냄: 배포된 매니페스트에 readiness probe가 없음API 카나리 배포가 Argo CD에서 Healthy로 표시되고 자동 승격까지 됐는데, 승격 직후 오류율이 급증해 긴급 롤백했습니다.검수CI/CD중급18분무료CICD-064앱 배포는 끝났는데 Helm 업그레이드가 post-upgrade 훅에서 시간 초과주문 서비스 v5.1을 Helm으로 운영에 배포했습니다.검수CI/CD중급20분무료CICD-116장애 중 승인된 롤백 버전을 배포하려는데 레지스트리에 이미지가 없음결제 API v2.9.0 배포 뒤 환불 처리에 오류가 생겨, 변경 관리 기록에 '승인된 되돌림 버전'으로 적혀 있는 v2.8.4로 롤백하기로 했습니다.검수CI/CD중급16분무료CICD-070정적 자산 배포가 Content-Encoding 메타데이터 없이 사전 압축 파일을 업로드릴리스는 초록으로 끝나는데 브라우저가 깨진 asset을 내려받습니다 — 객체 메타데이터가 파이프라인이 올린 사전 압축 파일과 더 이상 맞지 않습니다.CI/CD중급16분무료CICD-095파이프라인 트리거가 patch 태그를 제외해 릴리스 브랜치 hotfix가 마이그레이션 단계를 우회배포는 초록인데 hotfix가 옛 스키마 위에서 돕니다 — 브랜치별 트리거가 마이그레이션 워크플로를 건너뛰었습니다.CI/CD중급17분무료CICD-108보안 게이트가 돌기 전에 아티팩트 보존이 SBOM을 지워, attestation 검증이 의존성 목록 누락을 보고빌드는 잘 끝나는데 지연된 보안 작업이 규정 준수를 검증하지 못합니다 — 아티팩트 정책이 필요한 소프트웨어 자재 명세를 너무 일찍 정리했습니다.CI/CD중급17분무료CICD-107릴리스 freeze 로직이 UTC로 비교하는데 업무 freeze 캘린더는 현지 시간으로 관리돼 hotfix가 잘못 차단됨정책 엔진과 캘린더 소스가 freeze 창을 정의하는 타임존을 두고 어긋나, 한 리전에서는 배포가 되고 다른 리전에서는 안 됩니다.CI/CD중급15분무료CICD-114스테이징 alias가 제거되며 기본 environment가 바뀌어 ChatOps 릴리스 명령이 운영을 대상으로 함운영자가 늘 쓰던 같은 명령을 실행하는데 명령 라우터가 기본 대상 이름 변경 탓에 이제 운영으로 해석합니다.CI/CD중급15분무료CICD-130패키지 registry가 불변 태그를 강제하는데 재시도 단계가 계속, 우연히 같은 버전을 먼저 차지한 더 오래된 아티팩트로 릴리스를 가리킴자동화 재시도가 다른 곳에서는 안정성을 높이는데, 여기서는 일시적 게시 문제를 오래된 릴리스 아티팩트로 굳혀 버립니다.CI/CD중급15분무료CICD-123릴리스 freeze 면제 워크플로가 배포를 승인했는데 감사 아티팩트 업로드 단계가 돌지 않아 나중에 미승인 실행으로 취급됨운영은 실시간으로 배포를 풀어 주는데 규정 준수 롤백이 시작됩니다 — 증적 경로가 면제 결정에서 분리돼 있었습니다.CI/CD중급16분무료CICD-126프리뷰 데이터베이스 시딩이 운영급 rate limit을 써서, environment TTL이 만료되기 전에 readiness 게이트가 끝나지 않음preview 스택은 맞는데 데이터 예열이 수명주기 컨트롤러가 허용하는 시간보다 오래 걸립니다.CI/CD중급16분무료CICD-097S3 정적 사이트 배포가 새 자산은 업로드하는데 옛 서명 URL이 manifest에 그대로 박혀 있음파일은 버킷에 있는데 클라이언트가 계속 실패합니다 — 생성된 manifest가 아직 이전 빌드의 낡은 서명 asset URL을 참조합니다.CI/CD고급16분ProCICD-110Argo CD ignoreDifferences가 서비스 계정 annotation의 drift를 가려, 동기화 때 워크로드가 클라우드 신원을 잃음Git과 클러스터는 동기화된 것처럼 보이는데 런타임 신원이 깨졌습니다 — diff 무시 규칙이 pod를 클라우드 role에 묶는 바로 그 annotation을 가렸습니다.CI/CD고급18분ProCICD-133blue-green DNS 전환은 성공했는데 CDN origin 고정이 옛 백엔드에 남아 트래픽 일부가 끝내 옮겨가지 않음authoritative 이름은 제대로 가리키는데 상류에 캐시된 origin 메타데이터가 사용자를 폐기된 스택에 계속 붙잡아 둡니다.CI/CD고급18분ProCICD-155blue-green 전환이 공개 ALB 타깃 그룹은 갱신했는데 내부 서비스 디스커버리가 계속 blue 스택으로 해석돼 백그라운드 작업이 거기에 계속 씀정문은 깔끔히 옮겨졌는데 내부 호출자는 이전 환경에 그대로 남습니다 — 다른 디스커버리 소스를 씁니다.CI/CD고급18분ProCICD-113서명이 tarball provenance는 검증하는데 배포는 attest된 적 없는 OCI 참조를 소비릴리스 리포트는 검증된 artifact를 보여주는데 런타임 이미지는 서명 단계가 다룬 객체와 다른 참조 경로에서 왔습니다.CI/CD고급18분ProCICD-068blue-green 전환 후에도 CloudFront가 계속 오래된 index.html을 서빙새 환경은 정상인데 사용자가 계속 옛 asset 집합 참조를 로드합니다 — 캐시 무효화와 origin 전환 순서가 맞춰지지 않았습니다.CI/CD고급19분ProCICD-204blue-green 전환이 공개 ingress는 옮겼는데 내부 서비스 디스커버리는 직전 스택에 남음 (failover 리허설 중)공개 트래픽은 깔끔히 옮겨가는데 배치나 백엔드 호출자가 계속 옛 environment에 씁니다. failover 리허설에서 standby나 대체 경로가 활성화되기 전까지는 평상시 트래픽이 문제를 감췄습니다.CI/CD고급19분ProCICD-079가변 이미지 태그 때문에 ECS 롤백이 실패한 릴리스보다 더 새로운 빌드를 pull롤백 로직은 이전 task definition을 가리키는데 서비스가 계속 엉뚱한 컨테이너를 띄웁니다 — 두 리비전이 같은 가변 이미지 태그를 참조합니다.CI/CD고급19분ProCICD-091릴리스 manifest가 스테이징 registry에만 있는 digest를 가리킴승격 메타데이터는 유효해 보이는데 운영이 이미지를 pull하지 못합니다 — 참조된 digest가 대상 레지스트리로 복제된 적이 없습니다.CI/CD고급19분Pro