메뉴

문서정보

목차

Continuous delivery

Continuous delivery(CD 혹은 CDE, 지속적인 전달)는 팀이 짧은 주기로 소프트웨어를 생산하는 방식으로 소프트웨어를 안정적으로 출시할 수 있도록하는 엔지니어링 방식이다. 빠른 속도와 잦은 빈도로 소프트웨어를 개발하고, 테스트를 끝내고 출시하는게 목표다. 이 접근법을 이용하면 응용 프로그램을 보다 점진적으로 개선하고 변경 사항을 업데이트 할 수 있게 된다. 소프트웨어의 기능이 변경되면 리스크가 따르기 마련인데, 잦은 사이클로 테스트와 출시를 반복하기 때문에 리스크를 최소화 할 수 있다. CD를 위해서는 간단하고 반복가능한 소프트웨어 배포 프로세스를 개발해야 한다.

DevOps와의 관련성

DevOps와 CD는 그 의미가 비슷하고 겹치는 경우가 많은데, 두 가지 다른 개념이 있다. DevOps는 개발자, 운영자, QA, 보안 등 다양한 팀의 협업과 소프트웨어 개발&전달&출시 프로세스를 자동화하는 광범위한 문화적 변화에 무게중심이 가 있다. 반면에 CD는 전달측면을 자동화 하는 좀더 세분화되고 기술적인 실행을 중요시한다. 결과적으로 DevOps 활동의 실질적인 실행 측면에서 CD가 수행 될 수 있으며, CD의 수행결과가 DevOps 활동으로 이어질 수 있다.

지속적인 배포(Continous deployment)와의 관계

지속적인 전달은 메뉴얼한 릴리즈 수행에 따라서 언제든지 배포할 수 있는 시스템이다. 지속적인 배치를 위해서는 지속적인 전달이 가능해야 한다.

CD의 원칙

 CD priciples

코드가 릴리즈 되기 전까지, 빌드/유닛테스트, 자동화된 통합테스트, 사용자 테스트 등을 거쳐야 한다. 이 모든 과정을 통과해야지만 코드가 릴리즈 될 수 있다. 이러한 과정 특히, 빌드와 테스트 그리고 레포팅 과정은 모두 자동화해야 한다.

CD는 언제든지 고객에게 소프트웨어가 전달될 수 있음을 이해하는 것이 중요하다. 긴주기로 소프트웨어를 전달하고 있는 개발자 혹은 팀이라면 CD 환경에 적응하기 위해서 사고방식/개발 툴을 변경해야 할 수 있다.

예를들어 토글 같은 기능을둬서 사용준비가 되지 않은 코드를 사용 할 수 없게 할 수 있는데, 이는 특정 기능의 개발이 끝나지 않았더라도, 다른 준비된 기능은 빠르게 전달하도록 할 수 있다. NoSQL을 사용하면 데이터 마이그레이션 및 스키마 변경 단계를 생략 할 수 있다. 코드 브랜치 전략도 수정해야 할 수 있다. CD의 경우 여러 개의 긴 코드 브랜치를 실행하는 방식을 지양한다.

Deplyment pipeline

배포 파이프라인을 구축해서 CD가 가능하도록 해야 한다. 배포 파이프라인의 목적은 가시성, 피드백, 지속적 배포를 충족하는데 있다.

툴들

CD는 소스 버전 컨트롤부터 릴리즈까지의 과정을 자동화할 수 있어야 한다. 이 과정의 일부 혹은 전부의 자동화를 수행하기 위한 다양한 툴들이 있다. 여기에는 CI(continuous integration), build automation, application lifecycle management 영역의 툴들이 필요하다.

CD를 위한 아키텍처

CD를 효과적으로 수행하기 위해서, 애플리케이션들은 deployability, modifiability, testability와 같은 아키텍처 중요 요구사항(Architecturally significant requirements - ASRs)을 충족해야 한다. 쉽게 배포되고, 쉽게 수정되고, 쉽게 테스트 할 수 있도록 개발해야 한다는 의미가 되겠다.

마이크로서비스는 종종 CD를 위한 아키텍처로 사용된다. MSA(Micro service architecture)를 사용하면 소프트웨어의 deployability, modifiability 를 높일 수 있다. 다만 소프트웨어가 분산되면서 testability는 떨어질 수 있으므로 주의가 필요하다. MSA는 점진적 기능 변경을 위해서 보다 짧은 개발주기, 쉬운 기술의 선택, 쉬운 언어, 쉬운 라이브러리의 사용을 권장한다.

현실에서의 적용

Jez Humble과 David Farley가 저술한 CD Book이 CD 용어를 대중화 시켰다. 지금도 계속 발전하고 있으며, Yahoo.com, Amazon.com, Facebook, Google, Paddy Power, Wells Fargo 등의 기업들이 이러한 접근방법을 사용하고 있다.

장점과 단점(장애물)

CD의 알려진 장점은 아래와 같다. 아래와 같은 단점들도 보고됐다.

참고