Jenkins X 란?

2022. 9. 14. 13:03·BE

Kubernetes 환경에서 CI/CD 툴을 조사하던 중 Jenkins X 를 발견하게 되었다.
널리널리 사용되는 Jenkins! 그런데 좀 더 발전된 버전인가? 어떤 점이 다른지 살펴보자 🤔

Jenkins X?

  • kubernetes 환경에서 CI(=continuous integration) 과 CD(continuous deployment) 를 제공하는 툴
  • 오픈소스 프로젝트, 현재도 열심히 개발되고 있는 프로젝트!
  • 아쉽게도 웹이나 serverless하게 확인해볼수있는 demo는 없지만, 아래 kubecon 영상에서 demo확인 가능
    • 2018 kubecon Jenkins X demo (Jenkins x 뽕에 취해보세요)

특징

Automated CI/CD

  • Github에서 commit, push, PR을 통해 자연스러운 CI/CD 환경을 경험할 수 있음 (모든 git event에 따라 각각 다른 pipeline이 동작)
    • 개발자가 web UI를 통해 (jenkins, Argo CD같은) 배포 버튼을 누르는 작업을 따로 하지 않아도 됨

Environments

  • Devlopment, Staging, Production 환경을 제공
  • kubernetes cluster의 namespace 하나가 Jenkins X에서 말하는 enviornment가 됨
  • Single cluster의 경우 하나의 cluster안에서 development, staging, production의 배포 환경을 namespace로 구분
  • multi-cluster도 지원함
  • 배포환경 뿐만 아니라, 각 팀마다 다른 배포 환경을 가지도록 구성할 수도 있음
    • team == environment

Preview Environments

  • PR에서 반영한 코드를 테스트할 수 있는 preview 환경을 제공
  • 개발자가 작업한 feature가 master branch로 (merge 하고자 하는 branch) merge가 되었을때의 결과물을 샘플로 보여주는 환경

dev pod

  • PR을 올리기 전 (preview environment를 사용하기 전), 로컬환경에서의 작업물을 테스트할 수 있는 환경을 제공
  • 로컬환경에서 CI/CD 환경에 구축되어있지 않더라도, 현재 작업하고있는 작업물을 dev pod에서 테스트 가능
  • 따로 배포를 하지 않고, 사용하고있는 IDE에서 코드 저장하기만 하면 dev pod로 sync
  • 내부적으로 skaffold 라는 오픈소스를 사용해서 동작
    • 이 부분은 Jenkins X를 사용하지 않고, 다른 오픈소스 툴을 사용하면 됨
      • Tilt
      • Skaffold
      • Garden
      • Draft (archived 된 프로젝트..)
  • 참고: https://www.cloudbees.com/blog/exploring-jenkins-x-devpod

고려사항

AWS, GKE, Azure에 최적화

  • on-premise보다는 위의 클라우드 provider에서 사용하는것을 권장
  • on-premise로 사용하게 될 경우에는, Metal LB로 구성해야함 (클라우드를 사용하게 될 경우, 이 부분은 걱정하지 않아도 됨)
  • 여러모로 설정부분에서 신경써야 할 것이 많긴 해 보임
저작자표시 비영리 변경금지 (새창열림)

'BE' 카테고리의 다른 글

[Kotlin] Annotation Targets  (0) 2022.10.05
[Jenkins] java.lang.NoSuchMethodError: No such DSL method 'cleanWs' found among steps 에러 해결 방법  (0) 2022.09.15
Jenkins 버전 업데이트 & 롤백하는 방법  (0) 2022.09.14
'BE' 카테고리의 다른 글
  • [Kotlin] Annotation Targets
  • [Jenkins] java.lang.NoSuchMethodError: No such DSL method 'cleanWs' found among steps 에러 해결 방법
  • Jenkins 버전 업데이트 & 롤백하는 방법
bandal-gom
bandal-gom
Devops & Backend Developer | tech blog
  • bandal-gom
    yayz's devlog
    bandal-gom
  • 전체
    오늘
    어제
    • 분류 전체보기 (68)
      • DevOps (22)
        • devops (4)
        • cicd (2)
        • docker (2)
        • monitoring (2)
        • nginx (4)
        • cache (1)
        • aws (1)
        • etc (6)
      • BE (21)
        • BE (3)
        • design pattern (1)
        • data structure (0)
        • spring (1)
        • algorithm (12)
      • devlog (24)
        • TIL (17)
        • programming language (2)
        • conference (2)
        • etc (3)
      • IT Review (1)
  • 블로그 메뉴

    • about.
    • 개발👩‍💻
    • etc.
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    젠킨스
    문제풀이
    알고리즘
    오블완
    99클럽
    릿코드
    NGINX
    time complexity
    알고리즘문제풀이
    키보드케이블
    Python
    leetcode 347
    코딩테스트준비
    homelab
    키캡
    항해99
    Kotlin
    모각코
    노트북하기좋은카페
    jenkins
    개발자취업
    java
    hash
    티스토리챌린지
    LeetCode
    Programmers
    array
    algorithm
    til
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
bandal-gom
Jenkins X 란?
상단으로

티스토리툴바