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 |
---|