카테고리 없음

젠킨스 문서 백업-젠킨스 파이프라인 작성하기 공부중

예쁜꽃이피었으면 2023. 8. 31. 11:32

1. 1 - 젠킨스(Jenkins) 이해 | T아카데미

https://www.youtube.com/watch?v=JPDKLgX5bRg

 

1. CI/CD란 무엇인가

- CI : 여러 개발자들의 코드베이스를 계속해서 통합하는 것 >

- CD : 코드베이스가 항상 배포가능한 상태를 유지하는 것 / 코드베이스를 사용가능한 환경에 배포하는 것을 자동화 함

 

2. 젠킨스의 기본 개념과 동작 방식

- Java Runtime위에서 동작하는 자동화 서버

- 빌드, 테스트, 배포 등 모든 것을 자동화 해주는 자동화 서버

 

2-1. 젠킨스의 기본 개념과 동작 방식 - 플러그인

1) Credentials Plugin

: 젠킨스는 서버이기 때문에 배포에 필요한 각종 리소스에 접근하기 위해서는 여러가지 중요 정보들을 저장하고 있어야 한다. (계정정보를 젠킨스에 적어도 되는지 의구심이 들 수 있는데, 젠킨스는 자체적으로 RSA암호화를 사용해 공개키 토큰을 발행해 사용하므로 안전하다고 볼 수 있다.

)

2) Pipeline Plugin

: 파이프라인을 관리할 수 있게 해주는 플러그인

3) Docker plugin and Docker Pipeline

: 도커 에이전트를 사용하고 젠킨스에서 도커를 사용하기 위함

 

2-2. 젠킨스의 기본 개념과 동작 방식 - 파이프라인

파이프라인이란?

CI/CD파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성

, 여러 플러그인들을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 파이프라인을 통해 서비스가 배포됨.

Pipeline DSL(Domain Specific Language)로 작성

두가지 형태의 파이프라인 신택스(Pipeline syntax)가 존재(Declarative, Scripted Pipeline)

(Declarative Pipeline syntax가 최신 버전 + 가독성 좋다고 함.)

 

2-3. 젠킨스의 기본 개념과 동작 방식 - 파이프라인 신택스

Sections

1) Agent section

: 젠킨스가 어떤 일을 할 것인지, 여러 slave node를 두고 일을 시킬 수 있다.

젠킨스 노드관리에서 새로 노드를 띄우거나 혹은 docker이미지 등을 통해서 처리할 수 있음

2) Post section

: 스테이지가 끝난 이후의 결과에 따른 후속조치

) 정상작동 시 성공 이메일, 비정상 작동 시 중단 또는 건너뛰기 등..

3) Stages section

: 어떤 일을 처리할지 stage를 정의 ( = 카테고리)

) 빌드 스테이지, 프론트엔드 배포 스테이지..

 

3-1) Declaratives

각 스테이지 안에서 어떤 일할지 정의하는 것

- Environment

: 어떤 pipeline이나 stage scope의 환경변수 설정

- parameters

: 파이프라인 실행 시 파라미터 받음

- trigger

: 어떤 형태로 트리거 되는가

- when

: 언제 실행되는가

Stage, options 등의 Declarative가 있음

 

4) Steps section

: 한 스테이지 안에서의 단계로 일련의 스텝을 보여줌

 

 

 

 

 

 

 

 

2. 2 - 젠킨스 개발환경 및 CI/CD 기본 동작 이해

https://youtu.be/3WZoVkvLE4A

 

3. 개발 환경 및 CI/CD의 기본 동작 이해 - 개발환경의 종류

1) 개발자가 개발을 하는 Local환경 (자신의 workspace안에서 일을 함)

2) 개발자들끼리 개발 내용에 대한 통합 테스트를 하는 Development환경

3) 개발 후 QA엔지니어 및 내부 사용자들이 사용해보기 위한 QA환경

4) 실제 유저가 사용하는 Production환경

 

3. 개발 환경 및 CI/CD의 기본 동작 이해 - 여러 배포 환경의 관리

"인프라를 모듈화 해 어떤 것이 변수인지 잘 설정하고 잘 설계할 것"

: app_env처럼 현재 배포하고자 하는 것이 어떤 환경인지 설정하고 앱 내에서 사용하는 다양한 변수들을 app_env에 맞게 잘 가져다 쓰는 것이 핵심

 

서비스 내부의 변수 뿐만 아니라 클라우드 리소스를 많이 활용해서 개발하는 요즘에는 클라우드 리소스 내에서 인프라별 키 관리가 매우 중요해서 aws system managerparameter store와 같은 키 관리 서비스는 쓰는 것도 좋다.
(https://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/services-parameter-store.html)

- dev prodaws서버도 따로, aws계정도 따로 생성하여 사용 => 물리적 분리

 

 

3. 3 - 젠킨스 CI/CD 파이프라인 구성 실습

https://youtu.be/GOLHN3FHjpI

 

 

 

4. 4 - 젠킨스 CI/CD 파이프라인 구성 실습(2)

https://youtu.be/HVqG59Wtc5c

반응형