지속적인 업데이트란?

지속적으로 가치를 제공하는 것은 조직의 필수 요구 사항이 되었습니다. 최종 사용자에게 값을 제공하려면 오류 없이 지속적으로 릴리스해야 합니다.

CD(지속적인 업데이트) 는 빌드에서 프로덕션 환경으로 빌드, 테스트, 구성 및 배포를 자동화하는 프로세스입니다. 릴리스 파이프라인여러 테스트 또는 스테이징 환경을 만들어 인프라 생성을 자동화하고 새 빌드를 배포할 수 있습니다. 연속 환경은 점진적으로 더 오래 실행되는 통합, 로드 및 사용자 승인 테스트 작업을 지원합니다.

Illustration of how continuous delivery automates the flow to production..

CD 이전에는 소프트웨어 릴리스 주기가 애플리케이션 및 운영 팀의 병목 현상이었습니다. 이러한 팀은 종종 수동 핸드오프에 의존하여 릴리스 주기 동안 문제를 발생시켰습니다. 수동 프로세스로 인해 신뢰할 수 없는 릴리스가 발생하여 지연 및 오류가 발생했습니다.

CD는 새 코드 또는 구성 요소 가용성에서 배포에 이르는 가장 빠른 경로로 프로덕션을 최신 상태로 유지하는 것을 목표로 하는 린 연습입니다. 자동화는 TTM(배포 시간 및 완화할 시간) 또는 TTR(수정 시간) 프로덕션 인시던트를 최소화합니다. 린 측면에서 CD는 프로세스 시간을 최적화하고 유휴 시간을 제거합니다.

CI(연속 통합) 는 CD 프로세스를 시작합니다. 릴리스 파이프라인은 테스트가 성공적으로 완료된 후 각 연속 환경을 다음 환경으로 단계별로 단계별로 실행합니다. 자동화된 CD 릴리스 파이프라인을 사용하면 테스트가 먼저 빠르게 실행되지 못할 가능성이 가장 높고 더 빠른 테스트가 성공적으로 완료된 후에만 장기 실행 테스트가 수행되는 유효성 검사에 대한 빠른 실패 접근 방식을 사용할 수 있습니다.

IaC(Infrastructure as Code)모니터링의 보완적인 사례는 CD를 용이하게 합니다.

점진적 노출 기술

CD는 "폭발 반경 제어"라고도 하는 점진적 노출을 위한 여러 패턴을 지원합니다. 이러한 방법은 배포에 대한 노출을 제한하여 전체 사용자 기반에 문제가 발생하지 않도록 합니다.

  • CD는 점진적 노출을 위해 여러 배포 링을 시퀀스할 수 있습니다. 링은 사용자 그룹에 대한 배포를 시도하고 해당 환경을 모니터링합니다. 첫 번째 배포 링은 더 광범위한 출시 전에 프로덕션에서 새 버전을 테스트하는 카나리아일 수 있습니다. CD는 한 링에서 다음 링으로의 배포를 자동화합니다.

    다음 링에 배포하는 것은 필요에 따라 의사 결정자가 변경 내용을 전자적으로 서명하는 수동 승인 단계에 따라 달라질 수 있습니다. CD는 규정 절차 또는 기타 제어 목표를 충족하기 위해 승인의 감사 가능한 레코드를 만들 수 있습니다.

  • 파란색/녹색 배포 는 새 녹색 버전이 배포되는 동안 기존 파란색 버전을 라이브로 유지하는 데 의존합니다. 이 방법은 일반적으로 부하 분산을 사용하여 증가하는 트래픽 양을 녹색 배포로 전달합니다. 모니터링에서 인시던트를 검색하는 경우 트래픽을 계속 실행 중인 파란색 배포로 다시 라우팅할 수 있습니다.

  • 기능 플래그 또는 기능 토글 은 실험 및 어두운 발사를 위한 또 다른 기술입니다. 기능 플래그는 ID 및 그룹 멤버 자격에 따라 다른 사용자 그룹에 대해 기능을 켜거나 끕니다.

최신 릴리스 파이프라인을 사용하면 개발 팀이 새로운 기능을 빠르고 안전하게 배포할 수 있습니다. CD는 새 배포로 롤 포워드하여 프로덕션에서 발견된 문제를 신속하게 해결할 수 있습니다. 이러한 방식으로 CD는 고객 가치의 연속 스트림을 만듭니다.

다음 단계