1. CI/CD 개념

  - 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 배포하는 전략 또는 방법

  - 코드통합, 테스트, 릴리즈, 배포(Deployment) 등의 애플리케이션 라이프사이클 전체 과정을 자동화하고 이 과정을 모니터링 가능토록 하는 것. (연속된 과정을 "CI/CD 파이프라인" 이라고도 한다.)

  - 개발자가 아닌 사람도 쉽게 빌드, 배포를 가능하도록 하는 것 -> 개발자는 개발에만 집중


2. 대상 시점

CI와 CD는 세부적으로 아래와 같이 나눠지며, 개발/배포 단계에 적용되는 전략이 달라진다.



3. CI - Continuous Integration

  - 개발자를 위한 자동화 프로세스

  - 개발자간의 코드 충돌을 방지하기 위한 목적

  - 정기적인 빌드 및 테스트(유닛테스트 및 통합테스트)를 거쳐 공유 레포지터리에 병합되는 과정


4. CD(1) - Continuous Delivery

  - 애플리케이션에 적용한 변경사항이 버그 테스트를 거쳐 레포지터리에 자동으로 업로드 되는 것

  - 운영팀은 언제든 실시간으로 이 레포지터리에서 실시간으로 프로덕션 환경으로 배포 가능


5. CD(2) - Continuous Deployment

  - 애플리케이션을 프로덕션 환경으로 배포하는 작업을 자동화 하는 것

  - 서버가 여러 대 일 경우 더욱 중요

  - Continuous Delivery로 통칭하여 언급하기도 함


6. CI/CD 지원 툴

  - Hudson

  - Jenkins

  - Bamboo(상용)

  - 그 외 다양한 툴 존재


7. CI/CD의 핵심 목적

한 번에 많이 수정하지 말고, 조금 수정하여 여러 번 배포하라!




[참고문서]

https://www.redhat.com/ko/topics/devops/what-is-ci-cd


'IT기술 > DevOps' 카테고리의 다른 글

배포 전략: Rolling, Blue/Green, Canary  (1) 2019.03.12

+ Recent posts