CI/CD
CICD 란 무엇일까 CI ( 지속적 통합) CD (지속적 배포 OR 딜리버리)라는 말이다.
쉽게 얘기해서 서비스 개발 단계부터 배포 단계까지 자동화하여 클라이언트에게 빈번이 배포할 수 있도록 만드는 것을 의미한다.
CI
CI를 적용하기 전까지는 개발을 다하고 배포가 되어야만 코드에 어떤 문제점이 있는지 잘 작동하는지를 확인하고 관리 할 수 있었다.
보통 개발자들은 하루에 몇 차례나 코드를 수정할 내용이 있으면 빌드 - > 테스트 -> 코드를 통합시킨다. 이 과정이 하루에 많이 일어나다보니 시간도 시간이고 너무 일을 하는데 있어서 비효율적이었다. 하지만 CI를 적용한 후에는 내가 구현해야할 코드를 구현만 하면된다. 그리고 수동으로 해왔던 빌드 - 테스트 - 코드통합을 자동화로 만들기 때문에 개발자는 개발에만 집중할 수 있다. CI에 간단한 순서는 다음과 같다.
1. 개발자가 코드를 작성한다.
2. 개발자가 작성한 코드를 기존 코드와 병합한다.
3. 병합된 코드가 문제가 있는지 제대로 동작하고 빌드되는지 검증한다.
4. 문제가 있으면 다시 2번으로 돌아가서 진행하고 문제가 없다면 배포를 진행한다.
CD
위에서 CI를 통해 코드가 빌드 됐으면 그걸 신뢰하고 바로 배포한다.
CD는 보통 지속적인 배포로 많이 나타내며 관리하는 개념으로는 다른 하나는 지속적인 제공 사용하기도 한다.
지속적인 제공은 CI를 통해 새로운 소스코드의 빌드와 병합까지 성공적으로 완료되었다면 빌드와 테스트를 거쳐 GIT 저장소에 푸쉬 하는것을 의미한다.
지속적 배포는 성공적으로 병합된 내용을 Git 저장소 뿐 아니라 클라이언트가 사용할 수 있는 배포환경까지 릴리즈 하는것을 말한다.
CI/CD에 대표적인 툴 중 엔 Jenkins,Git Action이 있다. 이 중 나는 Jenkins 를 해본적이 있는데 이후에 Jenkins 말고도 Git Action도 사용 해보고 이 두개 구축하는 방법과 사용하는 방법을 정리해서 나중에 다시 포스팅 하도록 하겠다.
'인프라' 카테고리의 다른 글
[인프라] JupyterHub 설치 (0) | 2023.07.11 |
---|---|
[인프라] AutoScale (0) | 2022.08.21 |