Top

마이크로서비스와 컨테이너 [마이크로서비스 기반 시스템 구축과 전환]

  • 원서명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) 방법론에 따라 만드는 과정을 소개한다. 여기서 나온 사례 연구를 바탕으로 기존 애플리케이션의 아키텍처를 마이크로서비스 기반으로 전환하는 방법을 소개하고, 도커 컨테이너를 활용하는 방법도 살펴본다. 코드 수준까지 깊이 있게 살펴보면 매우 흥미진진할 뿐 아니라 마이크로서비스와 컨테이너의 세계를 좀 더 자세히 알고 싶다는 욕구가 생길 것이다.
두 번째 독자는 비즈니스 관점에서 이 주제를 자세히 알고 싶은 사람들이다. 경영진이나 프로젝트 관리자들이 배경 지식을 쌓기 위한 목적으로 읽을 수 있도록 집필했다. 마이크로서비스를 소개하는 블로그 글을 몇 개쯤 읽어봤을 것이다. 블로그 글을 읽고 어떤 솔루션이 현재 업무에 가장 적합한지는 간단히 파악할 수 있었겠지만, 이를 자세히 설명한 책은 찾을 수 없었을 것이다. 같은 회사의 엔지니어들이 도커에 관해 얘기하는 것을 듣고 그들의 대화에 끼어들 정도의 배경 지식을 갖추고 싶은 마음이 들었던 사람도 있을 것이다. 그 이유가 무엇이든 이 책은 쉽게 따라 할 수 있는 예제로 가득 찬 기본서고 전문 용어의 사용도 최대한 자제했기 때문에 새로 개발할 애플리케이션을 효과적으로 만들고 업데이트하는 방식을 모색하는 관리자에게 많은 도움이 될 것이다.

저자/역자 소개

지은이의 말

현재 엄청난 관심을 받고 있는 마이크로서비스와 컨테이너에 대해 깊이 있게 소개한다. 이 책에서 설명하는 바와 같이 마이크로서비스와 컨테이너는 애플리케이션 개발 및 배치에 이전에는 볼 수 없었던 기민성과 확장성을 제공한다. 특히 속도가 생명이면서 조그만 에러도 재난을 초래하는, 규모가 큰 복잡한 프로젝트에 효과가 크다.
마이크로서비스와 도커로 모듈식 아키텍처 설계와 온디맨드 확장성, 애플리케이션 성능 및 신뢰성, 타임투마켓, 코드 재사용, 데브옵스 효과의 엄청난 개선 등을 이룰 수 있다. 저자는 기존 모놀리식 아키텍처를 새로운 마이크로서비스로 전환하는 방법을 단계별로 상세하게 소개하고, 사례 연구를 깊이 있게 살펴봄으로써 독자가 엔터프라이즈급 SOA 시스템을 전환하는 실무 능력을 갖출 수 있도록 설명한다.
기존 방식에서 탈피해 새로운 패러다임으로 전환하기를 원하는 소프트웨어 아키텍트나 개발자, 시스템 전문가뿐 아니라, 마이크로서비스와 컨테이너 기술을 이용해 비즈니스 가치를 극대화하려는 관리자들에게도 이 책은 책꽂이에 항상 비치하고 참고할 필독서다.

지은이 소개

파르민더 싱 코셔(Parminder Singh Kocher)

인도에서 태어나 자랐다. 20여 년 동안 엔터프라이즈급 소프트웨어 시스템을 직접 구축하는 일을 했으며, 끊임없이 새로운 기술을 배우고 있다. 2005년부터 지금까지 시스코 시스템에 근무하면서 시스코 매니지드 서비스(CMS, Cisco’s Managed Service) 플랫폼을 관리하고 있으며, 여러 선도적인 소프트웨어 그룹에서 에반젤리스트로도 활동하고 있다. 현재 시스코 네트워킹 아카데미 플랫폼의 엔지니어링 디렉터로 근무하고 있으며, 180개 국가에서 사용할 시스코 네트워킹 아카데미의 차세대 플랫폼 개발을 책임지는 엔지니어링 팀을 이끌고 있다. 전산학 학사와 석사 학위를 취득하고, 베일러 핸카머 경영 대학원에서 MBA를 취득했으며, 매사추세츠 공과대학교 슬론 경영대학원에서 전략과 혁신 전문 경영 과정을 이수했다. 현재 텍사스 오스틴에서 아내, 세 아이들과 함께 살고 있다.

옮긴이의 말

도커로 대표되는 컨테이너 기술은 이제 시스템의 기본 요소로 자리잡았습니다. 이제는 단순히 컨테이너를 사용하는 것을 넘어 마이크로서비스 아키텍처로 시스템을 구성하는 방향으로 가고 있습니다. 이 책은 이러한 흐름에 맞춰 독자들에게 마이크로서비스의 개념을 설명합니다. 중반부터는 도커 컨테이너를 시작으로 마이크로서비스를 실제로 구축하고 예전 시스템을 마이크로서비스 방식으로 전환하는 방법을 자세히 소개하고 있습니다.
도커와 마이크로서비스 분야는 다른 IT 분야와 마찬가지로 변화가 매우 빠른 편입니다. 번역을 하는 도중에 이나 프레임워크가 사라지거나 바뀐 사례도 많습니다. 나름 현재 상황을 반영하려고 했지만, 이 책 역시 얼마 지나지 않아 바뀌는 부분이 나타나기 마련이므로 항상 최신 웹 정보를 참조하기 바랍니다.

옮긴이 소개

남기혁

고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임 연구원으로 재직하고 있으며, 현재 ㈜프리스티에서 네트워크 제어 및 검증 소프트웨어 개발 업무를 맡고 있다. 에이콘출판사에서 출간한 『GWT 구글 웹 툴킷』(2008), 『해킹 초보를 위한 USB 공격과 방어』(2011), 『자바 7의 새로운 기능』(2013), 『iOS 해킹과 보안 가이드』(2014), 『Neutron 오픈스택 네트워킹』(2015), 『실전 IoT 네트워크 프로그래밍』(2015), 『애플 워치 WatchKit 프로그래밍』(2015), 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『트러블 슈팅 도커』(2018), 『Go 마스터하기』(2018), 『자율주행 자동차 만들기』(2018), 『The Hundred-Page Machine Learning Book』(2019) 등을 번역했다.

목차

목차
  • 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. 헬프데스크 애플리케이션 워크플로

도서 오류 신고

도서 오류 신고

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

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

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