CI/CD 란?
1. CI (Continuous Integration)
CI는 “지속적 통합 (=Continouous Integration)” 의 줄임말입니다. 일반적으로 변경된 코드가 하나의 코드로 통합되기까지는 아래 3단계를 거치게 됩니다.
- 개발자가 변경한 코드를 기존 코드에 반영
- 변경 된 코드가 빌드 및 테스트 시나리오 내에서 에러가 발생하지 않는지 점검
- 테스트를 통과 시 기존 코드에 통합
CI는 위 3단계 프로세스를 자동화하는 것을 목표로 합니다. 개발 결과에 대한 테스트 및 통합을 자동화하여 새로 개발된 애플리케이션 기능에 대한 안정성을 보장합니다.
2. CD (Continuous Delivery/Deployment)
CD는 “지속적 제공 (=Continouous Delivery)” 및 “지속적 배포 (=Continouous Deployment)” 의 줄임말입니다. 하지만 아래 설명과 같이 2개 단어는 엄밀히는 동의어가 아닙니다.
- Continouous Delivery는 CI를 통해 검증된 코드를 개발팀이 수동으로 운영에 배포를 진행합니다.
- Continouous Deployment 는 CI를 통해 검증된 코드가 자동으로 운영 배포가 진행됩니다.
사실 배포의 완전 자동화는 상황에 따라 불리할 수 도 있습니다. 운영 배포에 필요한 시나리오를 스크립트화 해두고 개발팀 정책에 따라 적합한 방식을 선택하면 될 것으로 보입니다.
3. CI/CD 란?
CI/CD는 위에서 언급한 CI 와 CD를 연결한 개념입니다. 연결되었을 때의 전체 프로세스는 아래 이미지에서 볼 수 있듯 "개발-테스트-배포"까지 일련의 과정을 자동화 하는 것을 의미합니다. 자동화는 작업 시간을 단축시켜 생산성의 향상을 가능하게 하며, 작업 과정에서 발생할 수 있는 휴먼 에러를 제거할 수 있기 때문에 산출물 품질의 향상을 가능하게 합니다. 또한, 이러한 장점 덕분에 CI/CD 는 DevOps 방법론에서 핵심적인 개념이 됩니다.
4. CI/CD 도구
앞서 설명한 CI/CD 파이프라인을 쉽게 구성할 수 있도록 지원해 주는 오픈소스 및 유료 도구는 이미 많이 존재하고 있으며, 아래 이미지는 2020년 기준 Top5 CI/CD 도구들을 비교한 자료입니다.
연관 게시글
[DevOps] DevOps 란?
1. DevOps? 몇 년 전부터 IT 분야에 종사하거나 관심이 있는 분들은 DevOps라는 말을 한 번쯤은 들어보셨을 겁니다. DevOps는 특별한 소프트웨어 또는 기술이 아니라 문자 그대로 개발(Dev)과 운영(Ops)이
brightchords.tistory.com
참조
'IT' 카테고리의 다른 글
[Docker] Docker Swarm 이란? (0) | 2024.02.21 |
---|---|
[Docker] Docker 란? (0) | 2024.02.20 |
[Container] Container Orchestration (0) | 2024.02.19 |
[Container] Container 란? (0) | 2024.02.18 |
[DevOps] DevOps 란? (0) | 2024.02.12 |