CI/CD의 개념
CI (Continuous Integration) : 지속적인 통합
- 코드 변경 사항이 빌드 및 테스트되는 반복작업을 자동화한다. => 코드를 통합한다.
CD (Continuous Delivery or Deployment) : 지속적인 제공 또는 배포
- 코드 베이스가 항상 배포 가능한 상태를 유지하는 것이다. 또는 코드 베이스를 사용자가 사용 가능한 환경에 배포하는 것을 자동화한다.
프로젝트의 CI/CD를 구축하면, 테스트 자동화로 인해 소스의 버그 및 충돌을 방지할 수 있고 배포과정의 단순화로 빠른 배포가 가능하다.
CI/CD Tools
- JenKins- Git actions- AWS Codepipeline
CI/CD Pipeline
git push from developergithub webhook(jenkins pipeline) build docker image - publish docker image
* webhook? 이벤트 핸들러로 webhook을 제공하는 특정 end point에서 webhook Trigger시 이를 특정 로직에 따라 처리하게 된다. 보통 Jenkins에서는 github에 commit을 생성하면 github webhook이 Trigger 되고 Http request의 Post 방식을 이용해 Jenkins에게 해당 데이터를 보낸다. 이를 확인한 Jenkins는 Pipeline에 지정한 로직을 수행한다. (따라서 위의 파이프라인에 맞추어 동작하는 것이다.)
JenKins
Java 기반의 무료 Open Source이다. (Java Runtime Environment)Jenkins에서 Pipeline은 CI/CD를 구현하기 위한 플러그인 모음이다. 이를 이용하면 Jenkins의 Job을 순차적, 병렬적으로 실행시킬 수 있게 된다.Jenkins는 CI 서비스(코드 통합 서비스)를 제공하는 Tool로써 다음과 같은 일을 진행할 수 있다.
1. 프로젝트 환경 세팅 자동화
2. 프로젝트별 구분된 파이프라인 구성
3. 자동화된 정적 테스트를 통한 소스코드 품질 향상
JenKins의 대표 Plugins
- Credentials Plugin
- 배포에 필요한 정보를 가지고 있다. (ex. AWS token, Git access token, secret key, ssh(host name, pwd))
- Jenkins는 Private Network여서 보안상 위험은 없다.
- Git Plugin
git 소스코드를 긁어와서 빌드할 수 있게 함
- Pipeline
핵심 기능이지만, 이것도 플러그인이다.
- Docker Plugin, Docker Pipeline
docker agent를 사용하고 jenkins에서 docker를 사용하기 위함
💭참고 블로그
https://velog.io/@anjaekk/CICD%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-Jenkins%EB%9E%80
CICD의 개념과 Jenkins란
CICD의 기본 개념과 Jenkins에 대해서 알아보자🤵
velog.io
https://onestone-note.tistory.com/38
[Jenkins] Jenkins, CI/CD, Pipeline 이해하기
SKPlanet Tacademy 세미나 영상에 대한 정리 www.youtube.com/watch?v=JPDKLgX5bRg 1. 강의 목표 CI/CD 파이프라인의 기본 개념의 이해 기본적인 운영환경(DEV, QA, PROD)이 어떻게 구성되고 운영되는지 이해 Jenk..
onestone-note.tistory.com
'개념 정리 > 기본 개념' 카테고리의 다른 글
[X11 포워딩] ssh -X 접속 후, Docker 포트 바인딩하는 방법 (0) | 2023.12.27 |
---|---|
[X11 포워딩] WSL환경에서 xhost를 활성화하고, ubuntu 서버에서 화면 띄우기 (feat. VSCODE) (1) | 2023.12.26 |
[Windows] Scoop 개요 및 사용 방법 정리 (0) | 2022.07.13 |
[Docker/도커] 사용방법 정리 (0) | 2022.07.12 |
[JenKins/젠킨스] (2) Pipeline Syntax 실습 코드 작성하는 방법 (0) | 2022.07.12 |