데브옵스 2.0 툴킷 [컨테이너화된 마이크로서비스로 지속적인 배포 파이프라인 자동화하기]
- 원서명The DevOps 2.0 Toolkit: Automating the Continuous Deployment Pipeline with Containerized Microservices (ISBN 9781523917440)
- 지은이빅토르 파르시트(Viktor Farcic)
- 옮긴이전병선
- ISBN : 9791161750385
- 40,000원
- 2017년 08월 30일 펴냄
- 페이퍼백 | 552쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
형상 관리 도구로 자동 프로비저닝된 서버에 지속적으로 테스트 및 배포되는 불변적인 컨테이너로 패키징된 마이크로서비스를 사용해 좀 더 효율적으로 설계하는 데 도움이 되는 여러 기술을 다룬다.
최신의 훌륭한 사례와 도구를 사용해 전체 마이크로서비스 개발 및 배포 라이프사이클에서 도커(Docker), 쿠버네티스(Kubernetes), 앤시블(Ansible), 우분투(Ubuntu), 도커 스웜(Docker Swarm) 및 도커 컴포즈(Docker Compose), 컨설(Consul), etcd, 레지스트레이터(Registrator), confd 등의 활용법을 설명한다.
이 책에서 다루는 내용
형상 관리 도구로 자동 프로비저닝된 서버에 지속적으로 테스트 및 배포되는 불변적인 컨테이너로 패키징된 마이크로서비스를 사용해 아키텍트가 효율적으로 설계하는 데 도움이 되는 여러 기술에 관한 책이다. 중단 시간이 없고 롤백할 수 있는 빠르고 안정적이며 지속적인 배포에 관한 내용을 다룬다. 서버 수에 관계없이 모든 하드웨어를 복구할 수 있는 자가 치유 시스템을 설계하고, 클러스터의 중앙집중식 로깅 및 모니터링에 대해 설명한다.
이론적인 내용도 다루고 있지만 실용적인 책이다. 직장에 가는 지하철 안에서 읽어서는 완성할 수 없다. 컴퓨터 앞에서 이 책을 읽고 실습해야 한다.
이 책의 대상 독자
지속적인 배포 및 컨테이너와 결합된 전체 마이크로서비스 라이프사이클에 관심이 있는 전문가를 대상으로 한다. 매우 넓은 범위를 다루므로 대상 사용자는 시스템 설계 방법을 알고 싶어 하는 아키텍트나, 최신 구성 관리 방법을 적용하고 컨테이너에 패키징된 애플리케이션을 지속적으로 배포하는 방법을 알고 싶어 하는 개발자가 될 수 있다. 소프트웨어를 처음부터 끝까지 제공하는 데 사용되는 프로세스를 더 잘 이해하려는 관리자는 물론, 프로세스를 손에 맡기고 싶은 개발자에게도 적합하다. 이 책에서는 시스템을 확장하고 모니터링하는 방법에 관해 이야기하고, 장애(하드웨어 또는 소프트웨어성)로부터 회복할 수 있는 자가 치유 시스템의 설계(및 구현) 작업을 다룰 것이다. 또한 중단 시간 없이 언제든지 롤백할 수 있는 기능을 통해 애플리케이션을 생산 환경에 지속적으로 배포할 것이다.
이 책은 요구사항과 설계부터 시작해, 개발과 테스트를 거쳐 배포 및 배포 후 단계까지 소프트웨어 개발 라이프사이클에 대해 자세히 알고자 하는 모든 사람을 대상으로 한다. 대기업에서 개발한 모범 사례를 고려해 프로세스를 만들 것이다.
목차
목차
- 1장. 데브옵스의 이상
- 지속적인 통합, 인도, 배포
- 아키텍처
- 배포
- 오케스트레이션
- 배포 파이프라인 끝에서
- 지속적인 통합, 인도, 배포
- 2장. 구현 타개책: 지속적인 배포, 마이크로서비스, 컨테이너
- 지속적인 통합
- 코드 리포지터리에 푸시하기
- 정적 분석
- 사전 배포 테스트
- 패키징 및 테스트 환경 배포
- 사후 배포 테스트
- 지속적인 인도 및 배포
- 마이크로서비스
- 컨테이너
- 3명의 유쾌한 친구: 지속적인 배포, 마이크로서비스, 컨테이너의 시너지 효과
- 지속적인 통합
- 3장. 시스템 아키텍처
- 모놀리식 애플리케이션
- 서비스 수평 분할
- 마이크로서비스
- 모놀리식 애플리케이션과 마이크로서비스 비교
- 운영 및 배포 복잡성
- 원격 프로시저 호출
- 확장성
- 혁신
- 크기 배포, 롤백, 결함 분리
- 수행 기간
- 배포 전략
- 가변적 괴물 서버
- 마이크로서비스 모범 사례
- 컨테이너
- 프록시 마이크로서비스 또는 API 게이트웨이
- 역방향 프록시
- 최소 접근 방법
- 형상 관리
- 교차기능 팀
- API 버전 관리
- 정리
- 모놀리식 애플리케이션
- 4장. 베이그런트와 도커 개발 환경 설정
- 마이크로서비스 아키텍처와 컨테이너 기술의 결합
- 베이그런트와 도커
- 개발 환경 설정
- 개발 환경 사용법
- 개발 환경 사용법
- 마이크로서비스 아키텍처와 컨테이너 기술의 결합
- 5장. 배포 파이프라인 구현: 초기 단계
- 지속적인 배포 가상 머신 가동
- 배포 파이프라인 단계
- 사전 배포 테스트 실행, 컴파일 및 코드 패키징
- 도커 컨테이너 빌드
- 6장. 도커 세계의 형상 관리
- CF엔진
- 퍼펫
- 셰프
- 정리
- 생산 환경 설정
- 앤서블 플레이북 설정
- CF엔진
- 7장. 배포 파이프라인 구현: 중간 단계
- 생산 서버에 컨테이너 배포
- DockerUI
- 체크리스트
- 생산 서버에 컨테이너 배포
- 8장. 서비스 검색: 분산 서비스의 핵심
- 서비스 레지스트리
- 서비스 등록
- 자기 등록
- 등록 서비스
- 서비스 검색
- 서비스 검색 도구
- 수작업 설정
- 주키퍼
- etcd
- 컨설
- 레지스트레이터 설정
- 컨설 상태 검사, 웹 UI, 데이터 센터
- 서비스 검색 도구 비교
- 서비스 레지스트리
- 9장. 프록시 서비스
- 역방향 프록시 서비스
- 프록시 서비스가 우리 프로젝트를 어떻게 도와주는가?
- nginx
- HA프록시
- 프록시 도구 비교
- 역방향 프록시 서비스
- 10장. 배포 파이프라인 구현: 최종 단계
- 컨테이너 시작
- 서비스 통합
- 사후 배포 테스트 실행
- 레지스트리에 테스트 컨테이너 푸시하기
- 체크리스트
- 11장. 배포 파이프라인 자동화 구현
- 배포 파이프라인 단계
- 플레이북과 역할
- 사전 배포 작업
- 배포 작업
- 사후 배포 작업
- 자동화된 배포 파이프라인 실행
- 배포 파이프라인 단계
- 12장. 지속적인 통합, 인도 및 배포 도구
- CI/CD 도구 비교
- CI/CD 도구의 간단한 역사
- 젠킨스
- 정리
- CI/CD 도구 비교
- 13장 청-녹 배포
- 청-녹 배포 프로세스
- 청-녹 배포 수작업 실행
- 청색 릴리스 배포
- 청색 릴리스 통합
- 녹색 릴리스 배포
- 녹색 릴리스 통합
- 청색 릴리스 제거
- 배포된 릴리스 검색과 롤백
- 젠킨스 워크플로우로 청-녹 배포 자동화
- 청-녹 배포 역할
- 청-녹 배포 실행
- 14장. 클러스터링과 서비스 확장
- 확장성
- 축 확장
- 클러스터링
- 도커 클러스터링 도구 비교: 쿠버네티스, 도커 스웜, 메소스
- 설정
- 선택
- 도커 스웜 둘러보기
- 도커 스웜 설정
- 도커 스웜으로 배포하기
- 연결 없이 도커 스웜으로 배포하기
- 도커 스웜과 도커 네트워킹으로 배포하기
- 도커 스웜으로 서비스 확장
- 예약된 CPU와 메모리에 따른 컨테이너 스케줄링
- 도커 스웜과 앤서블로 배포 자동화
- 스웜 배포 플레이북 검토
- 스웜 배포 플레이북 검토
- 확장성
- 15장. 자가 치유 시스템
- 자가 치유 수준과 유형
- 애플리케이션 수준 자가 치유
- 시스템 수준 자가 치유
- 하드웨어 수준 자가 치유
- 반응 치유
- 예방 치유
- 자가 치유 아키텍처
- 도커, 컨설, Watches, 젠킨스로 자가 치유
- 환경 설정
- 하드웨어 모니터링을 위한 컨설 상태 검사 및 감시 자동 설정
- 예정된 확장 및 축소를 통한 예방 치유
- 도커 재시작 정책을 통한 반응 치유
- 온프레미스와 클라우드 노드의 결합
- 자가 치유 요약
- 자가 치유 수준과 유형
- 16장. 중앙집중식 로깅과 모니터링
- 중앙집중식 로깅의 필요성
- 일래스틱서치에 로그 항목 보내기
- 로그 항목 구문 파싱
- 중앙 로그스태시 인스턴스로 로그 항목 보내기
- 도커 로그 항목을 중앙 로그스태시 인스턴스로 보내기
- 소프트웨어 데이터 기반 자가 치유
- 하드웨어 상태 로깅
- 하드웨어 데이터 기반 자가 치유
- 정리
- 17장. 끝내기
- 부록. 도커 플로우
- 배경
- 표준 설정
- 문제
- 도커 플로우 둘러보기
- 배경