39장. CI/CD가 동일 artifact를 승격하게 한다
pipeline은 source checkout, Wrapper test, dependency/SBOM, image build, vulnerability policy, signing, registry push, ephemeral integration, migration dry run, staging deploy, smoke, approval, production canary 순서다. 환경별로 다시 build하지 않고 같은 digest를 승격한다. provenance에는 commit, builder, dependency lock, digest를 연결한다.
CI가 AWS에 접근할 때 OIDC subject·repository·branch·environment 조건을 role trust에 제한한다. PR과 fork는 production role을 얻지 못한다. deployment 권한과 migration 권한을 분리하고 승인 로그를 남긴다. secret을 command line이나 build arg로 image layer에 넣지 않는다.
canary는 pod가 뜬지만 보지 않고 HTTP 오류·p95·JVM·DB pool과 HIGH 항목 확인 성공률을 stable과 비교한다. 자동 rollback은 schema 호환을 확인한 구간에서만 수행한다. 실패 artifact와 canary query를 보존해야 다음 release에서 같은 장애를 막는다.