Top

데브옵스 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 등의 활용법을 설명한다.

이 책에서 다루는 내용

형상 관리 도구로 자동 프로비저닝된 서버에 지속적으로 테스트 및 배포되는 불변적인 컨테이너로 패키징된 마이크로서비스를 사용해 아키텍트가 효율적으로 설계하는 데 도움이 되는 여러 기술에 관한 책이다. 중단 시간이 없고 롤백할 수 있는 빠르고 안정적이며 지속적인 배포에 관한 내용을 다룬다. 서버 수에 관계없이 모든 하드웨어를 복구할 수 있는 자가 치유 시스템을 설계하고, 클러스터의 중앙집중식 로깅 및 모니터링에 대해 설명한다.
이론적인 내용도 다루고 있지만 실용적인 책이다. 직장에 가는 지하철 안에서 읽어서는 완성할 수 없다. 컴퓨터 앞에서 이 책을 읽고 실습해야 한다.

이 책의 대상 독자

지속적인 배포 및 컨테이너와 결합된 전체 마이크로서비스 라이프사이클에 관심이 있는 전문가를 대상으로 한다. 매우 넓은 범위를 다루므로 대상 사용자는 시스템 설계 방법을 알고 싶어 하는 아키텍트나, 최신 구성 관리 방법을 적용하고 컨테이너에 패키징된 애플리케이션을 지속적으로 배포하는 방법을 알고 싶어 하는 개발자가 될 수 있다. 소프트웨어를 처음부터 끝까지 제공하는 데 사용되는 프로세스를 더 잘 이해하려는 관리자는 물론, 프로세스를 손에 맡기고 싶은 개발자에게도 적합하다. 이 책에서는 시스템을 확장하고 모니터링하는 방법에 관해 이야기하고, 장애(하드웨어 또는 소프트웨어성)로부터 회복할 수 있는 자가 치유 시스템의 설계(및 구현) 작업을 다룰 것이다. 또한 중단 시간 없이 언제든지 롤백할 수 있는 기능을 통해 애플리케이션을 생산 환경에 지속적으로 배포할 것이다.
이 책은 요구사항과 설계부터 시작해, 개발과 테스트를 거쳐 배포 및 배포 후 단계까지 소프트웨어 개발 라이프사이클에 대해 자세히 알고자 하는 모든 사람을 대상으로 한다. 대기업에서 개발한 모범 사례를 고려해 프로세스를 만들 것이다.

저자/역자 소개

지은이의 말

이 책은 형상 관리 도구로 자동 프로비저닝된 서버에 지속적으로 테스트 및 배포된 마이크로서비스를 불변적인 컨테이너로 패키징해 소프트웨어를 효율적으로 설계하는 데 도움이 되는 다양한 기술을 다룬다. 중단 시간이 없고 롤백할 수 있는 빠르고 안정적이며 지속적인 배포에 관한 내용을 다룬다. 또한 서버의 수에 관계없이 하드웨어 및 소프트웨어 장애로부터 회복할 수 있는 자가 치유 시스템의 설계와 클러스터의 중앙집중식 로깅 및 모니터링에 대해 설명한다.

지은이 소개

빅토르 파르시트(Viktor Farcic)

클라우드비즈(CloudBees)의 선임 컨설턴트다. 파스칼(Pascal)로 시작해 베이직(Basic), ASP, C, ++, 펄(Perl), 파이썬(Python), ASP.NET, 비주얼 베이직(Visual Basic), C#, 자바스크립트(JavaScript) 등 많은 언어를 사용해 코드를 작성했지만 포트란(Fortran)을 사용한 적은 없다. 근무 시간에는 주로 자바(Java)를 사용하지만, 현재 스칼라(Scala)와 자바스크립트를 즐겨 사용한다.
마이크로서비스, 지속적인 배포 및 TDD(Test-Driven Development)에 커다란 열정을 갖고 있다.
종종 지역 사회 모임 및 회의에서 연설을 하며, 저서로는 『Test-Driven Java Development』(Packt, 2015)가 있다.

옮긴이의 말

애자일의 등장과 함께 지속적인 통합은 중요한 이슈가 됐다. 지속적인 통합이란 개발 환경 안에서 코드를 통합하고 구축하며 테스트하는 것을 말한다. 그 후, 지속적인 통합은 지속적인 배포, 지속적인 인도 개념으로 확장되며, 생산에 배포할 수 있는 패키지나 아티팩트가 생성된다. 이 개념들이 적용된 자동화로 인해 새로운 기능에 대한 아이디어를 개념화하는 것에서부터 생산에 배포될 때까지의 시간이 대폭 단축된다. 여기까지는 아직 운영 관점에서 시스템을 바라본다.
개발 관점에서도 시스템을 구축하는 방법에 많은 변화가 있었다. 특히 최근의 핵심 키워드는 확실히 마이크로서비스다. 넷플릭스에서 이 아키텍처가 성공한 이후 전 세계로 급속히 확산됐다. 이전 SOA 아키텍처의 서비스보다 훨씬 작기 때문에 더 빠르고 테스트와 패키징, 배포하는 시간도 적게 걸린다.
마이크로서비스는 도커 컨테이너에 탑재돼 수송된다. 컨테이너는 설계된 기능을 제공하는 분리되고 불변적인 이미지로 API를 통해서만 접근할 수 있다. 그리고 마이크로서비스가 어떤 환경에서든 안정적으로 실행될 수 있게 한다. 더욱이 컨테이너는 환경 사이에 일관적인 신뢰성을 제공하고, 노력을 들이지 않고도 확장할 수 있으며, 실패 시에 만회할 수 있게 한다. 더 나아가 코드로 인프라를 구성할 수 있는 코드로서의 인프라(infrastructure as code)를 가능하게 하며, 결국 데브옵스가 추구하는 개발과 운영이 결합될 수 있는 기반이 된다.
따라서 지속적인 인도와 배포, 마이크로서비스, 도커 컨테이너 이 세 가지가 결합돼 개발자와 운영자가 각기 다른 목표로 인해 갈등하던 시대에서 개발자도 운영을 이해하고, 운영자도 개발을 이해하며, 같은 목표 하에 협력하는 데브옵스의 시대를 이끌어가게 되는 것이다.
이 책은 이러한 관점에서 형상 관리 도구로 자동 프로비저닝된 서버에 지속적으로 테스트 및 배포된 마이크로서비스를 불변적인 컨테이너로 패키징해 소프트웨어를 좀 더 효율적으로 설계하는 데 도움이 되는 다양한 기술을 설명한다. 전체 마이크로서비스 개발과 배포 라이프사이클에서 도커(Docker), 쿠버네티스(Kubernetes), 앤서블(Ansible), 우분투(Ubuntu), 도커 스웜(Docker Swarm), 도커 컴포즈(Docker Compose), 컨설(Consul), etcd, 레지스트레이터(Registrator), confd, 젠킨스(Jenkins) 등의 도구를 사용하는 방법을 체계적이고 실제적으로 설명한다. 아무쪼록 이 책을 통해 데브옵스를 실천적으로 수행하는 기반을 갖춰 실무에서 활용할 수 있기를 희망한다.

옮긴이 소개

전병선

30년 실무 개발 경험을 바탕으로 CBD, SOA, BPM 분야의 아키텍처 설계와 컨설팅을 수행하고 있으며, 20권 이상의 저서를 출간한 베스트셀러 저자다. 최근에는 다시 개발자로서 직접 실무 개발에 참여하고 있으며 닷넷(.NET)과 자바 개발 기술을 리딩하고 있다. 또한 유튜브 전병선 IT 아카데미에서 개발 기술과 아키텍처 설계에 관련된 여러 강의 동영상을 제공하고 있다.
IT 기술 분야의 저자로서 1993년부터 C, C++, 비주얼 C++, 객체지향, UML, CBD, SOA 분야의 베스트셀러 IT 서적을 20권 이상 저술했으며, 폭넓은 독자층을 갖고 있다. 94년 이후 전문 IT 기술 강사로서 정보기술연구소, 다우데이터시스템, 소프트뱅크코리아, 데브피아, 웹타임, 삼성SDS 멀티캠퍼스에서 강의했으며, 96, 97년에는 마이크로소프트의 초대 리저널 디렉터로서 DevDays, TechEd, PDC 등의 여러 컨퍼런스에서 강연했다.
금융, 제조, 조선, 통신, 정부 연구기관 등 다양한 도메인 분야에서 아키텍트이자 PM으로 참여했다. 삼성전자 홈 네트워크 솔루션 아키텍처 구축, STX 조선 생산계획 시스템, 대우조선 DIPS시스템, 삼성생명 비전속 영업 관리 시스템 등 CBD 또는 리얼타임과 임베디드(Real-Time & Embedded)를 기반으로 하는 다양한 프로젝트를 컨설팅했다.
또한 SOA 전문가로서 거버넌트 2.0, KRNet 2010 등 각종 SOA 세미나와 강연회를 가졌으며, 조달청 차세대 통합 국가전자조달시스템 구축 사업 서비스 모델링과 KTN-STEPSOA 진단 컨설팅을 했으며, KT의 NeOSS 시스템 구축, 암웨이의 AUS 시스템, 대우조선의 SOA 기반 종합 계획 EA 프로젝트 등의 SOA 관련 프로젝트들을 수행했다.

목차

목차

  • 1장. 데브옵스의 이상
    • 지속적인 통합, 인도, 배포
      • 아키텍처
      • 배포
      • 오케스트레이션
    • 배포 파이프라인 끝에서

  • 2장. 구현 타개책: 지속적인 배포, 마이크로서비스, 컨테이너
    • 지속적인 통합
      • 코드 리포지터리에 푸시하기
      • 정적 분석
      • 사전 배포 테스트
      • 패키징 및 테스트 환경 배포
      • 사후 배포 테스트
    • 지속적인 인도 및 배포
      • 마이크로서비스
      • 컨테이너
    • 3명의 유쾌한 친구: 지속적인 배포, 마이크로서비스, 컨테이너의 시너지 효과

  • 3장. 시스템 아키텍처
    • 모놀리식 애플리케이션
      • 서비스 수평 분할
      • 마이크로서비스
    • 모놀리식 애플리케이션과 마이크로서비스 비교
      • 운영 및 배포 복잡성
      • 원격 프로시저 호출
      • 확장성
      • 혁신
      • 크기 배포, 롤백, 결함 분리
      • 수행 기간
      • 배포 전략
      • 가변적 괴물 서버
    • 마이크로서비스 모범 사례
      • 컨테이너
    • 프록시 마이크로서비스 또는 API 게이트웨이
      • 역방향 프록시
      • 최소 접근 방법
      • 형상 관리
      • 교차기능 팀
      • API 버전 관리
      • 정리

  • 4장. 베이그런트와 도커 개발 환경 설정
    • 마이크로서비스 아키텍처와 컨테이너 기술의 결합
      • 베이그런트와 도커
    • 개발 환경 설정
      • 개발 환경 사용법

  • 5장. 배포 파이프라인 구현: 초기 단계
    • 지속적인 배포 가상 머신 가동
    • 배포 파이프라인 단계
      • 사전 배포 테스트 실행, 컴파일 및 코드 패키징
      • 도커 컨테이너 빌드

  • 6장. 도커 세계의 형상 관리
    • CF엔진
      • 퍼펫
      • 셰프
      • 정리
      • 생산 환경 설정
      • 앤서블 플레이북 설정

  • 7장. 배포 파이프라인 구현: 중간 단계
    • 생산 서버에 컨테이너 배포
      • DockerUI
      • 체크리스트

  • 8장. 서비스 검색: 분산 서비스의 핵심
    • 서비스 레지스트리
      • 서비스 등록
      • 자기 등록
      • 등록 서비스
      • 서비스 검색
      • 서비스 검색 도구
      • 수작업 설정
      • 주키퍼
      • etcd
      • 컨설
      • 레지스트레이터 설정
      • 컨설 상태 검사, 웹 UI, 데이터 센터
    • 서비스 검색 도구 비교

  • 9장. 프록시 서비스
    • 역방향 프록시 서비스
      • 프록시 서비스가 우리 프로젝트를 어떻게 도와주는가?
      • nginx
      • HA프록시
    • 프록시 도구 비교

  • 10장. 배포 파이프라인 구현: 최종 단계
    • 컨테이너 시작
    • 서비스 통합
    • 사후 배포 테스트 실행
    • 레지스트리에 테스트 컨테이너 푸시하기
    • 체크리스트

  • 11장. 배포 파이프라인 자동화 구현
    • 배포 파이프라인 단계
      • 플레이북과 역할
      • 사전 배포 작업
      • 배포 작업
      • 사후 배포 작업
    • 자동화된 배포 파이프라인 실행

  • 12장. 지속적인 통합, 인도 및 배포 도구
    • CI/CD 도구 비교
      • CI/CD 도구의 간단한 역사
      • 젠킨스
      • 정리

  • 13장 청-녹 배포
    • 청-녹 배포 프로세스
    • 청-녹 배포 수작업 실행
      • 청색 릴리스 배포
      • 청색 릴리스 통합
      • 녹색 릴리스 배포
      • 녹색 릴리스 통합
      • 청색 릴리스 제거
      • 배포된 릴리스 검색과 롤백
    • 젠킨스 워크플로우로 청-녹 배포 자동화
      • 청-녹 배포 역할
      • 청-녹 배포 실행

  • 14장. 클러스터링과 서비스 확장
    • 확장성
      • 축 확장
      • 클러스터링
      • 도커 클러스터링 도구 비교: 쿠버네티스, 도커 스웜, 메소스
      • 설정
      • 선택
    • 도커 스웜 둘러보기
    • 도커 스웜 설정
      • 도커 스웜으로 배포하기
      • 연결 없이 도커 스웜으로 배포하기
      • 도커 스웜과 도커 네트워킹으로 배포하기
      • 도커 스웜으로 서비스 확장
      • 예약된 CPU와 메모리에 따른 컨테이너 스케줄링
    • 도커 스웜과 앤서블로 배포 자동화
      • 스웜 배포 플레이북 검토

  • 15장. 자가 치유 시스템
    • 자가 치유 수준과 유형
      • 애플리케이션 수준 자가 치유
      • 시스템 수준 자가 치유
      • 하드웨어 수준 자가 치유
      • 반응 치유
      • 예방 치유
    • 자가 치유 아키텍처
    • 도커, 컨설, Watches, 젠킨스로 자가 치유
      • 환경 설정
    • 하드웨어 모니터링을 위한 컨설 상태 검사 및 감시 자동 설정
    • 예정된 확장 및 축소를 통한 예방 치유
      • 도커 재시작 정책을 통한 반응 치유
      • 온프레미스와 클라우드 노드의 결합
    • 자가 치유 요약

  • 16장. 중앙집중식 로깅과 모니터링
    • 중앙집중식 로깅의 필요성
    • 일래스틱서치에 로그 항목 보내기
      • 로그 항목 구문 파싱
      • 중앙 로그스태시 인스턴스로 로그 항목 보내기
      • 도커 로그 항목을 중앙 로그스태시 인스턴스로 보내기
    • 소프트웨어 데이터 기반 자가 치유
      • 하드웨어 상태 로깅
      • 하드웨어 데이터 기반 자가 치유
      • 정리

  • 17장. 끝내기
  • 부록. 도커 플로우
    • 배경
      • 표준 설정
      • 문제
      • 도커 플로우 둘러보기

도서 오류 신고

도서 오류 신고

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

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

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