Buttercups - Powerpuff Girls

개념 정리/기본 개념

[JenKins/젠킨스] (1) CI/CD, Pipeline, Jenkins의 개념

jeonga 2022. 7. 12. 16:00

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