Top

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

  • 원서명Learning Continuous Integration with Jenkins: A beginner's guide to implementing Continuous Integration and Continuous Delivery using Jenkins 2, 2nd Edition (ISBN 9781788479356)
  • 지은이니킬 파타니아(Nikhil Pathania)
  • 옮긴이이상욱
  • ISBN : 9791161752143
  • 30,000원
  • 2018년 10월 15일 펴냄
  • 페이퍼백 | 388쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

최근 소프트웨어 개발 업계에서 지속적인 통합을 위해 사용하는 도구 중 가장 널리 쓰이는 것은 젠킨스이다. 젠킨스는 최근 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와 지속적 배포의 차이점을 다룬다.

지은이 소개

니킬 파타니아(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)을 번역했다.

목차

목차
  • 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
    • 요약
  • 부록. 추가 도구와 설치 가이드
    • 로컬 서버를 외부 인터넷에 노출하기
    • 윈도우와 리눅스에 깃 설치
      • 윈도우에 깃 설치
      • 리눅스에 깃 설치

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.41 : 2행]
존 백로그의
->
기존 백로그의

[p.214 : 7행]
관리가자 된다.
->
관리자가 된다.