DevOps
CI/CD 파이프라인
아임다디
2022. 2. 21. 18:13
DevOps 개념을 배우다 보면, 지속적 배포, 지속적 통합, 지속적 전달이라는 개념들을 접할 수 있다.
지속적 배포를 위해 CI, CD 파이프라인이 만들어지게 되었는데 한 번 내용을 살펴보자
지속적 통합 (Continuous Integration)
code
-> build
-> test
단계를 뜻한다.
여기서 code
와 build
는 개발자의 영역이다.
- code : 개발자가 코드를 저장소에 push
- build : 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드
- test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인
지속적 통합(CI) 과정의 필요성
- 버그를 조기에 발견
- 테스트가 완료된 코드를 빠르게 전달 가능
- 지속적인 배포를 가능하도록 함
지속적 전달 (Continuous Delivery)
지속적 통합에 성공한 경우 지속적 전달로 이어진다
이 때, 지속적 통합에 반드시 성공한 경우에만 배포로 이어질 수 있다test
이후, release
-> deploy
-> operate
단계를 뜻한다.
- release : 배포 가능한 소프트웨어 패키지를 작성한다. 배포에 적합한 빌드를 선정함
- deploy : 프로비저닝을 진행한다. 서비스를 사용자에게 배포 서버를 통해 노출하는 과정
- operate : 서비스에 생길 수 있는 현황을 파악하고 문제를 감지한다
프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. (출처 : 위키피디아)
출시 vs 릴리즈
- 출시 : 상품이 시장에 나오거나 내보냄. 비즈니스 관점에서 용어로 사용
- 릴리즈 : 배포 가능한 소프트웨어 패키지. 애자일 소프트웨어 개발에서의 의미로 한정한다
지속적 배포 (Continuous Deployment)
지속적 배포 = 지속적 통합 + 지속적 전달 = CI/CD 파이프라인
모든 코드의 변경이 배포로 이어진다
개발부터 배포까지 모든 단계를 자동화하는 것이 지속적 배포의 핵심이다
특히, 통합, 테스트, 배포 단계에서 모니터링 및 자동화를 통해 개발 프로세스를 향상시키고 이는 CI/CD 파이프라인의 진가를 드러낸다
이러한 CI/CD 파이프라인은 DevOps 방식을 통해 더 효과적으로 소프트웨어를 제공하도록 한다.