로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

『초보를 위한 젠킨스 2 활용 가이드 2/e: 지속적인 통합과 배포』

   
지은이 니킬 파타니아   |   출판사 에이콘  |   발행일 2018년 10월 15일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 30,000원27,000원 10%
마일리지 5% 1,500원
발행일 2018-10-15
ISBN 1161752145 | 9791161752143
기타정보 번역서 | 388쪽
예상출고일 1일 (근무일기준)
배송비 무료배송
   
일반
   
 

★ 요약 ★



최근 소프트웨어 개발 업계에서 지속적인 통합을 위해 사용하는 도구 중 가장 널리 쓰이는 것은 젠킨스이다. 젠킨스는 최근 2.0 버전의 배포를 통해 또 한 번의 도약을 준비하고 있다. 이 책에서는 젠킨스 2.0 버전에서 새롭게 추가된 기능을 소개하고, 리눅스와 도커와 같이 다양한 환경에서 젠킨스를 설정하는 방법을 다룬다. 이 책에 있는 다양한 예시를 통해 실전에서 지속적인 통합 및 배포를 설정하는 방법을 배울 수 있을 것이다.





★ 이 책에서 다루는 내용 ★



█ 젠킨스를 설정하는 가장 유명한 방법

█ Pipeline as Code, 멀티브랜치 파이프라인 등 최신 젠킨스 기능 소개

█ 보안을 위한 젠킨스 사용자, 프로젝트 및 권한 관리

█ 젠킨스 플러그인을 효과적으로 활용하는 방법

█ 젠킨스 블루 오션을 활용한 CI 파이프라인 생성

█ 도커와 젠킨스를 활용한 분산 빌드 팜 생성

█ 젠킨스를 이용한 CI와 CD 구축

█ CD와 배포 자동화(Continuous Deployment)의 차이점

█ CI 개념 이해





★ 이 책의 대상 독자 ★



이 책은 애자일, CI, CD 경험이 거의 없는 독자를 대상으로 썼다. 관련 분야를 처음 접하거나 CI와 CD를 이용해 생산성 향상과 배포 시간 단축을 얻고 싶은 독자에게 좋은 입문서가 될 것이다.

빌드와 릴리스 담당자나 데브옵스 엔지니어, SCM(Software Configuration Management) 엔지니어, 개발자, 테스트 담당자, 프로젝트 관리자 모두 이 책에서 유용한 내용을 얻을 것이다. 젠킨스를 이용해 CI를 구성해본 독자라면 CD 구성 방법에 관한 내용을 이 책에서 배울 수 있다.

이번에 발행된 2판은 초판의 내용과 많은 부분 다르다. 특히 코드로 동작하는 파이프라인(Pipeline as Code), 멀티브랜치 파이프라인, 젠킨스 블루오션(Blue Ocean), 도커를 이용한 분산 빌드 서버 등의 유용한 내용을 많이 추가했다.



★ 이 책의 구성 ★



1장, ‘지속적 통합의 개념’에서는 최근 유행하는 방법론이 어떻게 CI로 이어졌는지를 설명한다. 그런 다음 CI를 구성하는 방법과 다양한 요구 조건을 다룬다.

2장, ‘젠킨스 설치’에서는 젠킨스를 도커(Docker)를 비롯한 다양한 환경에 설치하는 방법을 단계별로 설명한다.

3장, ‘새로운 젠킨스’에서는 젠킨스 2.x 버전 인터페이스의 개요와 주요 기능을 다루고, 새로 추가된 기능을 살펴본다.

4장, ‘젠킨스 설정’에서는 젠킨스 관리자가 알아야 하는 부분을 개략적으로 설명한다.

5장, ‘분산 빌드’에서는 도커를 이용한 빌드 환경의 설정 방법을 배우고 새로운 머신을 젠킨스 슬레이브(slave)로 추가하는 방법을 다룬다.

6장, ‘소나큐브와 아티팩토리 설치’에서는 소나큐브(SonarQube)와 아티팩토리(Artifactory)를 CI에 적용하기 위해 설치하고 설정하는 방법을 배운다.

7장, ‘젠킨스를 이용한 CI’에서는 CI의 개념과 젠킨스를 이용해 이를 구성하는 방법을 데브옵스 도구와 연계해 설명한다.

8장, ‘젠킨스를 이용한 CD’에서는 CD의 개념과 젠킨스를 이용해 이를 구성하는 방법을 데브옵스 도구와 연계해 설명한다.

9장, ‘젠킨스를 이용한 배포 자동화’에서는 CD와 배포 자동화(Continuous Deployment)의 차이점을 다룬다. 또한 젠킨스를 이용해 배포 자동화 하는 방법을 자세히 설명한다.

부록, ‘그 밖의 도구와 설치 방법’에서는 외부에서 젠킨스 서버에 접근하는 방법과 깃(Git) 설치 방법을 설명한다.





★ 지은이의 말 ★



최근 몇 년 동안 애자일 방법론은 전 세계적으로 성장해왔다. 이런 현상의 원인 중 하나는 전자 상거래 영역에서 잦은 변경에 빠르게 대응할 수 있는 소프트웨어 배포 솔루션을 원하기 때문이다. 그 결과 CI(Continuous Integration)와 CD(Continuous Delivery) 방법론이 사람들의 관심을 받게 됐다.

대다수 프로젝트가 정도의 차이는 있지만 이런 방법론의 효과를 보고 있다. 이슈의 조기 발견이나 지저분한 코드가 상용 코드에 들어가는 것을 방지, 혹은 빠른 배포를 통해 생산성을 향상시키고 있다.

이 책은 CI와 CD를 넘어 배포 자동화(Continuous Deployment)까지 나아가는 과정을 예제를 통해 단계별로 설명한다. 20%의 이론과 80%의 실습으로 이뤄져 있으며, CI의 개념과 애자일 방법론에서 CI가 중요한 이유를 한 장에 걸쳐 설명한다. 또한 젠킨스(Jenkins)를 설치하고 설정하는 방법을 다루고, 이를 이용해 CI와 CD를 적용시키는 방법을 설명한다. 마지막으로 CD와 지속적 배포의 차이점을 다룬다.

1장. 지속적 통합의 개념

__소프트웨어 개발 주기

____요구 사항 분석

____설계

____구현

____테스트

____진화

__소프트웨어 개발에서의 폭포수 모델

____폭포수 모델의 단점

____폭포수 모델의 장점

__애자일 방법론의 대두

____열두 가지 애자일 원칙

____애자일 방법론의 동작 방식

____애자일 방법론의 장점

__스크럼 프레임워크

____스크럼 프레임워크의 주요 용어

____스크럼의 동작 방식

__지속적 통합

____CI를 이용한 애자일

____CI를 통해 이득을 볼 수 있는 프로젝트 종류

__CI의 구성 요소

____버전 관리 시스템

____브랜칭 전략

____CI 도구

____자동으로 시작되는 빌드

____코드 커버리지

____코드 정적 분석

____자동화된 테스트

____바이너리 관리 도구

____패키징 자동화

__CI 사용의 장점

____복잡하고 어려운 통합부터의 해방

____메트릭

____이슈의 조기 발견

____빠른 개발

__요약





2장. 젠킨스 설치

__서블릿 컨테이너를 이용해 젠킨스 실행하기

____전제 조건

____자바 설치

____아파치 톰캣 설치

____방화벽과 8080 포트 활성화

____아파치 톰캣 서버 설정하기

____아파치 톰캣 서버 위에 젠킨스 설치

____젠킨스를 아파치 톰캣 서버에 독립적으로 설치하기

____젠킨스 홈 경로 설정

__윈도우에 스탠드얼론 젠킨스 설치

____전제 조건

____자바 설치

____최신 안정 버전 젠킨스 설치

____윈도우에서 젠킨스를 시작, 중지, 재시작하기

__우분투에 스탠드얼론 젠킨스 설치하기

____전제 조건

____자바 설치

____젠킨스 최신 버전 설치

____젠킨스 최신 안정 버전 설치

____우분투에서 젠킨스 시작, 종료, 재시작하기

__레드햇 리눅스에 스탠드얼론 젠킨스 설치하기

____전제 조건

____자바 설치

____최신 버전 젠킨스 설치하기

____최신 안정 버전 젠킨스 설치하기

____레드햇 리눅스에서 젠킨스 시작, 종료, 재시작하기

__젠킨스를 리버스 프록시 뒤에서 실행하기

____전제 조건

____Nginx의 설치와 설정

____Nginx 서버 방화벽 설정

____Nginx 서버 시작, 종료, 재시작하기

____OpenSSL을 이용해 Nginx 보안을 유지하기

____젠킨스 서버 설정

____Nginx 설정에 리버스 프록시 추가하기

____젠킨스와 Nginx를 같은 머신에서 실행하기

__도커에서 젠킨스 실행하기

____전제 조건

____도커 호스트 설정

____젠킨스 컨테이너 실행하기

____데이터 볼륨을 이용한 젠킨스 컨테이너 실행

__젠킨스 개발 및 스테이징 인스턴스 만들기

____전제 조건

____빈 데이터 볼륨 생성

____데이터 볼륨 간 파일 복사

____개발 및 스테이징 인스턴스 생성

__요약





3장. 새로운 젠킨스

__젠킨스 설정 마법사

____전제 조건

____젠킨스 잠금 해제하기

____젠킨스 커스터마이징

____첫 번째 관리자 만들기

__새로운 젠킨스 파이프라인 잡

____전제 조건

____젠킨스 파이프라인 잡 만들기

____전역 도구 환경 설정 페이지

____젠킨스 파이프라인 스테이지 뷰

__서술적 파이프라인 문법

____서술적 파이프라인의 기본 구조

__젠킨스 파이프라인 문법 도구

____전제 조건

__멀티브랜치 파이프라인

____전제 조건

____젠킨스에서 멀티브랜치 파이프라인 생성하기

____Webhooks 재등록

____젠킨스 멀티브랜치 파이프라인 인 액션

__젠킨스 블루오션

____젠킨스 블루오션 플러그인 설치하기

____블루오션에서 기본적인 젠킨스 파이프라인 살펴보기

____블루오션에서 파이프라인 생성하기

__요약





4장. 젠킨스 설정

__젠킨스 플러그인 매니저

____젠킨스 플러그인 업데이트

____새로운 젠킨스 플러그인 설치

____젠킨스 플러그인을 삭제하거나 다운그레이드하기

____젠킨스에 프록시 설정하기

____수작업으로 젠킨스 플러그인 설치하기

__젠킨스 백업과 복원

____Periodic Backup 플러그인 설치하기

____Periodic Backup 플러그인 설정하기

____젠킨스 백업 생성하기

____젠킨스 백업 복원하기

____백업과 복원 로그 확인하기

__젠킨스 업그레이드

____톰캣 서버 위에서 돌아가는 젠킨스 업그레이드

____윈도우에서 스탠드얼론 젠킨스 업그레이드하기

____우분투에서 스탠드얼론 젠킨스 업그레이드

____도커 컨테이너에서 젠킨스 업그레이드하기

__사용자 관리

____젠킨스에서 전역 보안의 활성화와 비활성화

____사용자 정보를 컴퓨터에 저장하는 옵션의 활성화와 비활성화

____인증 방식

____젠킨스 내부에 새로운 사용자 생성하기

____People 페이지

____권한 설정 방식

__요약





5장. 분산 빌드

__분산 빌드와 테스트

__젠킨스 노드 관리 페이지

__젠킨스 슬레이브 추가하기: 스탠드얼론 리눅스 머신/VM

____젠킨스 슬레이브에 환경 변수 전달하기

____도구의 위치 전달하기

____SSH를 통해 젠킨스 슬레이브 실행

__활성화된 젠킨스 슬레이브에 대한 추가 정보

__젠킨스 슬레이브 추가하기: 스탠드얼론 윈도우 머신/VM

____Java Web Start를 통해 젠킨스 슬레이브 시작시키기

__젠킨스 슬레이브 추가하기: 도커 컨테이너

____전제 조건

____도커 원격 API 활성화

____도커 플러그인 설치

____도커 플러그인 설정

____도커 이미지 생성하기 - 젠킨스 슬레이브

____젠킨스에 도커 컨테이너 인증 정보 추가

____젠킨스에 도커 설정 업데이트

__요약





6장. 소나큐브와 아티팩토리 설치

__소나큐브 설치와 설정

____자바 설치

____소나큐브 패키지 다운로드

____소나큐브 애플리케이션 실행

____기본 인증 정보 초기화와 토큰 생성

____소나큐브에서 프로젝트 생성하기

____소나큐브에 빌드 브레이커 플러그인 설치

____퀄리티 게이트 생성

____기본 퀄리티 게이트 프로파일 업데이트

____젠킨스에 소나큐브 플러그인 설치

____젠킨스의 소나큐브 플러그인 설정

__아티팩토리 설치와 설정

____자바 설치

____아티팩토리 패키지 다운로드

____아티팩토리 애플리케이션 실행

____기본 인증 정보 초기화 및 API 키 생성

____아티팩토리에 저장소 추가

____젠킨스에 아티팩토리 인증 정보 추가

____젠킨스에 아티팩토리 플러그인 설치

____아티팩토리 플러그인 설정

__요약





7장. 젠킨스를 이용한 CI

__젠킨스 CI 구조

____브랜치 전략

____CI 파이프라인

____CI를 위한 도구 모음

__CI 파이프라인 생성

____깃허브에 새로운 저장소 생성

____메이븐을 위한 소나큐브 스캐너 활용

____CI를 위한 Jenkinsfile 작성

____Jenkinsfile 활용

____젠킨스에 멀티브랜치 파이프라인 생성

____Webhooks 재등록

__준비 완료된 CI

____소나큐브에서 정적 코드 분석 결과 보기

____젠킨스에서 소나큐브 분석 결과에 접근하기

____아티팩토리에서 아티팩트 확인

____퀄리티 게이트의 조건을 통과하지 못했을 때 빌드 실패시키기

__요약





8장. 젠킨스를 이용한 배포 자동화

__젠킨스 CD 구조

____브랜치 전략

____CD 파이프라인

____CD를 위한 도구 모음

____도커 이미지 생성: 성능 테스트

____젠킨스에 도커 컨테이너 인증 정보 추가

____젠킨스에 도커 설정 업데이트

__제이미터를 이용해 성능 테스트 생성

____자바 설치

____아파치 제이미터 설치

____제이미터 시작하기

____성능 테스트 케이스 만들기

__CD 파이프라인

____CD를 위한 Jenkinsfile 작성

__최종 준비된 CD

__요약





9장. 젠킨스를 이용한 Continuous Deployment

__Continuous Deployment 정의

__프로덕션 서버 생성

____베이그런트 설치

____버추얼박스 설치

____베이그런트를 이용해 VM 생성

____젠킨스에 프로덕션 서버 인증 정보 추가

__프로덕션 서버에 젠킨스 슬레이브 설치

__젠킨스 Continuous Deployment 파이프라인 생성

____CD 파이프라인 검토

____프로덕션 젠킨스 슬레이브를 위한 파이프라인 코드

____아티팩토리에서 바이너리를 다운로드하기 위한 파이프라인 코드

____Continuous Deployment 파이프라인 코드 조합

____Jenkinsfile 수정

__준비 완료된 Continuous Deployment

__요약



부록. 추가 도구와 설치 가이드

__로컬 서버를 외부 인터넷에 노출하기

__윈도우와 리눅스에 깃 설치

____윈도우에 깃 설치

____리눅스에 깃 설치



니킬 파타니아(Nikhil Pathania)

현재 지멘스(Siemens Gamesa Renewable Energy)에서 데브옵스(DevOps) 일을 하고 있다. SCM 관리자로 일하기 시작해 데브옵스와 자동화 분야로 옮겨 다양한 도구와 기술을 활용하고 있다. 일하면서 다양한 IT 프로젝트에서 CI(Continuous Integration)와 CD(Continuous Delivery) 솔루션을 개발하고 적용하고 있다.

수작업으로 해야 하는 부분을 자동화시키는 것과 여러 지표를 이용해 팀원들이 소프트웨어 개발 주기를 이해할 수 있도록 돕는 데 관심이 많다. 최근에는 일래스틱 스택(Elastic Stack)과 컨테이너 기술을 데브옵스에 적용시키는 일을 하고 있다.

시간이 날 때마다 책을 읽거나 쓰고 명상을 하며, 열정적인 등산가로 자전거 타기나 등산을 즐겨한다. 트위터 @otrekpiko를 통해 연락할 수 있다.





★ 옮긴이의 말 ★



소프트웨어 개발 방법론은 급격한 변화의 시기를 겪으며 현재 애자일로 수렴하고 있는 추세다. 아마도 웹 개발이 소프트웨어 업계 중 가장 큰 영역을 차지하고 있으며, 이 분야의 특징인 잦은 요구 사항 변경과 빠른 개발 주기에 애자일이 가장 잘 부합하기 때문일 것이다. 애자일 방법론에는 기술적인 요소보다 기술적이지 않은 요소가 더 많지만, 가장 중요한 기술적인 요소 한 가지가 꼭 필요하다. 흔히 지속적인 통합, 혹은 지속적인 배포라고 불리는 요소로 소프트웨어 빌드, 테스트, 배포를 자동화하는 부분이다.

젠킨스는 이 지속적 통합 분야에서 사실상 업계 표준으로 자리잡았다. 2005년 허드슨이란 이름으로 처음 프로젝트가 시작된 후, 2011년에 젠킨스로 이름을 바꾼 후에도 계속해서 시장 점유율을 늘려가고 있다. 오픈소스인 점, 플러그인을 통해 다양한 프로그램과의 호환성이 보장되는 것, 설치가 쉽고, 사용이 용이하다는 점이 젠킨스를 계속해서 사용하게 한다.

젠킨스가 소프트웨어 개발의 자동화를 도와주는 것은 분명하지만, 젠킨스를 관리하는 부분은 여전히 많은 수작업을 요한다. 수많은 노드의 생성, 관리, 빌드와 배포 환경의 복잡함을 지원하기 위해 점차 지저분해지는 젠킨스 내부 설정 등 젠킨스 자체를 사용하는 것은 마치 젠킨스 도입 전 소프트웨어 개발 환경처럼 많은 수작업이 필요했다.

이 책에서는 이런 문제를 해결하기 위해 젠킨스를 사용하는 세 가지 방향을 제시한다. 첫 번째는 도커를 이용해 노드 관리를 자동화하는 것이고, 두 번째는 젠킨스 파일을 도입해 스크립트 관리 기능을 향상시키는 것이다. 마지막은 젠킨스의 새 버전(2.0)에서 도입된 젠킨스 블루오션이라는 새로운 UI를 통해 복잡한 작업 흐름을 관리하는 방법이다.





★ 옮긴이 소개 ★



이상욱

2010년부터 LG CNS, 뷰웍스(Vieworks)를 거쳐 현재는 호주 엑스그룹(Axe Group)에서 소프트웨어 개발을 하고 있다. 다양한 개발 도구에 관심이 많으며, 특히 자동화 도구에 관심이 많다. 에이콘출판사가 펴낸 『Yocto 프로젝트를 활용한 임베디드 리눅스 개발』(2014)을 번역했다.
등록된 서평이 없습니다.
 
전체평균(0)
회원평점   회원서평수 0
에이콘 출판사의 신간
『*OS Internals Vol.3: 애플 운영체제의 보안과 취약점』
조나단 레빈 저
45,000원
(10%↓+5%)
 
『OAuth 2.0 쿡북: Spring Security를 이용한 OAuth 애플리케이션 개발』
아돌포 엘로이 나시멘토 저
36,000원
(10%↓+5%)
 
GitHub를 활용한 다양한 도구 개발 : 개발 워크플로 최적화
크리스 도슨, 벤 스트라우브 저
27,000원
(10%↓+5%)
 
『파이썬으로 만드는 서버리스 애플리케이션: 24시간 사용 가능한 효율적인 웹 애플리케이션 개발』
잘렘 라지 로히트 저
22,500원
(10%↓+5%)
 
『이득우의 언리얼 C++ 게임 개발의 정석』
이득우 저
45,000원
(10%↓+5%)
 
이메일주소수집거부