지속적 배포

정의 대기 중입니다.

지속적 배포(Continuous Deployment, CD라고도 함)는 수동 개입 없이 검증된 모든 코드 변경 사항을 자동으로 프로덕션 환경에 배포하는 관행입니다. 이는 성숙한 CI/CD(지속적 통합/지속적 제공) 파이프라인의 최종 단계를 나타냅니다. 코드 통합, 자동 빌드 및 포괄적인 자동 테스트(단위, 통합, 엔드투엔드, 성능, 보안)가 성공적으로 완료된 후, 변경 사항은 사용자에게 자동으로 실시간으로 푸시됩니다. 이를 위해서는 자동화된 테스트 인프라와 시스템의 전반적인 안정성에 대한 높은 수준의 신뢰가 필요합니다. 지속적 배포는 매우 빠른 반복 주기를 가능하게 하여 개발 팀이 코드 커밋 후 몇 분 또는 몇 시간 내에 새로운 기능, 버그 수정 및 개선 사항을 사용자에게 전달할 수 있도록 합니다. 이는 비교할 수 없는 속도와 민첩성을 제공할 잠재력을 가지고 있지만, 내재된 위험을 관리하기 위해 강력한 모니터링, 롤백 기능 및 정교한 테스트 전략도 필수적입니다. 지속적 배포를 채택하는 조직은 종종 캐너리 릴리스(canary releases), 블루-그린 배포(blue-green deployments) 및 기능 플래그(feature flags)와 같은 기술을 사용하여 잠재적인 문제를 더욱 완화합니다.

        graph LR
  Center["지속적 배포"]:::main
  Rel_continuous_delivery["continuous-delivery"]:::related -.-> Center
  click Rel_continuous_delivery "/terms/continuous-delivery"
  Rel_continuous_integration["continuous-integration"]:::related -.-> Center
  click Rel_continuous_integration "/terms/continuous-integration"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

완벽하게 끝나는 순간 바로 선생님 책상으로 숙제를 가져다주는 마법 컨베이어 벨트와 같아요.

🤓 Expert Deep Dive

지속적 배포는 코드 커밋부터 프로덕션 릴리스까지 전체 경로를 자동화하여 지속적 제공(Continuous Delivery)에 존재하는 수동 게이트를 제거합니다. 이 관행은 자동화된 테스트 및 검증 단계에서 거의 완벽한 신뢰 수준을 달성하는 것을 기반으로 합니다. 파이프라인은 기능 정확성, 성능 벤치마크, 보안 취약점 및 운영 요구 사항 준수에 걸쳐 잠재적으로 포괄적인 검사를 포함해야 합니다. 불변 인프라(immutable infrastructure), 마이크로서비스(microservices), 선언적 구성(declarative configuration)과 같은 아키텍처 패턴은 일관성을 촉진하고 롤백을 단순화하므로 지속적 배포에 매우 유리합니다. 롤백 전략 자체도 중요합니다. 자동화되고 빠른 롤백(종종 모니터링 경고에 의해 트리거됨)은 실패를 관리하는 데 필수적입니다. 캐너리 릴리스(일부 사용자에게 점진적으로 출시) 및 블루-그린 배포(동일한 프로덕션 환경 두 개 유지)와 같은 기술은 잠재적 문제의 영향 범위를 최소화하기 위해 일반적으로 사용됩니다. 주요 절충점은 증가된 운영 위험과 가속화된 전달 속도입니다. 성공은 성숙한 엔지니어링 문화, 광범위한 테스트 자동화 및 정교한 관찰 가능성(observability)에 달려 있습니다.

📚 출처