본문 바로가기
카테고리 없음

젠킨스 블루오션 1_개요

by BTC_유온 2022. 7. 25.

<1장. 개요>

첫번째. 젠킨스 블루오션

"Blue Ocean is a new user experience for Jenkins based on a personalizable, modern design that allows users to graphically create, visualize and diagnose Continuous Delivery (CD) Pipelines."  by.Elevator Pitch

- 확장성이 뛰어나고 강력한 기능을 제공하는 데 비해사용성이 좋지 않은 젠킨스! 젠킨스의 장점은 가져가되 사용자 경험은 개선시킨 블루오션
- 누구나 기술 수준에 상관없이 사용할 수 있는 지속적인 배포 도구
- 블루오션은 독깁적으로 실행되는 프로그램이 아닌 젠킨스용 플러그인이기 때문에 설치 시 기존에 설치된 젠킨스에서 플러그인으로 설치하거나 도커에서 젠킨스의 일부로 설치해야 함


두번째. 블루오션이 제공하는 기능
(1) 파이프라인 생성 마법사 Pipeline Creation Wizard
파이프라인 생성 과정에 있어 편의를 제공한다.
이 새로운 파이프라인 생성 방식은 빠르고, 쉬우며, 직관적이다.
젠킨스 블루오션의 대시보드에 New Pipeline 버튼을 클릭하면 만날 수 있다.

(2) 비주얼 파이프라인 에디터 Visual Pipeline Editor
사용자 인터페이스를 통해 파이프라인을 생성할 수 있다.
작업을 저장하면 파이프라인 에디터가 이를 젠킨스 파일로 변환한다.
파이프라인 에디터에서의 모든 작업은 선언형 파이프라인 구문을 이용해 수행할 수 있다.
젠킨스 플러그인을 설치하면, 이를 파이프라인 데이터의 스텝으로 사용할 수 있다.

(3) 젠킨스 파일 Jenkinsfile
젠킨스 파일은 파이프라인 코드가 담긴 텍스트 파일이다.
블루오션에서 파이프라인을 생성하면 파이프라인의 설계가 코드 형태로 자동 저장되는데, 이렇게 저장된 코드가 젠킨스 파일이다.
젠킨스 파일은 소스 코드 저장소에 저장된다.

(4) 파이프라인 시각화
파이프라인의 흐름도를 볼 수 있다.

(5) 변경사황과 테스트, 산출물 메뉴 보기
Changes 섹션 - 파이프라인을 실행한 커밋에 대한 정보
Test 섹션 - 테스트 결과에 대한 정보
Artifacts 섹션 - 업로드하기로 선택한 산출물과 파이프라인의 전체 로그

(6) 파이프라인 액티비티/브랜치
Activity 탭 - 프로젝트별로 실행 중이거나 실행 예정인 모든 파이프라인 확인
Branches 탭 - 브랜치별로 파이프라인을 분리하여 확인

(7) 블루오션 대시보드
대시보드는 젠킨스 블루오션을 열었을 때 처음 보게 되는 페이지로, 모든 프로젝트를 확인할 수 있다.


세번째. 고려할 점
블루오션에서 기존 젠킨스 프로젝트도 실행 가능하긴 하나, 프로젝트를 수정하는 데 있어 일부 제한이 있을 수 있다. 지속적으로 기능이 업데이트 되기 때문에 자세한 사항은 홈페이지를 참고하는 게 좋다.

블루오션에서도 젠킨스의 프리스타일 프로젝트를 읽을 수 있다. 추가 기능은 제한이 있을 수 있는데, 이 또한 지속적으로 기능이 업데이트 되기 때문에 자세한 사항은 홈페이지를 참고해야 한다.

블루오션은 선언형 파이프라인 구문을 이용한다. 이 방식은 구조적이며 비교적 학습이 쉽다. 그러나 스크립트형 파이프라인에 비해 제한적이며, 유연성도 떨어진다. 이러한 문제점은 스크립트 스텝, 젠킨스 공유 라이브러리로 복잡한 파이프라인을 작성함으로써 어느 정도 해결할 수 있다.
 - 스크립트 스텝 : 선언형 파이프라인에서 스크립트형 파이프라인을 일부 작성할 수 있다. 단, 꼭 필요한 경우에만 사용할 것!
 - 공유 라이브러리 : 복잡한 그루비 코드를 저장하는 외부 소스 코드 저장소로, 스크립트 스텝이 너무 복잡해지면 해당 기능을 이용해야 한다.

  * Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax.
It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.
출처: https://groovy-lang.org/


네번째. 젠킨스 블루오션 VS. 기존 젠킨스
(1) 기존 젠킨스에서 블루오션으로의 전환 필요성
젠킨스 블루오션에서 만든 파이프라인은 표준 젠킨스와 완벽히 호환된다.
블루오션에서 파이프라인을 만드는 것이 더 쉽다.
선언형 문법으로 작성된 파이프라인은 유지보수가 쉽다.
파이프라인을 만드는 데 있어 블루오션이 제공하는 각종 기능을 쉽게 이용할 수 있다.
블루오션의 스테이지 뷰(Stage View) 기능은 병렬 파이프라인 스테이지를 제대로 표시할 수 있다.
기존 표준 젠킨스보다 훨씬 직관적이다.
실패에 대한 디버깅이 쉽다.

(2) 블루오션이 특히나 더 적합한 사용자
깃/깃허브/깃랩/비트버킷을 소스 컨트롤 도구로 이용하는 개발팀
GitFlow 방식의 워크플로(마스터 브랜치와 개발 프랜치 및 기능, 릴리스, 핫픽스 블챈치를 사용하는 것을 중요시하는 엄격한 브랜치 관리 모델)나 기능 브랜치 사용을 권장하는 개발팀
젠킨스 관리자가 주로 관리 업무만 수행하는 조직에 속한 개발팀으로서 파이프라인을 직접 만들고 관리하는 경우
선언형 파이프라인 구문과 젠킨스 공유 라이브러리고 간단한 파이프라인을 만들고자 하는 개발팀
코드 리뷰 전후로 변경사항을 빌드하고 테스트하고 싶은 개발팀
개발 환경 안에 러거시(폭넓게 사용되기 때문에 새로운 시스템으로 교체하기 어려운 기존 소프트웨어 또는 하드웨어) 요소를 갖고 있지 않은 개발팀

(3) 블루오션의 전망
프리스타일 젠킨스 작업 ▶ 스크립트형 파이프라인 ▶ 선언형 파이프라인 으로 변화하는 추세
복잡한 파이프라인을 작성해야 하는 경우가 있기 때문에 스크립트형 파이프라인이 완전히 사라지진 않을 것이다.
점점 더 많은 기존 젠킨스의 플러그인을 블루오션에서 스텝으로 활용할 수 있을 것이다.
선언형 파이프라인 구문과 파이프라인 에디터, 그리고 블루오션의 다른 기능은 이미 지속적 배포 방식을 채택한 팀이 작업을 쉽게 하는 데 도움을 주고 있다.

댓글