jenkins 에 기초 개념을 잡기 전에 CI/CD 파이프라인에 대해 개념을 잡을 필요가 있다.
jenkins 강의중 youtube를 통해 좋은 강의자료가 있어 내용을 정리해보았다.
[토크ON세미나] Jenkins를 활용한 CI/CD 1강 - 젠킨스(Jenkins) 이해 | T아카데미
https://www.youtube.com/watch?v=JPDKLgX5bRg
1. CI/CD란 무엇인가?
CI: 지속적인 통합
무엇을 통합할건데?
→ 여러 개발자들의 코드를 통합한다.
CD: 지속적인 배포
무엇을 배포하는데?
→ 사용자에게 제품/서비스를 지속적으로 배포한다.
코드베이스가 항상 배포가능한 상태를 유지하는 것.
개발자들이 개발을 하는 개발 환경을 사용자가 사용 가능한 서비스로 전달하는 모든 과정을 지속 가능한 형태로, 또 가능하다면 자동으로 해서 개발자와 사용자 사이의 격차를 없애는 것.
이러한 과정에서는 코드를 빌드하고, 테스트하고 배포하는 활동이 있다.
참고: https://www.youtube.com/watch?v=JPDKLgX5bRg
2. 젠킨스
2-1. 젠킨스의 필요성
java runtime 위에서 동작하는 자동화 서버
빌드, 테스트, 배포 등 모든 것을 자동화 해주는 자동화 서버.
2-2. 기본개념
- Java Runtime Environment 에서 동작
- 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있음
- 일련의 자동화 작업의 순서들의 집합인 Pipeline 을 통해 CI/CD 파이프라인을 구축함
2-2-1. 젠킨스의 플러그인
- 매우 많은 플러그인
- 대표적인 플러그인
2-3. Pipeline
- 파이프라인이란 CI/CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성.
- 두 가지 형태의 Pipeline syntax가 존재
- Declarative
- Scripted Pipeline
- 3년전 강의의 말을 빌리자면.. Declarative Pipeline syntax가 더 최신이고 가독성이 좋다고 하여 이 정리글에서도 Declarative 방식을 사용할 예정..
2-3-1. Jenkins의 구성
- 섹션
- Agent Section : 젠킨스는 여러 다른 Agent에다가 어떤 jenkins에다가 일을 시킬건지.. 젠킨스 노드 관리에서 새로 노드를 띄우거나 혹은 docker 이미지등을 통해서 처리할 수 있음
- Post Section : 스테이지가 끝난 이후의 결과에 따라서 후속 조치를 취할 수 있음
- Stages Section : 어떤 일들을 처리할 건지 일련의 stage를 정의함
- Step Section : 한 스테이지 안에서 단계로 일련의 스텝을 보여줌
EX) 성공시에 성공 이메일, 실패하면 중단 혹은 건너뛰기 등등
- Declaratives : 각 스테이지 안에서 어떤어떤 일들을 할건지
- Steps : Step 내부는 여러가지 스탭들로 구성, 플러그인을 깔면 사용할 수 있는 스텝들이 생겨남
[토크ON세미나] Jenkins를 활용한 CI/CD 2강 - 젠킨스 개발환경 및 CI/CD 기본 동작 이해 | T아카데미
https://www.youtube.com/watch?v=3WZoVkvLE4A
개발 환경 프로세스
- 로컬 PC에서 코드 작성
- 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트
githook 등과 같이 커밋 하기전에 로컬에서 테스트를 돌린다.
- 진행한 내용을 git 과 같은 SCM에 올린다.
흔히 dev 브랜치
- Jenkins가 git레포지토리를 계속 보고있다가 Lint를 돌리고
- 빌드를 돌리고
- 배포한다
- 테스트한다.
인프라를 모듈화 하여 어떤것이 변수인지 잘 설정하고 이를 잘 설계하는것
S3
Share article