1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

배포 자동화와 지속적 인도(도커와 젠킨스 쿠버네티스로 만드는)
저자 : RAFAL LESZKO ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 이정표

2022.08.31 ㅣ 396p ㅣ ISBN-13 : 9791161756271

정가35,000
판매가33,250(5% 할인)
적립금 1,400원 (4%)
배송일정 04월 29일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 시스템공학 > 소프트웨어공학
소프트웨어를 개발해 고객에게 인도하는 절차를 효과적으로 구축하는 데 필요한 주요 기술과 사례를 설명한다. 지속적 통합 및 인도의 기본 개념과 구조를 설명한다. 또한 젠킨스와 도커, 쿠버네티스와 앤서블을 이용해 애플리케이션을 빌드하고, 지속적으로 통합하고, 테스트를 자동화하고, 구성을 관리해서 지속적으로 배포하는 프로세스를 체계적으로 구축하는 방법을 구체적인 사례를 가지고 설명한다. 이 책을 통해 자신의 조직에 적합한 지속적 통합/인도 프로세스를 계획하고, 실제로 적용하고, 발전시키는 데 필요한 지식을 갖출 수 있다.


◆ 도커의 기초를 배우고 지속적 인도 프로세스에 맞게 애플리케이션을 도커 이미지로 제작하기
◆ 클라우드 환경에서 젠킨스 활용하기
◆ 쿠버네티스로 도커 서버 풀 확장하기
◆ 큐컴버로 인수 테스트를 작성하고 이를 도커 환경에서 젠킨스로 실행하기
◆ 도커 레지스트리에 이미지를 발행하고 모범 사례에 맞춰 젠킨스 파이프라인 배포하기
펼쳐보기

[목 차]

1부. 환경 설정


1장. 지속적 인도 소개
__지속적 인도(CD)의 이해
____전통적 인도 프로세스
______전통적 인도 프로세스의 동작 방식
______전통적 인도 프로세스의 단점
____지속적 인도(CD) 방식의 장점
____성공 스토리
__자동 배포 파이프라인
____지속적 통합(CI)
____자동 인수 테스트
______애자일 테스팅 매트릭스
______테스트 피라미드
____구성 관리
__CD의 전제 조건
____조직 구조의 전제 조건
______데브옵스 문화
______프로세스 내의 고객
______사업적 의사결정
____기술 및 개발의 전제 조건
__CD 프로세스 구축
____도구 소개
______도커 생태계
______젠킨스
______앤서블
______깃허브
______자바/스프링 부트/그래들
______그 외의 도구들
__완벽한 CD 시스템 생성하기
____도커 소개
____젠킨스 구성
____지속적 통합 파이프라인
____자동 인수 테스트
____쿠버네티스 클러스터링
____앤서블로 하는 구성 관리
____지속적 인도 파이프라인/지속적 인도-고급편
__요약
__질문
__더 읽을거리


2장. 도커 소개
__기술 요구 사항
__도커 소개
____컨테이너화와 가상화 비교
____도커의 필요성
______실행 환경
______격리
______애플리케이션 구성
______이식성
____고양이와 가축
____다른 컨테이너화 기술들
__도커 설치
____도커에 필요한 환경
____로컬 머신에 설치하기
______도커 데스크톱
______우분투용 도커
______다른 리눅스 배포판용 도커
______도커 설치 테스트
______서버에 설치
______전용 서버
__도커에서 hello-world 실행하기
____도커 컴포넌트
______도커 클라이언트와 서버
______도커 이미지와 컨테이너
__도커 애플리케이션
__도커 이미지 빌드
____도커 커밋
____도커파일
____도커 애플리케이션 완성하기
______애플리케이션 작성
______환경 준비하기
______이미지 빌드하기
______애플리케이션 실행하기
______환경 변수
__도커 컨테이너 상태
__도커 네트워킹
____서비스 실행하기
____컨테이너 네트워크
____컨테이너 포트 공개
____자동 포트 할당
__도커 볼륨 사용하기
__도커에서 이름 사용하기
____컨테이너 이름 지정하기
____이미지에 태그 달기
__도커 클린업
____컨테이너 클린업
____이미지 클린업
__도커 명령어 살펴보기
__요약
__연습 문제
__질문
__더 읽을거리


3장. 젠킨스 구성
__기술 요구 사항
__젠킨스란 무엇인가?
__젠킨스 설치
____도커로 젠킨스 설치하기
____전용 패키지로 젠킨스 설치하기
______초기 구성
____쿠버네티스에 젠킨스 설치하기
____클라우드에서 젠킨스 사용하기
__젠킨스-Hello World
__젠킨스 아키텍처
____마스터와 에이전트
____확장성
______수직적 확장
______수평적 확장
____테스트 인스턴스/프로덕션 인스턴스
____샘플 아키텍처
__에이전트 구성하기
____통신 프로토콜
____에이전트 설정하기
______영구 에이전트
______영구 도커 호스트 에이전트
______젠킨스 스웜 에이전트
______동적 프로비저닝 도커 에이전트
______동적 프로비저닝 쿠버네티스 에이전트
____동적 프로비저닝 쿠버네티스 에이전트 이해하기
____에이전트 테스트하기
__커스텀 젠킨스 이미지
____젠킨스 에이전트 구축하기
____젠킨스 마스터 빌드하기
__구성 및 관리
____플러그인
____보안
____백업
____블루오션 UI
__요약
__연습 문제
__질문
__더 읽을거리


2부. 애플리케이션 설계 및 테스트


4장. 지속적 통합 파이프라인
__기술 요구 사항
__파이프라인 소개
____파이프라인의 구조
____멀티-스테이지 Hello World
____파이프라인 구문
______섹션
______지시어
______스텝
__커밋 파이프라인
____체크아웃
______깃허브 리포지토리 생성
______체크아웃 스테이지 생성하기
____컴파일
______자바 스프링 부트 프로젝트 생성하기
______코드를 깃허브로 푸시하기
______컴파일 스테이지 생성하기
____단위 테스트
______비즈니스 로직 생성하기
______단위 테스트 작성하기
______단위 테스트 스테이지 생성하기
____젠킨스파일
______젠킨스파일 생성하기
______젠킨스파일에서 파이프라인 실행하기
__코드-품질 스테이지
____코드 커버리지
______JaCoCo를 그래들에 추가하기
______코드 커버리지 스테이지 추가하기
______코드 커버리지 리포트 발행하기
____정적 코드 분석
______체크스타일 구성 추가하기
______정적 코드 분석 스테이지 추가하기
______정적 코드 분석 리포트 발행하기
____소나큐브
__트리거와 알림
____트리거
______외부 트리거
______폴링 SCM 트리거
______스케줄 빌드 트리거
____알림
______이메일
______그룹 채팅
______팀 사무실
__팀 개발 전략
____개발 워크플로우
______트렁크-기반 워크플로우
______브랜치 워크플로우
______포크 워크플로우
____지속적 통합 적용하기
______브랜치 전략
______기능 토글
____젠킨스 멀티-브랜치
____비기술 요구 사항
__요약
__연습 문제
__질문
__더 읽을거리


5장. 자동 인수 테스트
__기술 요구 사항
__인수 테스트 소개
__도커 레지스트리
____아티팩트 리포지토리
____도커 레지스트리 설치하기
______클라우드 방식 도커 레지스트리
______도커 허브
______자체 호스팅 방식 도커 레지스트리
____도커 레지스트리 사용하기
______이미지 빌드하기
______레지스트리로 이미지 푸시하기
______레지스트리에서 이미지 가져오기
__젠킨스 파이프라인에서의 인수 테스트
____도커 빌드 스테이지
______도커파일 추가하기
______도커 빌드를 파이프라인에 추가하기
____도커 푸시 스테이지
____인수 테스트 스테이지
______스테이징 배포를 파이프라인에 추가하기
______인수 테스트를 파이프라인에 추가하기
______클린업 스테이지 추가하기
__인수 테스트 작성하기
____사용자 - 대면 테스트 작성하기
____인수 테스트 프레임워크 사용하기
______인수 기준 생성하기
______스텝 정의 생성하기
______자동 인수 테스트 실행하기
____인수 테스트-주도 개발
__요약
__연습 문제
__질문
__더 읽을거리


6장. 쿠버네티스로 하는 클러스터링
__기술 요구 사항
__서버 클러스터링
____서버 클러스터링 소개
__쿠버네티스 소개
____쿠버네티스 기능 개요
__쿠버네티스 설치
____쿠버네티스 클라이언트
____쿠버네티스 서버
______로컬 환경
______클라우드 플랫폼
______사내 설치
____쿠버네티스 설정 검증
____쿠버네티스 사용하기
______애플리케이션 배포
______쿠버네티스 서비스 배포
______애플리케이션 노출
__쿠버네티스의 고급 기능
____애플리케이션 확장
____애플리케이션 업데이트하기
____롤링 업데이트
____쿠버네티스 객체와 워크로드
__애플리케이션 의존성
____쿠버네티스 DNS 확인
____멀티 애플리케이션 시스템 개요
____멀티 애플리케이션 시스템 구현
______그래들에 Hazelcast 클라이언트 라이브러리 추가하기
______Hazelcast 캐시 구성 추가하기
______스프링 부트 캐시 추가하기
______도커 이미지 빌드하기
____멀티 애플리케이션 시스템 테스트
__대체 다른 클러스터 관리 시스템
____도커 스웜
____아파치 Mesos
____기능 비교
__요약
__연습 문제
__질문
__더 읽을거리


3부. 애플리케이션 배포


7장. 앤서블로 하는 구성 관리
__기술 요구 사항
__구성 관리 소개
____좋은 구성 관리 도구의 특징
____구성 관리 도구 개요
__앤서블 설치
____앤서블 서버 요구 사항
____앤서블 설치
__앤서블 사용하기
____인벤토리 생성하기
____애드혹 명령
____플레이북
______플레이북 정의하기
______플레이북 실행하기
______플레이북의 멱등성
______핸들러
______변수
____롤
______롤 이해하기
______앤서블 갤럭시
__앤서블을 이용한 배포
____Hazelcast 설치하기
____웹 서비스 배포하기
______Hazelcast 호스트 주소 변경하기
______플레이북에 계산기 배포 추가하기
______배포 실행하기
__도커 및 쿠버네티스와 앤서블
____앤서블의 장점
____앤서블 도커 플레이북
______도커 설치하기
______도커 컨테이너 실행하기
______앤서블 쿠버네티스 플레이북
__요약
__연습 문제
__질문
__더 읽을거리
__기술 요구 사항


8장. 지속적 인도 파이프라인
__환경 및 인프라
____환경 유형
______프로덕션 환경
______스테이징 환경
______테스트 환경
______개발 환경
______지속적 인도 환경
______보안 환경
__비기능 테스트
____비기능 테스트의 유형
______성능 테스트
______내구성 테스트
______보안 테스트
______유지보수 테스트
______복구 테스트
____비기능 테스트의 어려운 점
__애플리케이션 버전 관리
____버전 관리 전략
____젠킨스 파이프라인에서의 버전 관리
__지속적 인도 파이프라인 완성하기
____인벤토리
____버전 관리
____원격 스테이징 환경
____인수 테스트 환경
____릴리스
____스모크 테스트
____젠킨스파일 완성하기
__요약
__연습 문제
__질문
__더 읽을거리
__기술 요구 사항


9장. 지속적 인도 - 고급편
__데이터베이스 변경 관리
____스키마 업데이트의 이해
______데이터베이스 마이그레이션 소개
______Flyway 사용
____지속적 인도에서 데이터베이스 변경
______하위 버전과 호환이 가능하게 변경한 경우
______하위 버전과 호환이 불가능하게 변경한 경우
______코드 변경 사항에서 데이터베이스 업데이트 분리
____공유 데이터베이스 분리
____테스트 데이터 준비
______단위 테스트
______통합/인수 테스트
______성능 테스트
__파이프라인 패턴
____파이프라인 병렬화
____파이프라인 컴포넌트 재사용
______파라미터 방식 빌드
______공유 라이브러리
____배포 롤백
____수작업 스텝 추가
__릴리스 패턴
____블루-그린 배포
____카나리아 릴리스
__레거시 시스템과의 연동
____빌드 및 배포 자동화
____테스트 자동화
____리팩토링과 새로운 기능 추가
____인간적 요소의 이해
__요약
__연습 문제
__질문
__더 읽을거리
펼쳐보기
◈ 이 책의 대상 독자 ◈

데브옵스 엔지니어와 시스템 관리자, 도커 전문가 또는 도커와 젠킨스를 통합하는 방법에 관심이 있는 개발자를 대상으로 한다.


◈ 이 책의 구성 ◈

1장, ‘지속적 인도 소개’에서는 전통적인 인도 프로세스의 문제점을 보여주고, 아마존과 야후의 성공 사례를 설명한다.
2장, ‘도커 소개’에서는 컨테이너화에 대해 간략히 소개하고, 도커 플랫폼으로 애플리케이션과 서비스를 운영할 때의 이점을 알아본다.
3장, ‘젠킨스 구성’에서는 젠킨스 도구와 아키텍처를 소개하고, 마스터/에이전트 인스턴스를 도커 서버나 클라우드에 또는 도커 없이 설치하는 방법을 알아본다. 그런 다음 에이전트 확장 방법을 다룬다.
4장, ‘지속적 통합 파이프라인’에서는 기존의 지속적 통합 파이프라인에서 세 가지 주요 단계(체크아웃, 빌드, 단위 테스트)가 어떻게 이뤄지는지를 설명한다.
5장, ‘자동인수 테스트’에서는 애플리케이션을 릴리스하기 전에 자동 인수 테스트를 수행해 전체 시스템이 예상대로 동작하는지를 확인하는 방법에 대해 설명한다.
6장, ‘쿠버네티스로 하는 클러스터링’에서는 도커 도구를 사용해서 여러 팀과 프로젝트로 규모를 확장하는 방법을 설명한다. 쿠버네티스에 대해 소개하고, 이를 지속적 인도 프로세스에서 사용하는 방법을 배운다.
7장, ‘앤서블로 하는 구성 관리’에서는 서버를 확장하고 여기에 애플리케이션을 배포하는 방법을 배운다.
8장, ‘지속적 인도 파이프라인’에서는 최종 파이프라인에서 다루지 않은 주제인 환경 및 인프라 구성, 애플리케이션 버전 관리, 비기능 테스트 등을 다룬다.
9장, ‘지속적 인도 - 고급편’에서는 완전한 파이프라인을 구축한 후 당면하게 될, 더 어려운 실제 시나리오를 다룬다.


◈ 지은이의 말 ◈

이 책은 지속적 통합을 적용한 앱 개발 방식을 개선하는 데 있어 어떻게 도커와 젠킨스를 잘 활용할 수 있는지를 다룬다. 처음에는 도커 서버의 설정과 젠킨스를 구성하는 것으로 시작한다. 그런 다음 도커 파일에서 애플리케이션을 빌드하고, 이를 지속적 통합, 인수 테스트 자동화, 구성 관리와 같은 지속적 인도 프로세스를 사용해 젠킨스와 통합하는 단계를 간략히 다룬다.
이어서 쿠버네티스와 젠킨스의 확장 기능, 도커 컨테이너로 애플리케이션을 신속하게 배포하는 방법을 배우고, 도커 이미지로 배포한 애플리케이션을 젠킨스로 테스트하는 과정을 알아본다. 그리고 CD 파이프라인에서 다루지 않았던 환경과 인프라 구성, 애플리케이션 버전 관리, 비기능 테스트에 대해서도 살펴본다. 이 책의 마지막에서는 도커와 젠킨스의 기능을 통합해 데브옵스 워크플로우를 향상시킬 것이다.


◈ 옮긴이의 말 ◈

나는 오랫동안 소프트웨어 개발 분야에 있다가 몇 년 전부터는 소프트웨어 용역 개발 분야에 솔루션과 개발사를 발굴하고 평가하는 업무를 하고 있다. 사업 부서에서 요청한 서비스를 구현하기에 적합한 개발사를 발굴해, 필요시 회사를 직접 방문했다. 인터뷰와 조사로 기술 역량을 파악해 다양한 프로젝트, 소프트웨어 개발사와 개발자와 만날 수 있었고, 인터뷰로 국내 스타트업부터 중견 개발사에 이르기까지 각 기업이 추구하는 개발 방법론과 개발 환경을 직접 확인할 수 있었다.
소프트웨어 개발 기업의 역량을 파악하고자 다양한 평가 도구를 사용하지만, 그중 가장 중요한 것이 애플리케이션 수명 관리(ALM, Application Lifecycle Management) 환경이다. ALM은 비즈니스의 요구 사항 관리와 소프트웨어 개발 과정을 융합하고 이를 자동화된 툴을 이용해 관리하는 것이다. 이는 요구 사항 관리, 설계, 코딩, 테스트, 이슈 관리, 릴리스 등을 모두 포함한다.
그러므로 하루가 다르게 진보하는 기술의 변화 속에서 소프트웨어 개발사가 다양한 고객의 요구를 만족시키면서도 지속성을 유지하려면 적은 인원으로도 효율적으로 빠르게 운영돼야 한다. ALM 환경이 얼마나 효율적으로 운영되는지를 보고 기업의 역량을 간접적으로 파악할 수 있다. 기술 조사 및 평가 업무를 시작하던 수 년전까지만 해도 지속적 통합과 인도(CI/CD) 프로세스는 대형 인터넷 기업이나 일부 팀에서만 적용하고 있던 개발 방법이었다. 그러나 이후 스타트업이 폭발적으로 성장하면서 애자일, 린 스타트업 등의 방법론이 폭넓게 확산됐다. 이제는 국내의 많은 기업도 배포 자동화, 품질 검증 활동 자동화 등을 비즈니스 역량과 통합해 대응하는 추세다.
이 책은 소프트웨어를 개발해 고객에게 인도하는 절차를 효과적으로 구축하며, 필요한 최신 기술을 활용해 구체적으로 구현하는 방법을 설명한다. 깔끔한 구성과 유용한 내용 덕분에 2017년 초반 발행 이후 지속적인 인기를 누리면서 현재까지도 꾸준히 업데이트되고 있다. 모쪼록 자신의 조직에 적합한 지속적 통합/인도 프로세스를 계획하고, 실제로 적용하며 발전시키는 데 필요한 지식을 갖추고자 하는 독자들에게 도움이 됐으면 한다.
펼쳐보기
라파엘 레쉬코(Rafał Leszko)
소프트웨어 개발자이자 강사로, 폴란드 크라쿠프에 살고 있다. 구글, CERN, Hazelcast 등 여러 기업에서 개발자와 아키텍트로 경력을 쌓았다. 또한 Devoxx와 Voxxed Days를 포함한 많은 국제 회의에서 강연 및 워크숍을 진행했으며, 항상 새로운 도전에 열린 자세를 갖고 있다.

옮긴이 이정표
모바일 브라우저 개발부터 클라우드 서비스 기획까지 20년간 다양한 개발 프로젝트에 참여했으며, 현재는 통신회사에서 SW/IT 분야의 기술조사평가 업무를 하고 있다.
옮긴 책으로는 에이콘출판사에서 펴낸 『Hudson3 설치와 운용』(2014), 『난독화, 디지털 프라이버시 생존 전략』(2017), 『젠킨스 마스터』(2018), 『젠킨스 블루오션 시작하기』(2019), 『린 모바일 앱 개발』(2019), 『알고리즘 윤리』(2021) 등이 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기