티스토리 뷰
CI/CD란?
CI
- Continuous Integration : 지속적인 통합
- 여기서 통합은 코드의 통합을 의미한다. 여러 개발자들의 코드베이스를 계속해서 통합하는 것.
CD
- Continuous Delivery : 지속적인 배달
- 사용자에게 제품을 서비스를 지속적으로 배달한다는 것.
- 코드베이스가 항상 배포가능한 상태를 유지하는 것이다.
CD
- Continuous Deployment : 지속적인 배포
- 코드베이스를 사용자가 사용가능한 환경에 배포하는 것을 자동화하는 것.
즉, CI/CD란 각각의 개발자들이 개발하는 개발 환경을 사용자가 사용 가능한 서비스로 전달하는 모든 과정을 지속 가능한 형태로 또 가능하다면 자동으로 해서 개발자와 사용자 사이의 격차를 없애는 것이다.
모든 과정 : 코드의 빌드, 테스트, 배포 하는 활동이 있다.
CI가 없다면?
10명의 개발자가 열심히 개발을 했다. 1주일 후 ... 전부 합치기 !
-> 이것을 합치는것이 쉬울까? merge에서 엄청나게 conflict가 발생할 것이 뻔하다. 또한 개별적으로 작동하던 기능도 합치고 나서 코드의 충돌들로 인해 정상적인 기능이 수행할 것이라고 보장할 수 없다.
CI의 사용목적!
-> 모든 개발자들이 안심하고 개발을 하기 위해서, 또 내 코드의 안녕을 위해서.
CD가 없다면?
백엔드 코드 개발 -> 프론트와 협업을 해야하기위해 배포를 하자 -> 버그 발생 재배포 -> 반복..
CD의 사용목적!
-> 10명의 개발자가 열심히 개발 -> 성공적으로 merge -> 배포 성공 보장
-> 내부 사용자 혹은 production 환경의 사용자에게 지속적이고 안정적으로 서비스를 제공할 수 있다.
젠킨스
Java Runtime 위에서 동작하는 자동화 서버
빌드, 테스트, 배포 등 모든것을 자동화 해주는 자동화 서버
기본 개념
- Java Runtime Environment에서 동작
- 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있다.
- 일련의 자동화 작업의 순서들의 집합인 Pipline을 통해 CI/CD 파이프라인을 구축한다.
Plugin
- 정말 많은 플러그인이 존재
- Git 플러그인, Credentials 플러그인, 도커 플러그인 등
Credentials Plugin
- Jenkins는 단지 서버일 뿐이므로 배포에 필요한 각종 리소스 (클라우드 리소스, ssh 접근 등)에 접근하기 위해서는 여러가지 중요한 정보들을 저장하고 있어야 한다.
- 이런 중요한 정보들을 저장해주는 플러그인이다. (AWS token, Git Access Token, Username, Password, Secret Key, etc..)
Docker plugin
- jenkins에서 도커를 사용하기 위해 사용
Pipeline
파이프라인이란 CI/CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성
- 여러 플러그인들을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 파이프라인을 통해 서비스가 배포된다.
- Pipline DSL (domain specific language)로 작성
- 작업 명세서 개념
Pipline Syntax
Agent Section
- 일을 수행할 slave node들을 설정한다.
Post Section
- 스테이지가 끝난 이후의 결과에 따라서 후속조치를 취할 수 있다. (email, slack 등으로 알림 etc..)
Stages Section
- 어떤 일들을 처리할 건지 일련의 stage를 정의한다.
Steps Section
- 한 stage안에서의 단계로 일련의 step을 보여준다.
Declaratives
- Environment, stage, options, parameters, triggers, when 등의 declarative가 있다.
- Environment : 어떤 pipline이나 stage scope의 환경 변수 설정
- parameter : 파이프라인 실행 시 파리미터 받음
- Trigger : 어떤 형태로 트리거 되는가
- When : 언제 실행되는가
'Web > Jenkins 정리글' 카테고리의 다른 글
T academy _ Jenkins를 이용한 CI/CD : 파이프라인 구성 실습 (2) (0) | 2021.09.30 |
---|---|
T academy _ Jenkins를 이용한 CI/CD : 개발 환경 및 CI/CD 기본 동작, 파이프라인 구성 실습 (1) (0) | 2021.09.27 |
- Total
- Today
- Yesterday