Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

진수개발블로그

[CS] CI/CD 개념 본문

알고리즘공부/CS

[CS] CI/CD 개념

★박진수★ 2024. 6. 26. 23:42

개요

CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표한다.

지속적 통합(CI)은 코드 변경 사항을 공유 소스 코드 리포지토리에 자동으로 자주 통합하는 사례를 나타낸다. 지속적 제공 및/또는 배포(CD)는 코드 변경 사항의 통합, 테스트, 제공을 나타내는 프로세스로, 두 가지 부분으로 구성, 지속적 제공에는 자동 프로덕션 배포 기능이 없는 반면, 지속적 배포는 업데이트를 프로덕션 환경에 자동으로 릴리스한다.

 

CI : 지속적인 통합 / 빌드와 테스트 자동화

CD : 지속적인 전달,배포 / 배포자동화

 

이렇게 연결된 두 사례를 일반적으로 CI/CD 파이프라인이라 부른다.

 

CI/CD의 장점

CI/CD는 버그 및 코드 오류를 예방하는 동시에 지속적인 소프트웨어 개발 및 업데이트 주기를 유지하는 데 도움이 된다.

애플리케이션이 커질수록, CI/CD기능을 활용하면 복잡성을 줄이고 효율성을 높이며 워크플로우를 간소화 할 수 있다.

 

즉, "속도" 와 "효율" 적인 측면에서 강력한 이점이 있다. "Quality at Speed"가 소프트웨어 개발의 이상이라면, 현 시장과 같이 다차원으로 끈임없이 진화되고 있는 개발환경을 고려할때, 고객 요구에 신속하고 유연하게 대응할 수 있는 개발안을 구축하는 것이다.

이러한 문제에 대한 솔루션이 Agile 문화와, DevOps의 한부분으로서 CI/CD개념이 나왔다.

 

일반적인 CI/CD툴

 CI/CD 툴은 팀이 개발, 배포, 테스트를 자동화하도록 지원한다.

 

1. 젠킨스(Jenkins)

현재 실무에서 사용중인 툴, 시장에서 널리 사용되는 CI/CD 도구 중 하나이며, 중앙 빌드 및 지속적인 통합 프로세스가 가능하며, Windows, macOS 및 기타 Unix 계열 운영 체제용 패키지가 포함된 독립형 Java 기반 프로그램이다. 수백개의 플러그인을 사용할 수 있는 Jenkins는 소프트웨어 개발 프로젝트의 빌드 파이프라인 구성, Build 자동화의 확립, 배포 및 테스트 자동화 등을 지원한다.

 

2. GitLab

현 실무에서 사용중인 툴2 , 분산버전 관리 시스템, 무결성, 브랜치생성과 머지의 자유로움 등의 장점이 있다. 주요 퍼블릭 클라우드 공급업체 중 하나

 

3. BamBoo(대나무)

 

이외에도 Spinnaker, GoCd, Concourse,Screwdriver 등의 제품이 있다.

 

참고

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이 (redhat.com)

 

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이

CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.

www.redhat.com