▶ CI / CD의 개념:
CI / CD는 continous integration , continous Delivery 라는 용어의 개발 생태계에서 오래전 부터 사용되던 자동화 툴이다.
실제적으로 CI & CD가 의미하는것은 우리가 검증하고 릴리즈 하는 모든 작업을 자동화된 빌드와 테스트 툴을 이용하여 전체적인 과정을 파이프라인화 하여 자동으로 검증하고 자동으로 배포해주는 환경을 만들어
어플리케이션을 생성하는 과정을 자동화 하는것이다.
하지만, Cloud Native 시장이 확산되면서 CICD라는 명칭은 컨테이너화, 배포환경까지의 경로를 자동화하는
일련의 작업들을 전체적으로 CICD라고 부르게 된것 같다.
▶ CI ( Continuous integration )
- 수많은 개발자의 serveral times a day (수시로, 계속적으로) practice ( 코드 작성 ) 을 통합해주는 CI 의 개념
- git 과 같은 SCM툴 ( 소스 컨트롤 메니지 먼트 툴 )이 CI의 popular 솔루션이다.
- 하지만 Cloud Native 시장이 확산되면서 컨테이너 빌드와 도커 빌드, 도커 푸시까지를 CI라고 통상적으로 부르게 되었다.
▶ CD ( Continuous Delivery )
- 가장 효율적인 사이클로 운영 환경까지 릴리즈 배포를 at any time (언제나 ) reliable 하게 하는것을 말한다.
- 젠킨스는 코드를 배포하고 테스트를 하는 역할까지 수행함.
- 젠킨스와 같은 어플리케이션이 CD의 가장 대중적인 솔루션이었다. 하지만 Cloud Native 시장이 확산되면서 점차 젠킨스는 ci 영역 즉, 컨테이너를 만들고 저장소에 push 하는 역할까지만 담당하기도 한다.
- cd 솔루션으로는 argocd를 많이 쓰는데 이는, gitops 개념이 확산되면서 파워풀한 User interface와 추가적인 기능들을 활용하여 젠킨스보다는 보다 사용하기 편리한것 같다.
다음 포스팅에서는 Jenkins와 Github을 연동하여 간단한 파이프라인과 배포 과정을 설명하도록 하겠다.
'DevOps > CICD' 카테고리의 다른 글
[CI/CD] (3) ArgoCD를 사용하는 이유? (0) | 2021.11.05 |
---|---|
[CI/CD] (2) 젠킨스를 사용하는 이유 (0) | 2021.11.04 |