Jenkins 개념
Java Runtime위에서 동작하는 자동화 서버
다양한 플러그인을 종합해서 CI/CD Pipeline을 만들어서 자동화 작업
개발 시 지속적으로 통합 서비스를 제공하는 CI툴.
젠킨스와 같은 CI툴이 등장하기 전에는 개발자들이 당일 작성한 소스들의 커밋이 모드 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었는데, 이를 nightly-build라고 한다.
하지만 젠킨스는 정기적인 빌드에서 한발 나아가 Git과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다.
Jenkins X 개념
Question
왜 Jenkins는 잘나가는 Jenkins 툴을 두고 새로운 툴을 개발하였을까?
Answer
클라우드 시대가 되었으며 컨테이너 환경이 되었기 때문에 쿠버네티스 환경에 맞춘 새로운 CI/CD툴인 Jenkins X를 개발
특징
- Kubernetes에 적합한 CI/CD 도구
- Jenkins X에서 가장 중요한 개념 : Pipeline
- Jenkins X에서 수행되는 모든 과정들은 Pipeline을 통해 수행
- Jenkins X는 Prow와 Tekton을 통해 실행
- Jenkins X를 설치해도 실제로 사용하는 것은 Jenkins와 추가 서비스들이 Kubernetes와 연동되어 있을 뿐
먼저 개발자가 Git Repository로 소스를 푸시한다. 특정 branch (master, develop etc.)에 푸시될 경우 Prow에서 이벤트를 받아 파이프라인을 처리한다. 그 후 TEKTON에서 실질적인 파이프라인을 수행하는데 그 전에 Jenkins X가 사전 작업을 수행 후 넘겨주며 최종적으로 우리의 귀엽고 예쁜 Application이 배포되게 된다.
Jenkins X 가 tekton을 실행시킨다는 의미는 이 pipelineRun을 실행시키는 것이며 이에 필요한 리소스인 Pipeline을 미리 생성하고 실행시킨다.
(prow는 tekton trigger역할과 비슷)
용어
webhook
- 새 이벤트가 서버에서 발생한 경우 서버 측 응용 프로그램이 클라이언트 측 응용프로그램에 알릴 수 있는 메커니즘 제공
- 역방향 API라고도 한다.
- 일반적인 API는 클라이언트가 서버를 호출한다. 반면 웹훅의 경우 웹훅을 호출하는 서버 측에 등록하면 서버에서 이벤트가 발생했을 때 클라이언트를 호출한다.
- 특정 Event -> Trigger로 웹훅 동작 -> 지정한 Action 발생
'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글
[kubernetes] 파드 스케줄링 (0) | 2021.08.23 |
---|---|
[kubernetes] 사용자 권한 (keycloak) (0) | 2021.07.25 |
[kubernetes] Tekton (0) | 2021.07.25 |
[쿠버네티스] Helm (0) | 2021.07.08 |
[쿠버네티스] 시크릿 (0) | 2021.06.11 |