이미 소장하고 있다면 판매해 보세요.
|
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 사용 ____지속적 인도에서 데이터베이스 변경 ______하위 버전과 호환이 가능하게 변경한 경우 ______하위 버전과 호환이 불가능하게 변경한 경우 ______코드 변경 사항에서 데이터베이스 업데이트 분리 ____공유 데이터베이스 분리 ____테스트 데이터 준비 ______단위 테스트 ______통합/인수 테스트 ______성능 테스트 __파이프라인 패턴 ____파이프라인 병렬화 ____파이프라인 컴포넌트 재사용 ______파라미터 방식 빌드 ______공유 라이브러리 ____배포 롤백 ____수작업 스텝 추가 __릴리스 패턴 ____블루-그린 배포 ____카나리아 릴리스 __레거시 시스템과의 연동 ____빌드 및 배포 자동화 ____테스트 자동화 ____리팩토링과 새로운 기능 추가 ____인간적 요소의 이해 __요약 __연습 문제 __질문 __더 읽을거리 |
Rafał Leszko
이정표의 다른 상품
|
◈ 이 책에서 다루는 내용 ◈
◆ 도커의 기초를 배우고 지속적 인도 프로세스에 맞게 애플리케이션을 도커 이미지로 제작하기 ◆ 클라우드 환경에서 젠킨스 활용하기 ◆ 쿠버네티스로 도커 서버 풀 확장하기 ◆ 큐컴버로 인수 테스트를 작성하고 이를 도커 환경에서 젠킨스로 실행하기 ◆ 도커 레지스트리에 이미지를 발행하고 모범 사례에 맞춰 젠킨스 파이프라인 배포하기 ◈ 이 책의 대상 독자 ◈ 데브옵스 엔지니어와 시스템 관리자, 도커 전문가 또는 도커와 젠킨스를 통합하는 방법에 관심이 있는 개발자를 대상으로 한다. ◈ 이 책의 구성 ◈ 1장, ‘지속적 인도 소개’에서는 전통적인 인도 프로세스의 문제점을 보여주고, 아마존과 야후의 성공 사례를 설명한다. 2장, ‘도커 소개’에서는 컨테이너화에 대해 간략히 소개하고, 도커 플랫폼으로 애플리케이션과 서비스를 운영할 때의 이점을 알아본다. 3장, ‘젠킨스 구성’에서는 젠킨스 도구와 아키텍처를 소개하고, 마스터/에이전트 인스턴스를 도커 서버나 클라우드에 또는 도커 없이 설치하는 방법을 알아본다. 그런 다음 에이전트 확장 방법을 다룬다. 4장, ‘지속적 통합 파이프라인’에서는 기존의 지속적 통합 파이프라인에서 세 가지 주요 단계(체크아웃, 빌드, 단위 테스트)가 어떻게 이뤄지는지를 설명한다. 5장, ‘자동인수 테스트’에서는 애플리케이션을 릴리스하기 전에 자동 인수 테스트를 수행해 전체 시스템이 예상대로 동작하는지를 확인하는 방법에 대해 설명한다. 6장, ‘쿠버네티스로 하는 클러스터링’에서는 도커 도구를 사용해서 여러 팀과 프로젝트로 규모를 확장하는 방법을 설명한다. 쿠버네티스에 대해 소개하고, 이를 지속적 인도 프로세스에서 사용하는 방법을 배운다. 7장, ‘앤서블로 하는 구성 관리’에서는 서버를 확장하고 여기에 애플리케이션을 배포하는 방법을 배운다. 8장, ‘지속적 인도 파이프라인’에서는 최종 파이프라인에서 다루지 않은 주제인 환경 및 인프라 구성, 애플리케이션 버전 관리, 비기능 테스트 등을 다룬다. 9장, ‘지속적 인도 - 고급편’에서는 완전한 파이프라인을 구축한 후 당면하게 될, 더 어려운 실제 시나리오를 다룬다. ◈ 지은이의 말 ◈ 이 책은 지속적 통합을 적용한 앱 개발 방식을 개선하는 데 있어 어떻게 도커와 젠킨스를 잘 활용할 수 있는지를 다룬다. 처음에는 도커 서버의 설정과 젠킨스를 구성하는 것으로 시작한다. 그런 다음 도커 파일에서 애플리케이션을 빌드하고, 이를 지속적 통합, 인수 테스트 자동화, 구성 관리와 같은 지속적 인도 프로세스를 사용해 젠킨스와 통합하는 단계를 간략히 다룬다. 이어서 쿠버네티스와 젠킨스의 확장 기능, 도커 컨테이너로 애플리케이션을 신속하게 배포하는 방법을 배우고, 도커 이미지로 배포한 애플리케이션을 젠킨스로 테스트하는 과정을 알아본다. 그리고 CD 파이프라인에서 다루지 않았던 환경과 인프라 구성, 애플리케이션 버전 관리, 비기능 테스트에 대해서도 살펴본다. 이 책의 마지막에서는 도커와 젠킨스의 기능을 통합해 데브옵스 워크플로우를 향상시킬 것이다. ◈ 옮긴이의 말 ◈ 나는 오랫동안 소프트웨어 개발 분야에 있다가 몇 년 전부터는 소프트웨어 용역 개발 분야에 솔루션과 개발사를 발굴하고 평가하는 업무를 하고 있다. 사업 부서에서 요청한 서비스를 구현하기에 적합한 개발사를 발굴해, 필요시 회사를 직접 방문했다. 인터뷰와 조사로 기술 역량을 파악해 다양한 프로젝트, 소프트웨어 개발사와 개발자와 만날 수 있었고, 인터뷰로 국내 스타트업부터 중견 개발사에 이르기까지 각 기업이 추구하는 개발 방법론과 개발 환경을 직접 확인할 수 있었다. 소프트웨어 개발 기업의 역량을 파악하고자 다양한 평가 도구를 사용하지만, 그중 가장 중요한 것이 애플리케이션 수명 관리(ALM, Application Lifecycle Management) 환경이다. ALM은 비즈니스의 요구 사항 관리와 소프트웨어 개발 과정을 융합하고 이를 자동화된 툴을 이용해 관리하는 것이다. 이는 요구 사항 관리, 설계, 코딩, 테스트, 이슈 관리, 릴리스 등을 모두 포함한다. 그러므로 하루가 다르게 진보하는 기술의 변화 속에서 소프트웨어 개발사가 다양한 고객의 요구를 만족시키면서도 지속성을 유지하려면 적은 인원으로도 효율적으로 빠르게 운영돼야 한다. ALM 환경이 얼마나 효율적으로 운영되는지를 보고 기업의 역량을 간접적으로 파악할 수 있다. 기술 조사 및 평가 업무를 시작하던 수 년전까지만 해도 지속적 통합과 인도(CI/CD) 프로세스는 대형 인터넷 기업이나 일부 팀에서만 적용하고 있던 개발 방법이었다. 그러나 이후 스타트업이 폭발적으로 성장하면서 애자일, 린 스타트업 등의 방법론이 폭넓게 확산됐다. 이제는 국내의 많은 기업도 배포 자동화, 품질 검증 활동 자동화 등을 비즈니스 역량과 통합해 대응하는 추세다. 이 책은 소프트웨어를 개발해 고객에게 인도하는 절차를 효과적으로 구축하며, 필요한 최신 기술을 활용해 구체적으로 구현하는 방법을 설명한다. 깔끔한 구성과 유용한 내용 덕분에 2017년 초반 발행 이후 지속적인 인기를 누리면서 현재까지도 꾸준히 업데이트되고 있다. 모쪼록 자신의 조직에 적합한 지속적 통합/인도 프로세스를 계획하고, 실제로 적용하며 발전시키는 데 필요한 지식을 갖추고자 하는 독자들에게 도움이 됐으면 한다. |