스크랩

구간

젠킨스 마스터 기초부터 빌드 파이프라인 구축까지 효율적인 자동 배포 환경 만들기

원제 : Mastering Jenkins: Configure and extend Jenki
시리즈 : 에이콘 소프트웨어 테스팅 시리즈 [11]

조나단 맥앨리스터 저 | 이정표 역 | 에이콘출판 | 2018년 05월

북트리

정가
$60.00
판매가
$43.74 (27%↓) 최저가 보상
적립금
$0.87 (2%P)
출고예상일
2026년 10월 07일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161751467 / 400쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

하루가 다르게 진보하는 기술 속에서 IT 기업들은 배포 자동화, 품질 검증 활동 자동화 등을 비즈니스 역량과 통합해 대응하는 추세다. 대표적인 자동화 솔루션인 젠킨스를 활용하면 격리된 조직 부서들을 하나로 통합해서 일관성 있게 제품을 개발하고 릴리스할 수 있다. 이 책은 독자가 젠킨스를 활용해 지속적 통합과 인도, 배포할 수 있는 역량을 갖출 수 있도록 필요한 지식을 제공한다. 시스템 관리의 기초를 비롯해 마스터/슬레이브를 활용한 젠킨스 확장, 고급 테스트 자동화 기법, 빌드 파이프라인, 플러그인 개발 기법 등을 다룬다. 이 책을 읽으면 조직을 위한 젠킨스 자동화 솔루션을 구축하고 관리하는 데 필요한 지식을 갖추게 될 것이다. ★ 이 책에서 다루는 내용 ★ - 다양한 형태의 빌드 작업 생성과 관리 - 다양한 소프트웨어를 지원하는 자동화 태스크 구축 방법 - 젠킨스에서 자동화된 테스트 구조 이해 및 구현 기법 소개 - 확장형 자동 배포 솔루션 구축으로 소프트웨어 개발 주기(SDLC)에 따른 제품 인도 절차 구현 - 최신 빌드, 테스트, 배포 전략을 사용해 젠킨스 내 확장형 자동 파이프라인 관리 - 윈도우와 맥 OS X, 리눅스, 유닉스 등을 지원하는 확장형 마스터와 슬레이브 빌드 자동화 플랫폼 구현 - 젠킨스 분산 빌드 기능 이해 및 조직 규모에 따른 젠킨스 확장 기법 - 젠킨스와 다양한 기술 및 소프트웨어 통합 방법 ★ 이 책의 대상 독자 ★ 지속적 통합, 지속적 인도, 빌드 파이프라인 등을 구축하고 조직 내에 전파하는 역할을 하는 초급 및 중급 수준의 젠킨스 관리자를 위한 책이다. ★ 이 책의 구성 ★ 이 책은 다양한 기술을 사용하는 수많은 조직에서의 연구 개발과 엔지니어링 자동화 경험을 융합한 결과다. 지속적 통합, 지속적 인도, 지속적 배포의 실질적인 구현 지침을 제공하려고 한다. 이 책은 다양한 규모와 기술적 배경을 가진 조직이 빌드 파이프라인을 설계 및 구현, 전파하는 데 필요한 도구를 제공하는 것을 목표로 한다. 1장, '젠킨스 설치와 구성'에서는 크기나 규모와 상관없이 젠킨스 인스턴스를 관리하는 방법을 설명한다. 하지만 젠킨스는 매우 다양하고 거의 모든 플랫폼을 지원하기 때문에 쉬운 일은 아니다. 초기 설정과 백업 전략, 구성 기술, 모범 사례, 서비스를 수평적으로 확장하고 이를 적절히 관리하는 방법을 학습한다. 2장 '분산 빌드: 마스터/슬레이브 모드'에서는 분산 빌드 솔루션과 슬레이브 에이전트 설정 방법에 대해 전체적인 가이드를 제공한다. 이는 매우 중요한 구현 방식으로, 젠킨스가 더 많은 사용자와 다양한 기술 스택에 대한 지원을 언제 확장해야 하는지 이해하는 데 도움이 된다. 3장, '젠킨스에서 뷰와 작업 생성'과 4장, '젠킨스에서 뷰와 작업 관리하기'에서는 젠킨스의 대시보드 및 뷰, 작업에 대한 사용법을 설명한다. 젠킨스의 가장 기초가 되는 내용으로 젠킨스 플랫폼을 이해하는 데 큰 도움이 된다. 5장, '고급 테스트 자동화'에서는 품질 보증 효율성 향상 방법을 설명한다. 또한 비즈니스 가치를 제공하는 테스트 자동화 솔루션을 설계하고 구현하는 방법을 알려준다. 파이프라인을 통해 병목 현상이 없는 효율적 상태를 유지하므로, 파이프라인은 '지속적' 솔루션 구현의 핵심이다. 테스트 자동화를 구현할 때는 균형 유지가 중요하다. 자동화 테스트 실행에 드는 시간과 빠른 전달 속도 사이에는 트레이드오프가 있기 때문이다. 6장, '소프트웨어 배포 및 인도'에서는 확장 가능한 배포 자동화 작업의 구현 방법을 다룬다. 배포 자동화는 빌드 파이프라인과 지속적 실천법의 근간이다. 또한 업스트림 및 다운스트림 작업과 이를 명명 규칙으로 관리하는 법도 다룬다. 그 외에 신속한 배포와 효율적인 릴리스를 유지하는 데 도움이 되는 팁과 요령을 배운다. 7장, '빌드 파이프라인'에서는 빌드 파이프라인의 개념을 소개하고, 구현 및 확장 방법을 설명한다. 빌드 파이프라인은 지속적 인도와 배포의 기본 요구 사항이다. 특히 수많은 기술 스택을 아우르며 확장도 가능한 구현 방법을 제공하고자 한다. 8장, '지속적 실천'에서는 지속적 통합과 지속적 인도, 지속적 배포에 대한 정의를 내린다. 또한 실천법의 구현 지침을 제시한다. 그간 젠킨스는 지속적으로 진화하고 발전해 현재는 지속적 실천법을 완벽하게 지원한다. 이에 대한 이해를 돕고자 각 실천법별 예제를 통해 잘 정의된 구현이 무엇인지 보여주고자 한다. 9장, '젠킨스와의 기술 통합'에서는 도커와 앤서블, 셀레늄과 아티팩토리, 지라 같은 흥미로운 자동화 기술을 소개한다. 또한 젠킨스를 통해 이들을 상호 연결하는 방법을 보여준다. 플러그인 아키텍처를 통한 확장성은 젠킨스가 널리 보급된 주요 이유 중 하나다. 10장, '젠킨스 확장'에서는 플러그인 작성법, 확장 포인트를 활용한 젠킨스 기능 추가, 젠킨스 시스템 조작 방법 등 실용적인 방법을 알려준다. 부록, '젠킨스 업그레이드 가이드'에서는 젠킨스 공식 사이트에서 제공하는 젠킨스 LTS 업그레이드 가이드(Jenkins LTS Upgrade Guide)를 번역해 업그레이드 관리자를 대상으로 중요한 변경 사항을 설명한다.

저자 소개

  • 저자 : 조나단 맥앨리스터
조나단 맥앨리스터(Jonathan McAllister)
어려서부터 소프트웨어를 개발했고, 자동화를 실천하고 있다. 소프트웨어 개발과 테스트, 배포 분야에서 10년 동안 전문가로서 경력을 쌓았다. 특히 다양한 기술 스택을 사용하는 최신 기술 조직에서 아키텍처 설계, 소프트웨어 빌드, 테스트, 인도 솔루션 구축 등의 업무를 수행했다. 최근에는 빌드 파이프라인, 지속적 통합, 지속적 인도, 마이크로서비스 아키텍처, 프로세스 수립에 집중하고 있으며, 마이크로소프트나 머크, 로지텍 등 업계 최고의 기업들을 대상으로 고확장성 자동화 솔루션을 구축했다.
지속적 실천법을 통해 수익을 높이는 전략을 개발하고, 표준화를 통한 릴리스 간소화가 가능하게 하는 확장형 빌드, 업데이트, 테스트 파이프라인을 설계하는 일에 관심이 있다.
성공적인 기업가이자 작가이며, 비즈니스 컨설턴트로서 기술과 문화가 각기 다른 조직에서 효율적인 인도 파이프라인을 구축하고 관리한 경험이 있다.

역자 소개

  • 역자 : 이정표
PC용 소프트웨어부터 모바일 브라우저 및 클라우드 서비스 개발에 이르기까지 20년 동안 다양한 개발 프로젝트에 참여했으며, 현재 KT에서 SW 품질 평가 업무를 맡고 있다. 오픈 라이선스를 활용한 IT 기술 및 콘텐츠 확산에 관심이 많으며, 오픈아이디어랩(OIL) 프로젝트를 통해 의미 있고 재미있는 시도를 이어나갈 수 있는 방법을 고민하고 있다.
옮긴 책으로는 『워드프레스 플러그인과 테마 만들기』(에이콘, 2012), 『Hudson 3 설치와 운용』(에이콘, 2014)이 있고, 『크리에이티브 커먼즈 권리표현언어(ccREL)』(2009)와 『참여와 소통의 정부 2.0』(아이앤유, 2011), 『난독화, 디지털 프라이버시 생존 전략』(에이콘, 2017)의 공역자로 참여했다.

머리말

★ 지은이의 말 ★

젠킨스(Jenkins)는 널리 호평받는 빌드 자동화 협업 솔루션이다. 이 솔루션은 전 세계 수백 명의 오픈소스 개발자와 품질 엔지니어, 데브옵스 담당자들의 노력의 집합체다. 끊임없이 업데이트하고 개선하며 사용자를 지원하는 열렬하고 활발한 오픈소스 커뮤니티는 젠킨스를 혁신적이고 독창적이게 하는 원동력이다. 젠킨스가 지속적 통합, 지속적 인도 실천 도구 분야에서 최고가 될 수 있었던 것은 오픈소스 개발자들의 노력 덕분이다.
젠킨스 플랫폼은 전통적으로 분리된 개발 팀들을 연결하고, 협업팀으로 바꾸기 위해 개발 방법과 테스트 환경, 비즈니스 요구 사항들을 잇는 다리 역할을 한다. 지난 수년간 젠킨스는 대중성과 명성을 얻었으며, 사실상 업계 표준 도구로 자리잡았다. 젠킨스의 확장성과 협업 역량은 채택률을 기하급수적으로 높였으며, 전 세계에 100,000건이 넘게 설치돼 사용된다.
나는 젠킨스가 허드슨(Hudson)이라는 이름으로 불리던 2008년부터 공식적으로 이 솔루션을 사용하기 시작했다. 자바 개발 커뮤니티 외부의 개발자들이 허드슨을 널리 사용하기 시작한 것이 바로 이쯤이다. 내가 일했던 소프트웨어 구성 관리 팀은 다양한 기술 스택에서 표준화된 아키텍처 및 인도 서비스 솔루션을 구현하고자 했는데, 이것이 다양한 기술 스택과 규모를 아우를 수 있는 빌드 및 인도 표준을 정립하려는 노력의 시작이었다.
이런 경험을 통해 지속적 통합, 지속적 인도, 빌드 파이프라인, 테스트 자동화 등 젠킨스의 기능을 확실히 이해할 수 있게 되어, 2012년쯤에는 다양한 규모와 범위의 기술 스택을 아우르는 솔루션을 구현했다. 그리고 마침내 이 책을 쓰면서 이 모든 경험을 정리할 수 있게 되어 무척 기쁘다.

 


★ 옮긴이의 말 ★

오랫동안 소프트웨어 개발을 하는 분야에 있다가 몇 년전 부터는 소프트웨어를 평가하는 업무를 맡게 되었다. 업무 중 하나로써 사업부서에서 요청한 서비스를 구현하기에 적합한 개발사를 발굴하여, 필요시 회사를 직접 방문하고 인터뷰 및 조사를 통해 기술 역량을 파악하기로 하는데, 이를 통해 다양한 프로젝트, 다양한 소프트웨어 개발사와 개발자를 접할 수 있었고, 인터뷰를 통해 국내 스타트업부터 중견 개발사에 이르기까지 각 기업이 추구하는 개발 방법론과 개발 환경을 직접 확인할 수 있었다.
소프트웨어 개발 기업의 역량을 파악하기 위해 다양한 평가 도구를 사용하지만, 그 중 가장 중요한 것이 애플리케이션 수명 관리(Application Lifecycle Management, ALM) 환경이다. ALM은 비즈니스의 요구 사항 관리와 소프트웨어 개발 과정을 융합하고 이를 자동화된 툴을 이용하여 관리하는 것으로, 요구 사항 관리, 설계, 코딩, 테스트, 이슈 관리 및 릴리스 등을 모두 포함한다.
그러므로, 하루가 다르게 진보하는 기술의 변화 속에서 소프트웨어 개발사가 다양한 고객의 요구를 만족시키면서도 지속성을 유지하려면 적은 인원으로도 효율적으로 빠르게 운영되어야 할 필요가 있으며 ALM 환경이 얼마나 효율적으로 운영되는지를 통해서 기업의 역량을 간접적으로 파악할 수가 있다.
국내에도 이제는 많은 기업들이 배포 자동화, 품질 검증 활동 자동화 등을 비즈니스 역량과 통합하여 대응하는 추세다. 특히 대표적인 자동화 솔루션인 젠킨스를 활용하는 기업들이 많다. 하지만 여전히 많은 개발사들이 젠킨스의 무궁무진한 기능은 거의 활용하지 못한채 기초 기능만 사용하는 경우가 많다는 것을 지난 몇 년간의 업무를 통해 알게 됐다.
이 책은 독자가 젠킨스를 활용하여 지속적 통합과 인도, 배포할 수 있는 역량에 필요한 많은 정보를 제공한다. 또한 마스터/슬레이브를 활용한 젠킨스 확장, 고급 테스트 자동화 기법, 빌드 파이프라인 및 플러그인 개발 기법 등 블로그나 인터넷에서는 자세히 설명되어 있지 않는 내용들에 대해서도 다루고 있어, 독자가 속한 조직에서 젠킨스 자동화 솔루션을 구축하고 관리하는데 심화된 지식을 필요로 하는 경우 큰 도움이 될 것이라 생각한다.
아쉬운 점은 젠킨스가 아직 완벽한 한글화가 되지 않아, 영문 그대로 쓰는 경우가 많다는 것이다. 아마 이는 개발사의 규모와 상관없이 젠킨스를 운영 관리하는 사람은 소수이기 때문이기도 할 것이다. 이런 이유로 이 책에서는 영문버전 젠킨스를 기본으로 하고, 필요시 우리말로 부연설명을 하는 방식으로 독자에게 편의를 제공하고자 했다.
또한 이 책을 번역하는 중에 젠킨스 메이저 버전의 업그레이드(2.7)가 이뤄졌다. 이에 업그레이드 버전 검토를 해 본 결과 버그 수정, 기능 변경, 사용자 인터페이스 부분의 일부 변화가 있으나 본 서에서 설명하는 주요 기능에 큰 변화가 없다는 것을 확인했다. 하지만 일부 메뉴의 경우 업그레이드 버전에서 위치가 변경되거나, 접근 경로가 달라져서 혼란이 있을 수 있기 때문에 본서의 기준 버전 이후에 발생한 업그레이드에 대해 젠킨스 공식 사이트에서 제공하는 업그레이드 가이드(https://jenkins.io/doc/upgrade-guide/)를 번역하여, 업그레이드 버전을 사용하는 독자의 혼란을 예방하고자 했다.

목차

1장. 젠킨스 설치와 구성
__젠킨스 플랫폼 아키텍처와 구성 기법
__마이크로소프트 윈도우용 젠킨스
____JVM과 자바 인수값 구성: 포트와 JRE와 메모리
__리눅스와 유닉스용 젠킨스
____JVM 구성
__NGINX 리버스 프록시에서 젠킨스 실행하기
____아파치 리버스 프록시에서 젠킨스 실행하기
__젠킨스에서의 재해복구
____젠킨스 스냅샷 백업
____젠킨스 미러: rsync 설치
__맥 OS X용 젠킨스
____젠킨스 LTS 릴리스 라인
____젠킨스 XML 구성 파일
__요약

2장. 분산 빌드: 마스터/슬레이브 모드
__마스터와 슬레이브 구조 이해
____UI에서 슬레이브 노드 생성하기
__실행 방식을 정하기
____자바 웹스타트를 통한 슬레이브 에이전트
____WMI와 DCOM으로 윈도우에서 슬레이브 에이전트 실행
____SSH 터널링을 통한 슬레이브 에이전트
__젠킨스 슬레이브 관리
____노드 관리 대시보드
____예방적 모니터링
____개별 슬레이브 노드 관리
__레이블과 그룹, 로드밸런싱
____레이블을 생성해 슬레이브를 그룹화하기
____슬레이브를 여러 그룹과 연결하기
____슬레이브 실행을 전역 범위나 연결된 작업 범위로만 제한하기
____분산 빌드를 지원하는 젠킨스 플러그인
__요약

3장. 젠킨스에서 뷰와 작업 생성
__젠킨스 유저 인터페이스
____메인 헤더
____구성 패널
____작업 테이블
____RSS 피드
____젠킨스 빌드 대기 목록과 빌드 실행자 상태 패널
__젠킨스의 작업
____젠킨스의 프리스타일 프로젝트
____메이븐 프로젝트
____외부 작업 모니터링
____젠킨스의 다중 구성 작업: 메트릭스 작업
__뷰 생성
____정규 표현식으로 작업 필터링
__요약

4장. 젠킨스에서 뷰와 작업 관리하기
__젠킨스에서 뷰 관리
____기본 뷰를 바꾸기
____뷰의 기본 내용 변경
____뷰 콘텐츠의 고급 설정
__작업의 프로젝트 페이지 탐색
____구성 패널
____빌드 내역 패널
____프로젝트 개요: 중앙 패널
__작업 실행
__작업 실행 구성 패널
__상태 패널
__콘솔 출력창
__요약

5장. 고급 테스트 자동화
__품질 보증 계획 및 테스트 자동화 용어
__소프트웨어 개발 생명주기
__제품 코드와 테스트를 연결하기
__품질 좋은 제품 만들기
____효율적인 테스트 자동화 아키텍처
__젠킨스의 테스트 자동화
__MSTest를 통한 젠킨스의 단위 테스트
____MSTest 에이전트 설정 방법
____MSTest를 통한 테스트 자동화 실행
____MSTests 실행 및 젠킨스 내에서의 결과 보고
____테스트 작업 구성
__분산형 테스트 솔루션
____셀레늄 그리드
____병렬 다운스트림 작업
__요약

6장. 소프트웨어 배포 및 인도
__빌드 출력 표준화
____패키징 방법 설계
__공인 미디어 라이브러리 구현
____자산을 DML에 발행하기
__배포 자동화
____빌드 아티팩트 및 패키지 검색
____배치 자동화 실행
____배포를 위해 젠킨스 슬레이브 노드 활용
__요약

7장. 빌드 파이프라인
__빌드 파이프라인의 가치 제안
__빌드 파이프라인 설계
____빌드 파이프라인의 첫 번째 세그먼트
____추가 파이프라인 세그먼트
____파이프라인의 완성
____최종 파이프라인 시각화
____포장 판매 및 임베디드형 프로젝트용 변환
__젠킨스에서 빌드 파이프라인 구현
____업스트림 작업: 트리거 방식으로
____다운스트림 작업: 포스트 빌드 액션을 통해
____파라미터라이즈드 트리거 플러그인
____프로모티드 빌드 플러그인
____포스트 빌드 태스크 플러그인
____딜리버리 파이프라인 플러그인
____두 개의 젠킨스 인스턴스 연결: 개발 및 프러덕션
__요약

8장. 지속적 실천
__카이젠: 지속적 개선
____칸반
__지속적 통합
____지속적인 통합이 아닌 것
____코드 기반 브랜치 기법
____기능 토글
____신속한 실패와 더 신속한 복구
____분산 버전 관리
____젠킨스에서의 지속적 통합
__지속적인 인도
____지속적 인도의 원칙
____젠킨스에서의 지속적 인도
__지속적 배포
____젠킨스에서의 지속적 배포
__요약

9장. 젠킨스와의 기술 통합
__젠킨스와 도커: 리눅스 가이드
____도커 컨테이너에서 젠킨스 실행하기: 리눅스
____도커를 사용하는 동적 젠킨스 슬레이브 노드
__젠킨스와 앤서블 통합: 리눅스와 윈도우
__젠킨스와 아티팩토리
__젠킨스와 셀레늄 그리드
____셀레늄 그리드 구축
____테스트를 작성하고 젠킨스에 통합하기
__젠킨스와 지라
__요약

10장. 젠킨스 확장
__개발 환경 설정
__젠킨스 플러그인 스켈레톤 만들기
__플러그인 스켈레톤
__메이븐이 생성한 스켈레톤을 인텔리제이로 가져오기
__젠킨스 플러그인의 아키텍처
____젠킨스 작업 생명주기의 이해
____오버라이드 사용하기
____describables와 지시자로 작업하기
__젤리 태그와 파일
__HPI 플러그인 컴파일 및 설치
__요약

부록. 젠킨스 업그레이드 가이드

top