젠킨스 마스터 [기초부터 빌드 파이프라인 구축까지 효율적인 자동 배포 환경 만들기]
- 원서명Mastering Jenkins: Configure and extend Jenkins to architect, build, and automate efficient software delivery pipelines (ISBN 9781784390891)
- 지은이조나단 맥앨리스터(Jonathan McAllister)
- 옮긴이이정표
- ISBN : 9791161751467
- 30,000원
- 2018년 05월 14일 펴냄
- 페이퍼백 | 400쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 소프트웨어 테스팅
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
하루가 다르게 진보하는 기술 속에서 IT 기업들은 배포 자동화, 품질 검증 활동 자동화 등을 비즈니스 역량과 통합해 대응하는 추세다. 대표적인 자동화 솔루션인 젠킨스를 활용하면 격리된 조직 부서들을 하나로 통합해서 일관성 있게 제품을 개발하고 릴리스할 수 있다.
이 책은 독자가 젠킨스를 활용해 지속적 통합과 인도, 배포할 수 있는 역량을 갖출 수 있도록 필요한 지식을 제공한다. 시스템 관리의 기초를 비롯해 마스터/슬레이브를 활용한 젠킨스 확장, 고급 테스트 자동화 기법, 빌드 파이프라인, 플러그인 개발 기법 등을 다룬다. 이 책을 읽으면 조직을 위한 젠킨스 자동화 솔루션을 구축하고 관리하는 데 필요한 지식을 갖추게 될 것이다.
추천사
애자일 실천법은 전 세계 많은 회사에서 영향력을 발휘하고 있지만, 배포 팀과 조직 내 다른 팀들 간의 문화적, 기술적 차이로 인한 갈등이 없는 것은 아니다.
이런 갈등은 새로운 아이디어를 거부하는 자연스러운 본능에서 비롯되기도 하지만, 애자일 실천법이 더 빠르고 더 나은 품질로 비즈니스 가치를 제공한다는 주장에 대한 불신이 주요한 원인으로 작용한다.
이 책은 프로젝트 관리 그 자체에 전적으로 집중하지는 않는다. 하지만 지속적 빌드, 통합, 인도, 배포 솔루션의 활용 사례를 통해 제품을 성공적으로 개발할 수 있는 기반을 제공한다.
지속적 실천법을 따르면 소프트웨어를 제대로 컴파일하고 테스트할 수 있으므로 (개발자의 컴퓨터에서만이 아니라) 항상 배포 가능한 상태가 된다. 지속적 통합을 통해 코드 및 비즈니스에서 설정한 기대치에 맞게 각 하위 시스템이 제대로 동작하는지 알 수 있다.
지속적 인도를 통해 이전 단계에서 생성된 아티팩트의 재사용 및 관련자들에게 제품을 시연할 수 있도록 상위 환경으로 배포하는 것을 보장한다. 반면 지속적 배포는 아티팩트를 개발 환경에 전달해 빠르게 기능 검증을 할 수 있다.
인도(delivery) 파이프라인을 만드는 일은 제품 설계자가 원하는 속도로 회사의 가치를 구현하는 데 있어 핵심 요소다. 이 방식은 전에는 없던 다양한 기술 덕분에 가능해졌다. 즉, 제품을 개발해서 배포한 후 신속히 테스트하고 평가한 다음, 혹시라도 시장 상황을 잘못 파악한 것이 있다면 개발 또는 사업을 방향을 바꾸는 방식인 빠른 실패 역량보다 더 나은 방식은 없기 때문이다.
이런 방식의 소프트웨어 개발은 자동화 없이는 불가능하다. 자동화를 이용한 소프트웨어 개발 방식은 개발자가 안전하게 코드를 수정하고 리팩토링할 수 있게 하고, 제품의 기능 증가에 따른 회귀 테스트 케이스 증가에 대응한다. 또한 아마도 가장 중요한 서버 프로비저닝과 구성의 작성과 실행, 애플리케이션의 배포를 가능케 한다.
제품이 좋든 나쁘든 제품의 성공 여부는 빠른 피드백에 달렸다. 이 책은 젠킨스와 다양한 플러그인을 사용해 설계자, 개발자, 테스터, 제품 관련자 그리고 넓게는 고객으로부터 빠르게 피드백을 받는 실용적인 방법을 자세히 설명한다.
따라서 제품의 구상 단계에서 수익을 낼 때까지 걸리는 시간을 단축해 사업의 성공을 돕고, 표준 소프트웨어 개발 주기의 한 부분으로써 배포 절차를 간결하게 만들고자 한다면, 파이프라인 아키텍처와 자동화를 완전히 숙달해 자기 것으로 삼아야만 한다.
전체적으로 이 책은 젠킨스를 활용한 배포 파이프라인에 대해 알려주며, 데브옵스로 개발 방식을 바꿀 수 있게 도와줌으로써 제품 개발 방식을 획기적으로 향상시켜 줄 것이다.
이따마르 하신/ Thought Leader, 프로젝트 리드, 쏘트웍스
이 책에서 다루는 내용
█ 다양한 형태의 빌드 작업 생성과 관리
█ 다양한 소프트웨어를 지원하는 자동화 태스크 구축 방법
█ 젠킨스에서 자동화된 테스트 구조 이해 및 구현 기법 소개
█ 확장형 자동 배포 솔루션 구축으로 소프트웨어 개발 주기(SDLC)에 따른 제품 인도 절차 구현
█ 최신 빌드, 테스트, 배포 전략을 사용해 젠킨스 내 확장형 자동 파이프라인 관리
█ 윈도우와 맥 OS X, 리눅스, 유닉스 등을 지원하는 확장형 마스터와 슬레이브 빌드 자동화 플랫폼 구현
█ 젠킨스 분산 빌드 기능 이해 및 조직 규모에 따른 젠킨스 확장 기법
█ 젠킨스와 다양한 기술 및 소프트웨어 통합 방법
이 책의 대상 독자
지속적 통합, 지속적 인도, 빌드 파이프라인 등을 구축하고 조직 내에 전파하는 역할을 하는 초급 및 중급 수준의 젠킨스 관리자를 위한 책이다.
이 책의 구성
이 책은 다양한 기술을 사용하는 수많은 조직에서의 연구 개발과 엔지니어링 자동화 경험을 융합한 결과다. 지속적 통합, 지속적 인도, 지속적 배포의 실질적인 구현 지침을 제공하려고 한다. 이 책은 다양한 규모와 기술적 배경을 가진 조직이 빌드 파이프라인을 설계 및 구현, 전파하는 데 필요한 도구를 제공하는 것을 목표로 한다.
1장, '젠킨스 설치와 구성'에서는 크기나 규모와 상관없이 젠킨스 인스턴스를 관리하는 방법을 설명한다. 하지만 젠킨스는 매우 다양하고 거의 모든 플랫폼을 지원하기 때문에 쉬운 일은 아니다. 초기 설정과 백업 전략, 구성 기술, 모범 사례, 서비스를 수평적으로 확장하고 이를 적절히 관리하는 방법을 학습한다.
2장 '분산 빌드: 마스터/슬레이브 모드'에서는 분산 빌드 솔루션과 슬레이브 에이전트 설정 방법에 대해 전체적인 가이드를 제공한다. 이는 매우 중요한 구현 방식으로, 젠킨스가 더 많은 사용자와 다양한 기술 스택에 대한 지원을 언제 확장해야 하는지 이해하는 데 도움이 된다.
3장, '젠킨스에서 뷰와 작업 생성'과 4장, '젠킨스에서 뷰와 작업 관리하기'에서는 젠킨스의 대시보드 및 뷰, 작업에 대한 사용법을 설명한다. 젠킨스의 가장 기초가 되는 내용으로 젠킨스 플랫폼을 이해하는 데 큰 도움이 된다.
5장, '고급 테스트 자동화'에서는 품질 보증 효율성 향상 방법을 설명한다. 또한 비즈니스 가치를 제공하는 테스트 자동화 솔루션을 설계하고 구현하는 방법을 알려준다. 파이프라인을 통해 병목 현상이 없는 효율적 상태를 유지하므로, 파이프라인은 ‘지속적’ 솔루션 구현의 핵심이다. 테스트 자동화를 구현할 때는 균형 유지가 중요하다. 자동화 테스트 실행에 드는 시간과 빠른 전달 속도 사이에는 트레이드오프가 있기 때문이다.
6장, '소프트웨어 배포 및 인도'에서는 확장 가능한 배포 자동화 작업의 구현 방법을 다룬다. 배포 자동화는 빌드 파이프라인과 지속적 실천법의 근간이다. 또한 업스트림 및 다운스트림 작업과 이를 명명 규칙으로 관리하는 법도 다룬다. 그 외에 신속한 배포와 효율적인 릴리스를 유지하는 데 도움이 되는 팁과 요령을 배운다.
7장, '빌드 파이프라인'에서는 빌드 파이프라인의 개념을 소개하고, 구현 및 확장 방법을 설명한다. 빌드 파이프라인은 지속적 인도와 배포의 기본 요구 사항이다. 특히 수많은 기술 스택을 아우르며 확장도 가능한 구현 방법을 제공하고자 한다.
8장, '지속적 실천'에서는 지속적 통합과 지속적 인도, 지속적 배포에 대한 정의를 내린다. 또한 실천법의 구현 지침을 제시한다. 그간 젠킨스는 지속적으로 진화하고 발전해 현재는 지속적 실천법을 완벽하게 지원한다. 이에 대한 이해를 돕고자 각 실천법별 예제를 통해 잘 정의된 구현이 무엇인지 보여주고자 한다.
9장, '젠킨스와의 기술 통합'에서는 도커와 앤서블, 셀레늄과 아티팩토리, 지라 같은 흥미로운 자동화 기술을 소개한다. 또한 젠킨스를 통해 이들을 상호 연결하는 방법을 보여준다. 플러그인 아키텍처를 통한 확장성은 젠킨스가 널리 보급된 주요 이유 중 하나다.
10장, '젠킨스 확장'에서는 플러그인 작성법, 확장 포인트를 활용한 젠킨스 기능 추가, 젠킨스 시스템 조작 방법 등 실용적인 방법을 알려준다.
부록, ‘젠킨스 업그레이드 가이드’에서는 젠킨스 공식 사이트에서 제공하는 젠킨스 LTS 업그레이드 가이드(Jenkins LTS Upgrade Guide)를 번역해 업그레이드 관리자를 대상으로 중요한 변경 사항을 설명한다.
목차
목차
- 1장. 젠킨스 설치와 구성
- __젠킨스 플랫폼 아키텍처와 구성 기법
- __마이크로소프트 윈도우용 젠킨스
- ____JVM과 자바 인수값 구성: 포트와 JRE와 메모리
- __리눅스와 유닉스용 젠킨스
- ____JVM 구성
- __NGINX 리버스 프록시에서 젠킨스 실행하기
- ____아파치 리버스 프록시에서 젠킨스 실행하기
- __젠킨스에서의 재해복구
- ____젠킨스 스냅샷 백업
- ____젠킨스 미러: rsync 설치
- __맥 OS X용 젠킨스
- ____젠킨스 LTS 릴리스 라인
- ____젠킨스 XML 구성 파일
- __요약
- 2장. 분산 빌드: 마스터/슬레이브 모드
- __마스터와 슬레이브 구조 이해
- ____UI에서 슬레이브 노드 생성하기
- __실행 방식을 정하기
- ____자바 웹스타트를 통한 슬레이브 에이전트
- ____WMI와 DCOM으로 윈도우에서 슬레이브 에이전트 실행
- ____SSH 터널링을 통한 슬레이브 에이전트
- __젠킨스 슬레이브 관리
- ____노드 관리 대시보드
- ____예방적 모니터링
- ____개별 슬레이브 노드 관리
- __레이블과 그룹, 로드밸런싱
- ____레이블을 생성해 슬레이브를 그룹화하기
- ____슬레이브를 여러 그룹과 연결하기
- ____슬레이브 실행을 전역 범위나 연결된 작업 범위로만 제한하기
- ____분산 빌드를 지원하는 젠킨스 플러그인
- __요약
- 3장. 젠킨스에서 뷰와 작업 생성
- __젠킨스 유저 인터페이스
- ____메인 헤더
- ____구성 패널
- ____작업 테이블
- ____RSS 피드
- ____젠킨스 빌드 대기 목록과 빌드 실행자 상태 패널
- __젠킨스의 작업
- ____젠킨스의 프리스타일 프로젝트
- ____메이븐 프로젝트
- ____외부 작업 모니터링
- ____젠킨스의 다중 구성 작업: 매트릭스 작업
- __뷰 생성
- ____정규 표현식으로 작업 필터링
- __요약
- 4장. 젠킨스에서 뷰와 작업 관리하기
- __젠킨스에서 뷰 관리
- ____기본 뷰를 바꾸기
- ____뷰의 기본 내용 변경
- ____Views 콘텐츠의 고급 설정
- __작업의 프로젝트 페이지 탐색
- ____구성 패널
- ____빌드 내역 패널
- ____프로젝트 개요: 중앙 패널
- __작업 실행
- __작업 실행 구성 패널
- __상태 패널
- __콘솔 출력창
- __요약
- 5장. 고급 테스트 자동화
- __품질 보증 계획 및 테스트 자동화 용어
- __소프트웨어 개발 생명주기
- __제품 코드와 테스트를 연결하기
- __품질 좋은 제품 만들기
- ____효율적인 테스트 자동화 아키텍처
- __젠킨스의 테스트 자동화
- __MSTest를 통한 젠킨스의 단위 테스트
- ____MSTest 에이전트 설정 방법
- ____MSTest를 통한 테스트 자동화 실행
- ____MSTests 실행 및 젠킨스 내에서의 결과 보고
- ____테스트 작업 구성
- __분산형 테스트 솔루션
- ____셀레늄 그리드
- ____병렬 다운스트림 작업
- __요약
- 6장. 소프트웨어 배포 및 인도
- __빌드 출력 표준화
- ____패키징 방법 설계
- __공인 미디어 라이브러리 구현
- ____자산을 DML에 발행하기
- __배포 자동화
- ____빌드 아티팩트 및 패키지 검색
- ____배치 자동화 실행
- ____배포를 위해 젠킨스 슬레이브 노드 활용
- __요약
- 7장. 빌드 파이프라인
- __빌드 파이프라인의 가치 제안
- __빌드 파이프라인 설계
- ____빌드 파이프라인의 첫 번째 세그먼트
- ____추가 파이프라인 세그먼트
- ____파이프라인의 완성
- ____최종 파이프라인 시각화
- ____포장 판매 및 임베디드형 프로젝트용 변환
- __젠킨스에서 빌드 파이프라인 구현
- ____업스트림 작업: 트리거 됨
- ____다운스트림 작업: 포스트 빌드 액션을 통해
- ____Parameterized Trigger 플러그인
- ____Promoted Build 플러그인
- ____포스트 빌드 태스크 플러그인
- ____Delivery Pipeline 플러그인
- ____두 개의 젠킨스 인스턴스 연결: 개발 및 프러덕션
- __요약
- 8장. 지속적 실천
- __카이젠: 지속적 개선
- ____칸반
- __지속적 통합
- ____지속적인 통합이 아닌 것
- ____코드 기반 브랜치 기법
- ____기능 토글
- ____신속한 실패와 더 신속한 복구
- ____분산 버전 관리
- ____젠킨스에서의 지속적 통합
- __지속적인 인도
- ____지속적 인도의 원칙
- ____젠킨스에서의 지속적 인도
- __지속적 배포
- ____젠킨스에서의 지속적 배포
- __요약
- 9장. 젠킨스와의 기술 통합
- __젠킨스와 도커: 리눅스 가이드
- ____도커 컨테이너에서 젠킨스 실행하기: 리눅스
- ____도커를 사용하는 동적 젠킨스 슬레이브 노드
- __젠킨스와 앤서블 통합: 리눅스와 윈도우
- __젠킨스와 아티팩토리
- __젠킨스와 셀레늄 그리드
- ____셀레늄 그리드 구축
- ____테스트를 작성하고 젠킨스에 통합하기
- __젠킨스와 지라
- __요약
- 10장. 젠킨스 확장
- __개발 환경 설정
- __젠킨스 플러그인 스켈레톤 만들기
- __플러그인 스켈레톤
- __메이븐이 생성한 스켈레톤을 인텔리제이로 가져오기
- __젠킨스 플러그인의 아키텍처
- ____젠킨스 작업 라이프 사이클의 이해
- ____오버라이드 사용하기
- ____describables와 지시자로 작업하기
- __젤리 태그와 파일
- __HPI 플러그인 컴파일 및 설치
- __요약
- 부록. 젠킨스 업그레이드 가이드
도서 오류 신고
정오표
정오표
[p.8, 14]
저자 소개
->
지은이 소개
[p.392]
설치 마법사
->
설정 마법사(Setup Wizard)