마이크로서비스와 컨테이너 [마이크로서비스 기반 시스템 구축과 전환]
- 원서명Microservices and Containers (ISBN 9780134598383)
- 지은이파르민더 싱 코셔(Parminder Singh Kocher)
- 옮긴이남기혁
- ISBN : 9791161753621
- 35,000원
- 2019년 09월 30일 펴냄 (절판)
- 페이퍼백 | 356쪽 | 188*235mm
- 시리즈 : 소프트웨어 아키텍처
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
마이크로서비스의 개념과 장단점을 자세히 살펴보고 마이크로서비스 기반으로 새로운 애플리케이션을 제작하는 방법을 소개한다. 또한 기존에 모놀리식으로 제작한 애플리케이션을 마이크로서비스 기반으로 전환하는 방법을 실제 예제 코드와 함께 소개한다.
이 책에서 다루는 내용
■ 마이크로서비스를 통해 독립 컴포넌트로 애플리케이션을 구성해 관리, 업데이트, 확장을 쉽게 처리하는 방법
■ 마이크로서비스와 컨테이너 도입에 투자할만한지 결정하고, 조직 차원에서 관련 기술을 쉽게 익히는 방법
■ 마이크로서비스 사이의 프로세스 간 통신에 적합한 적용 방법
■ 모놀리식 시스템을 안전하게 전환하는 방법
■ 도커 컨테이너를 이해하고, 설치하고, 활용하는 방법
■ 도커 컨테이너를 효과적으로 오케스트레이션하고, 관리하고, 네트워킹하는 방법
■ 도커를 이용해 마이크로서비스 기반 애플리케이션의 확장성을 극대화하는 방법
■ 심도 있는 실습 사례 연구를 통해 개념을 깊이 있게 이해하는 방법
이 책의 대상 독자
두 부류의 독자를 염두에 두고 집필했다.
첫 번째 독자는 소프트웨어 및 시스템 엔지니어링에 어느 정도 경험 있는 학생, 디자이너, 아키텍트다. 마이크로서비스와 컨테이너가 무엇인지 어느 정도는 알고 있지만, 집중적으로 파고든 적이 없는 이들을 대상으로 썼다. 마이크로서비스와 컨테이너를 자세히 설명할 뿐 아니라 이 책에서 소개한 기술을 어느 시점에 도입해야 할지 결정할 때 도움 되는 정보를 제공하고자 노력했다. 마이크로서비스나 컨테이너를 다뤄본 경험이 있는 사람은 1부, ‘마이크로서비스’와 2부, ‘컨테이너’는 가볍게 읽고 넘어가고 3부, ‘실습 프로젝트 - 배운 내용을 실제로 만들어보기’부터 본격적으로 읽어도 된다. 3부, ‘실습 프로젝트 - 배운 내용을 실제로 만들어보기’에서는 완전한 형태의 서비스 데스크 예제를 표준 서비스 오리엔티드 아키텍처(SOA, Service-Oriented Architecture) 방법론에 따라 만드는 과정을 소개한다. 여기서 나온 사례 연구를 바탕으로 기존 애플리케이션의 아키텍처를 마이크로서비스 기반으로 전환하는 방법을 소개하고, 도커 컨테이너를 활용하는 방법도 살펴본다. 코드 수준까지 깊이 있게 살펴보면 매우 흥미진진할 뿐 아니라 마이크로서비스와 컨테이너의 세계를 좀 더 자세히 알고 싶다는 욕구가 생길 것이다.
두 번째 독자는 비즈니스 관점에서 이 주제를 자세히 알고 싶은 사람들이다. 경영진이나 프로젝트 관리자들이 배경 지식을 쌓기 위한 목적으로 읽을 수 있도록 집필했다. 마이크로서비스를 소개하는 블로그 글을 몇 개쯤 읽어봤을 것이다. 블로그 글을 읽고 어떤 솔루션이 현재 업무에 가장 적합한지는 간단히 파악할 수 있었겠지만, 이를 자세히 설명한 책은 찾을 수 없었을 것이다. 같은 회사의 엔지니어들이 도커에 관해 얘기하는 것을 듣고 그들의 대화에 끼어들 정도의 배경 지식을 갖추고 싶은 마음이 들었던 사람도 있을 것이다. 그 이유가 무엇이든 이 책은 쉽게 따라 할 수 있는 예제로 가득 찬 기본서고 전문 용어의 사용도 최대한 자제했기 때문에 새로 개발할 애플리케이션을 효과적으로 만들고 업데이트하는 방식을 모색하는 관리자에게 많은 도움이 될 것이다.
목차
목차
- 1부. 마이크로서비스
- 1장. 마이크로서비스 개요
- 마이크로서비스란?
- 모듈식 아키텍처
- 마이크로서비스의 다른 장점
- 마이크로서비스의 단점
- 2장. 마이크로서비스로 전환하기
- 피로도와 속성
- 조직이 겪을 학습 곡선
- 마이크로서비스를 이용한 비즈니스 사례
- 비용 요소
- 3장. 프로세스 간 통신
- 상호 작용의 종류
- 웹 서비스 작성 준비하기
- 마이크로서비스 유지보수
- 디스커버리 서비스
- API 게이트웨이
- 서비스 레지스트리
- 모두 합치기
- 4장. 마이크로서비스로 전환하기
- 전환의 필요성
- 마이크로서비스 방식으로 애플리케이션을 새로 만들기
- 조직의 자세
- 서비스 기반 접근 방법
- 프로세스 간(서비스-투-서비스) 통신
- 기술 선정
- 구현
- 배치
- 운영
- 모놀리식 애플리케이션을 마이크로서비스로 전환하기
- 마이크로서비스의 기준
- 서비스 아키텍처 변경하기
- 하이브리드 방식
- 2부. 컨테이너
- 5장. 도커 컨테이너
- 가상 머신
- 컨테이너
- 도커 아키텍처와 컴포넌트
- 도커의 강력함: 간단한 예제
- 6장. 도커 설치
- 맥 OSX에서 도커 설치하기
- 윈도우에 도커 설치하기
- 우분투 리눅스에 도커 설치하기
- 7장. 도커 인터페이스
- 주요 도커 커맨드
- docker search
- docker pull
- docker images
- docker rmi
- docker run
- docker ps
- docker logs
- docker restart
- docker attach
- docker remove
- docker inspect
- docker exec
- docker rename
- docker copy
- docker pause/unpause
- docker create
- docker commit
- docker diff
- 도커 파일
- MySQL 도커 파일
- 도커 컴포즈
- 주요 도커 커맨드
- 8장. 컨테이너 네트워킹
- 리눅스 관련 주요 개념
- 링크
- 디폴트 옵션
- none
- host
- bridge
- 커스텀 네트워크
- 커스텀 브리지 네트워크 드라이버
- 오버레이 네트워크 드라이버
- 언더레이 네트워크 드라이버와 Macvlan
- 9장. 컨테이너 오케스트레이션
- 쿠버네티스
- kubectl
- 마스터 노드
- 워커 노드
- 예제: 쿠버네티스 클러스터
- 아파치 메소스와 마라톤
- 메소스 마스터
- 에이전트
- 프레임워크
- 예제: 마라톤 프레임워크
- 도커 스웜
- 노드
- 서비스
- 태스크
- 예제: 스웜 클러스터
- 서비스 디스커버리
- 서비스 레지스트리
- 쿠버네티스
- 10장. 컨테이너 관리
- 모니터링
- 로깅
- 메트릭스 수집
- docker stats
- API
- cAdvisor
- 클러스터 차원의 모니터링 툴
- 힙스터
- 프로메테우스
- 1단계: 프로메테우스 구동하기
- 2단계: 노드 익스포터와 cAdvisor 추가하기
- 3단계: 타깃 추가하기
- 4단계: 유저 인터페이스(그라파나) 구동하기
- 5단계: 통계 정보 조회하기
- 6단계: Alertmanager 연동하기
- 3부. 실습 프로젝트 - 배운 내용을 실제로 만들어보기
- 11장. 사례 연구: 모놀리식 헬프데스크 애플리케이션
- 헬프데스크 애플리케이션 개요
- 애플리케이션 아키텍처
- 인증, 인터셉터, 권한 검증
- 계정 관리
- 티켓
- 제품 목록
- 예약
- 게시판
- 검색
- 애플리케이션 빌드하기
- 이클립스 설정하기
- 애플리케이션 빌드하기
- 배치 및 설정
- 새로운 요구 사항과 버그 픽스
- 12장. 사례 연구: 마이크로서비스로 전환하기
- 전환 준비하기
- 마이크로서비스 기준 적용하기
- 전환 작업 요약
- 아키텍처 변화
- 마이크로서비스로 전환하기
- 제품 목록 서비스
- 티켓
- 검색
- 애플리케이션 빌드하고 배치하기
- 코드 설정
- 마이크로서비스 빌드하기
- 배치하고 설정하기
- 새로운 요구 사항과 버그 픽스
- 전환 준비하기
- 13장. 사례 연구: 헬프데스크 애플리케이션 컨테이너화하기
- 마이크로서비스 컨테이너화하기
- 의존성 정보 나열하기
- 바이너리 및 WAR 파일 빌드하기
- 도커 이미지 생성하기
- 도커 이미지 빌드하기
- AWS에서 DC/OS 클러스터 설정하기
- 제품 목록 마이크로서비스 배치하기
- 마라톤으로 태스크 제출하기
- 서비스 살펴보고 규모 조절하기
- 서비스 사용하기
- 모놀리식 애플리케이션 업데이트하기
- 마이크로서비스 컨테이너화하기
- 결론
- 데브옵스
- 이제 시작에 불과하다
- 부록 A. 헬프데스크 애플리케이션 워크플로