Comming Soon

스프링 마이크로서비스 [스프링 부트와 스프링 클라우드로 배우는]

  • 원서명Spring Microservices (ISBN 9781786466686)
  • 지은이라제시 RV(Rajesh RV)
  • 옮긴이오명운, 박소은, 허서윤, 이완근
  • 감수자양수열
  • ISBN : 9791161750286
  • 40,000원
  • 2017년 07월 27일 펴냄
  • 페이퍼백 | 600쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

국내 많은 곳에서 마이크로서비스를 도입하거나 도입하려는 움직임을 볼 수 있다. 기존의 일체형 시스템 개발과 비교해보면 마이크로서비스의 장점을 개념적으로는 쉽게 이해할 수 있지만, 이를 실제로 구현해내려면 여러 가지 기술과 도구의 도움이 필요하다. 이 책은 스프링 부트와 스프링 클라우드 기술을 바탕으로 항공 운항 시스템을 마이크로서비스로 구현하는 과정을 다루고 있다. 일반적인 스프링 부트 웹 애플리케이션에서 시작하며, 스프링 클라우드 기술을 적용해 처음부터 끝까지 하나의 마이크로서비스를 구축해가는 전체 과정을 보여준다. 새로운 서비스의 구현뿐만 아니라, 이미 일체형 아키텍처로 구현된 프로젝트를 마이크로서비스로 전환하는 과정도 포함돼 실무에 직접적인 도움을 줄 수 있다.

이 책에서 다루는 내용

■ 마이크로서비스 아키텍처와 장점
■ 마이크로서비스 개발 시 마주하는 공통적인 문제에 대한 해결 방법
■ 마이크로서비스를 개발하는 데 사용할 스프링 부트와 스프링 클라우드의 사용 방법
■ 마이크로서비스 로깅과 모니터링 방법
■ 도커, 메소스, 마라톤으로 인터넷을 통해 들어오는 대규모의 다양한 요청을 처리하는 마이크로서비스 관리 방법
■ 마이크로서비스 통제와 개발 라이프 사이클 프로세스

한국어판 추천의 글

이 책을 읽어보면서 MSA를 적용하기 위해 J2EE의 구조적인 설계에서 어떻게 잘 분리할지 나 자신도 아직까지 확신을 갖지 못하고 고민하던 부분들이 정말 명쾌하게 정리돼 있어 놀랐다. 특히 4장에서 기존 레거시를 속된 말로 발라내는 과정은 정말 좋았다. MSA에 설익은 나와 같은 엔지니어들이 망치(MSA)만 들면 전부 못(마이크로서비스)으로 보인다고 뭐든지 마이크로서비스로 분리해내려는 시도를 하는데, 해야 할 부분만 마이크로서비스로 분리하라는 조언도 잊지 않고 해주고 있다.
4장을 읽을 때는 정말 이 책의 백미라고 생각하며 읽다가, 5장을 읽고는 다른 자바 개발자들에게 추천한다면 5장을 추천해야 하겠다는 생각이 많이 들었다. 유수의 스타트업 사례에서 화제가 됐던 스프링 클라우드(Spring Cloud)의 zuul이나 Eureka 등을 활용해서 MSA를 구현하는 정말 실질적인 이야기를 들어볼 수 있어서 정말 좋았던 챕터다.
요즘 MSA가 워낙 화두가 되고 모든 것을 MSA 스타일로 만들어야 한다고 하지만 정작 서비스를 분류하고 단위 서비스들을 묶어주려면 막막할 때가 많은데, 이 책은 사례를 들어 차근차근 풀어나가면서 등대 구실을 하는 좋은 책이라고 생각한다. 이 책을 읽기 좋게 번역해주신 역자들께 감사드린다.
/자바 챔피언 양수열

이 책의 대상 독자

현대적인 비즈니스 요구 사항 충족을 위해 클라우드 기반의 대규모 애플리케이션을 만들고 싶어하는 스프링 개발자라면 이 책은 필수 아이템이다. 단순한 RESTful 서비스를 만드는 것으로 시작해서 엔터프라이즈급의 마이크로서비스 생태계를 아우르는 애플리케이션을 만들 수 있다.

이 책의 구성

1장. '쉽게 알아보는 마이크로서비스'에서는 마이크로서비스에 대한 소개와 함께 마이크로서비스의 기본 개념, 진화에 대해 알아보고, 마이크로서비스와 서비스 지향 아키텍처의 관계와 클라우드를 기본으로 하는 12 요소 애플리케이션의 개념에 대해서도 살펴본다.
2장. '스프링 부트로 만드는 마이크로서비스'에서는 스프링 프레임워크를 사용해서 REST 기반이자 메시지 기반의 마이크로서비스를 스프링 부트로 만드는 방법을 알아보고, 스프링 부트의 몇 가지 핵심 기능도 살펴본다.
3장. '마이크로서비스 개념 적용'에서는 엔터프라이즈 수준의 마이크로서비스를 만들 때 개발자가 직면하게 되는 난관을 자세히 살펴보면서 마이크로서비스 구현에 관한 실무적인 측면을 다뤄보고, 마이크로서비스 생태계를 성공적으로 관리하는 데 필요한 기능도 알아본다.
4장. '마이크로서비스 진화: 사례 연구'에서는 브라운필드 항공사 애플리케이션을 진화시켜가는 실무 사례를 통해 3장에서 배운 마이크로서비스 개념을 어떻게 적용하는지 알아본다.
5장. '스프링 클라우드를 활용한 마이크로서비스 확장'에서는 4장에서 만든 마이크로서비스를 스프링 클라우드 기술 스택을 이용해 확장하는 방법을 알아본다. 스프링 클라우드의 아키텍처와 다양한 컴포넌트에 대해 자세히 살펴보고, 여러 컴포넌트를 어떻게 통합해서 사용하는지 알아본다.
6장. '마이크로서비스 자동 확장'에서는 마이크로서비스의 탄력성을 확보하기 위한 간단한 라이프 사이클 관리자를 만들어보고, 서비스 게이트웨이로 서비스를 조율해보면서 마이크로서비스의 self-management에 대해 알아본다. 실제 현장에서 지능적인 서비스 게이트웨이를 어떻게 만드는지 설명한다.
7장. '마이크로서비스 로깅 및 모니터링'에서는 마이크로서비스 개발 시 로깅과 모니터링의 중요성을 다룬다. 마이크로서비스를 사용할 때 필요한 중앙 집중형 로깅과 오픈소스 도구를 활용한 모니터링, 스프링 프로젝트와의 통합 방법 등에 대한 우수 사례를 자세히 살펴본다. 8장. '도커 컨테이너와 마이크로서비스'에서는 마이크로서비스 관점에서 도커화(dockerization)의 개념을 살펴본다. 도커 컨테이너를 대규모 배포에서 어떻게 사용할 수 있는지 살펴본다.
9장. '메소스와 마라톤을 이용한 도커화된 마이크로서비스 관리'에서는 마이크로서비스의 자동 프로비저닝과 배포에 대해 알아본다. 메소스(Mesos)와 마라톤(Marathon)을 사용해서 대규모 배포에서 사용자 정의 라이프 사이클 관리자를 대체할 수 있는 차세대 구현 방식을 알아본다. 10장. '마이크로서비스 개발 라이프 사이클'에서는 마이크로서비스 개발 프로세스와 관습에 대해 알아보고, 데브옵스와 지속적 제품 인도 파이프라인의 중요성에 대해 알아본다.

저자/역자 소개

지은이의 말

마이크로서비스는 복잡한 시스템을 더 작은 여러 개의 서비스로 나눠서 대규모의 비즈니스 서비스를 처리하는 아키텍처 스타일이나 패턴이다. 마이크로서비스는 자율적이고, 자기 완비적(self-contained)이며, 독립적으로 배포할 수 있다. 오늘날 많은 기업에서는 대규모의 서비스 지향 기업 애플리케이션을 마이크로서비스로 만드는 것을 표준으로 삼는다. 스프링(Spring)은 개발자 커뮤니티에서 오랫동안 사랑받아온 프로그래밍 프레임워크다. 스프링 부트(Spring Boot)는 무거운 애플리케이션 컨테이너를 제거하고 가볍고 서버리스(server-less)한 애플리케이션 배포를 가능하게 했다. 스프링 클라우드(Spring Cloud)는 많은 넷플릭스(Netflix) 컴포넌트를 조합해서 대규모의 마이크로서비스를 실행하고 운영할 수 있는 생태계를 제공한다. 스프링 클라우드는 부하 분산, 서비스 레지스트리, 모니터링, 서비스 게이트웨이 등의 기능을 포함하고 있다. 하지만 마이크로서비스에도 모니터링, 운영, 배포, 확장, 의존 대상 서비스 발견 등 어려운 부분이 많다. 특히 대규모 배포에서 더 그렇다. 이런 공통된 난관을 해결하지 않고 마이크로서비스를 도입하면 큰 실패로 이어질 수 있다. 이 책은 마이크로서비스 역량 모델에 대한 기술 진단을 통해 마이크로서비스 적용 시 마주칠 수 있는 공통적인 난관을 해결하는 데 도움을 주는 것을 가장 중요한 목적으로 두고 있다. 이 책의 목표는 독자들에게 응답성 좋은 대규모의 마이크로서비스를 구현하는 실용적인 접근 방식이나 가이드라인을 알려주는 것이다. 독자들은 이 책에서 스프링 부트, 스프링 클라우드, 도커(Docker), 메소스(Mesos), 마라톤(Marathon)을 자세히 살펴볼 수 있을 것이다. 스프링 부트를 통해 무거운 애플리케이션 서버가 필요 없는 자율적이고 서버리스한 서비스를 만드는 방법을 이해하고, 스프링 클라우드의 서로 다른 여러 방면의 기능을 알아보며, 도커를 이용한 컨테이너화와 메소스를 이용한 자원 추상화 및 마라톤을 활용한 클러스터 제어에 대해 알게 될 것이다. 독자들이 이 책의 모든 부분을 즐겁게 읽을 수 있을 것이라 확신한다. 또한 각자의 비즈니스에 마이크로서비스를 성공적으로 도입하는 것을 상상할 수 있게 해줌으로써 무한한 가치를 전달해줄 수 있다고 믿는다. 이 책에는 여행 비즈니스 도메인을 대상으로 한 사례 연구를 비롯한 다양한 예제와 마이크로서비스 구현의 실질적인 부분이 담겨 있다. 책을 다 보고 나면 확장 가능한 마이크로서비스를 개발하고 배포하는 데 있어 실무에서 철저한 테스트를 거쳐 입증된 스프링 프레임워크, 스프링 부트, 스프링 클라우드를 통해 마이크로서비스 아키텍처를 구현하는 방법을 알게 될 것이다. 이 책은 최신 스펙의 스프링을 기준으로 독자들이 인터넷을 통해 들어오는 대규모의 다양한 요청을 처리할 수 있는 현대적인 자바 애플리케이션을 즉시 만들 수 있게 해 줄 것이다.

지은이 소개

라제시 RV(Rajesh RV)

다양한 기술에 대해 폭넓은 경험을 가진 IT 아키텍트로, 16년 이상 항공 IT 분야에서 일해 왔다.
인도의 코친(Cochin) 대학에서 컴퓨터 엔지니어링 학위를 받았고, EJB 초창기에 JEE 커뮤니티 스프링에 참여했다. 아키텍트로서 차세대 항공 여행객 예약 시스템(iFlyRes), 차세대 항공 화물 예약 시스템(Skychain and CROAMIS) 같은 다수의 대규모, 미션 크리티컬 프로젝트를 수행했다.
현재 에미레이트 항공에서 수석 아키텍트로 일하고 있으며, JEE, SOA, NoSQL, IoT, 모바일, UI, 통합 등 다양한 분야의 솔루션 아키텍처를 다루고 있다. 아키텍처를 수립한 Open Travel Platform(OTP)은 2011년 비용 절감 분야에서 레드햇(RedHat) 혁신상을 수상했다. 2011년에는 레거시 메인프레임 시스템을 전환하는 데 사용되는 육각형 아키텍처 패턴을 바탕으로 하는 벌집 아키텍처를 소개하기도 했다.
기술과 아키텍처에 대해 뜨거운 열정이 있으며, BEA 인증 WebLogic Administrator, Sun 인증 Java Enerprise Architect, Open Group 인증 TOGAF Practitioner, SOA 분야의 ZapThink 면허 보유자, IASA 글로벌 CITA-A 인증 아키텍처 스페셜리스트이기도 하다.

옮긴이의 말

마이크로서비스는 이제 국내에서도 많은 곳에서 실제로 도입했거나 도입하려는 움직임을 어렵지 않게 찾을 수 있게 됐다. 기존의 일체형 시스템 개발과 비교해보면 개념적으로는 마이크로서비스의 장점을 쉽게 이해할 수 있지만, 이를 실제로 구현해내려면 여러 가지 기술과 도구들의 도움이 필요하다.
이 책은 스프링 부트와 스프링 클라우드 기술을 바탕으로 검색, 예약, 체크인, 운임 등 여러 도메인으로 구성된 항공 운항 시스템을 마이크로서비스로 구현하는 과정을 다룬다.
마이크로서비스라는 큰 주제에 대해 부분별로 서로 동떨어진 예제를 보여주는 것이 아니라 일반적인 스프링 부트 웹 애플리케이션에서 시작해서 스프링 클라우드 기술을 적용해가면서 처음부터 끝까지 일관성 있게 하나의 대상 시스템을 클라우드 기반의 마이크로서비스 아키텍처로 구축해가는 전체 과정을 보여주는 것이 이 책의 특징이자 가장 큰 장점이라고 할 수 있다.
새로운 서비스의 구현 뿐만 아니라 이미 일체형 아키텍처로 구현된 프로젝트를 마이크로서비스로 전환하는 과정도 상세하게 다룬다. 전환 과정에서 마주치게 될 난관들과 해결 방법에서 얻을 수 있는 통찰만으로도 이 책을 사서 볼 만한 가치가 충분하다고 생각한다. 꼭 마이크로서비스가 아니더라도 분산 환경에서 발생할 수 있는 다양한 문제들과 그 해법에서 많은 것을 배울 수 있다.
또한 서비스 지향 아키텍처 및 12 요소 애플리케이션과의 비교를 통한 마이크로서비스 개념 정립, 데브옵스와의 관계, 마이크로서비스 개발에 적합한 문화와 방법론 등 이론적인 면에 있어서도 폭넓은 이야깃거리를 다루며, 화두를 던진다.
마이크로서비스 역량 모델의 개념적 틀을 반복적으로 제시하면서 역량 모델의 각 요소에 대한 구체적인 내용을 전개해가는 서술 방식 덕분에 마이크로서비스의 방대한 내용을 공부할 때 중심을 잡고 길을 잃지 않도록 도와준다.
복잡다단한 다양한 서비스를 구현하는 많은 개발자들이 이 책을 통해 마이크로서비스를 익히고 실무에 점진적으로 적용해가면서 개인 역량도 up, 생산성도 up, 야근 시간은 down되기를 진심으로 바란다.
이 책은 전체적인 흐름이 매우 균형적이고 매끄럽다는 장점이 있는 반면에 세부적인 문장 단위로 보면 어딘지 모르게 부드럽게 읽히지 않는 미묘한 부분들이 상당히 많아서, 번역하는 입장에서 그런 부분을 보완하는 데 정말 많은 공을 들였다.
책의 기본 내용과 흐름이 워낙 좋아서 독자들의 만족도도 높으리라고 조심스레 예상해본다. 한걸음 더 나아가 독자들로부터 이 책을 '부드럽게' 읽을 수 있었다는 평을 들을 수 있다면 번역자로서 더 바랄 것이 없을 것 같다.

/대표역자 오명운

옮긴이 소개

오명운

백발 개발자를 꿈꾸며 언제나 버그와 씨름하는 개발자다. 번역을 통해 개발자 생태계에 조금이라도 기여하고자 노력한다. 옮긴 책으로는 에이콘출판사에서 펴낸 『D3.js 실시간 데이터 시각화』(2015), 『Gerrit 코드 리뷰』(2015), 『d3.js를 이용한 데이터 시각화』(2014)가 있다.

박소은

즐겁게 코딩하기 위해 노력하는 개발자다. 경제학을 전공하며 조금 다뤄봤던 R을 통해 코딩의 매력에 빠져 이 세계에 발을 들였고, 안주하지 않기 위해 끊임없이 노력 중이다. 『SMACSS:복잡한 CSS를 관리하는 5가지 스타일 가이드』(인사이트, 2016)를 번역했다.

허서윤

SK플래닛에서 11번가, 시럽스토어 등의 서비스 운영을 위한 백엔드(Backend) 개발을 하고 있다. 근본 있는 개발자가 되기 위해 부단히 노력하고 있으며, 의미 있는 일을 찾고 있다.

이완근

NHN 테크놀로지 서비스(Technology Services)에서 네이버 지도 운영 툴 개발을 담당했고, 현재는 SK플래닛에서 Spring, JPA, Angular2를 이용해 DMP 프로젝트에서 웹 애플리케이션을 개발하고 있다. 웹 개발 경력에서 부족한 부분이 무엇인지 끊임없이 고민하고 빈틈을 메꾸려 수련하는 것을 즐기고 있으며, 개인 블로그(http://icednut.github.io)에 개발 관련 스터디 내용을 정리해 운영하고 있다.

한국어판 기술 감수자 소개

양수열

오라클 에이스(Oracle ACE, 미들웨어 부문), 한국 자바 챔피언으로, 3대 한국자바개발자협의회 회장을 역임했으며 현재 소프트웨어 마에스트로 멘토이자 스타트업 CTO을 맡고 있다. 기존의 소프트웨어 개발과 스타트업에서의 소프트웨어 개발의 간극을 몸으로 체감하면서 좌충우돌 개발하고 있는 작은 스타트업의 CTO다. 스타트업 CTO와 멘토링을 통해 많은 스타트업에서 배우고 있는 중년 개발자다.

목차

목차
  • 1장. 쉽게 알아보는 마이크로서비스
    • 마이크로서비스로의 진화
      • 마이크로서비스로 진화의 촉매:비즈니스적 요구
      • 마이크로서비스로 진화의 촉매: 기술
      • 명령형 아키텍처의 진화
    • 마이크로서비스란 무엇인가?
    • 마이크로서비스와 벌집
    • 마이크로서비스의 원칙
      • 서비스 하나에 책임도 하나
      • 마이크로서비스는 자율적
    • 마이크로서비스의 특징
      • 서비스는 일급 시민
      • 마이크로서비스 안에 있는 서비스들의 특징
      • 마이크로서비스는 경량
      • 다양한 언어로 구성할 수 있는 마이크로서비스
      • 마이크로서비스 환경에서의 자동화
      • 마이크로서비스를 지원하는 생태계
      • 동적이고 분산돼 있는 마이크로서비스
      • 붕괴 저항성, 빨리 실패하기, 자체 치유
      • 마이크로서비스 예제
    • 휴일 정보 포털의 예
      • 마이크로서비스 기반의 주문 관리 시스템
      • 여행사 포털 사례
    • 마이크로서비스의 장점
      • 폴리글랏 아키텍처 지원
      • 실험과 혁신 유도
      • 탄력적이고 선택적인 확장
      • 대체 가능성
      • 유기적 시스템 구축 유도
      • 기술적 부채 경감
      • 다양한 버전의 공존
      • 자기 조직 시스템 구축 지원
      • 이벤트 주도 아키텍처 지원
      • 데브옵스 지원
    • 다른 아키텍처 스타일과의 관계
      • SOA와의 관계
        • 서비스 지향 통합
        • 기존 시스템의 현행화
        • 서비스 지향 애플리케이션
        • SOA를 사용한 일체형의 전환
      • 12 요소 애플리케이션과의 관계
        • 단일 코드 베이스
        • 의존성 꾸러미
        • 환경설정 외부화
        • 후방 지원 서비스 접근성
        • 빌드, 출시, 운영 사이의 고립성
        • 무상태,비공유 프로세스
        • 서비스를 포트에 바인딩해서 노출
        • 확장을 위한 동시성
        • 폐기 영향 최소화
        • 개발과 운영의 짝 맞춤
        • 로그 외부화
        • 패키지 매니저 프로세스
    • 마이크로서비스 사용 사례
      • 마이크로서비스를 일찍 도입한 조직
      • 공통적인 주제는 일체형의 전환
    • 정리

  • 2장. 스프링 부트로 만드는 마이크로서비스
    • 개발 환경 구축
    • RESTful 서비스 만들기: 기존 방식
    • 전통적인 웹 애플리케이션에서 마이크로서비스로의 전환
    • 스프링 부트로 RESTful 마이크로서비스 만들기
    • 스프링 부트 시작
    • CLI를 활용한 스프링 부트 마이크로서비스 개발
    • STS를 활용한 스프링 부트 자바 마이크로서비스 개발
      • POM 파일
      • Application.java
      • application.properties
      • ApplicationTests.java
      • 스프링 부트 마이크로서비스 테스팅
    • Spring Initializr를 활용한 스프링 부트 마이크로서비스 개발: HATEOS 예제
    • 다음에 알아볼 내용
    • 스프링 부트 환경설정
      • 스프링 부트 자동 환경설정의 이해
      • 환경설정 기본 값 변경
      • 환경설정 파일의 위치 변경
      • 사용자 정의 속성 정보 사용
      • 환경설정 정보 관리에 .yaml 파일 사용
      • 프로파일을 활용한 다중 환경설정
      • 환경설정 속성 정보를 읽을 수 있는 다른 방법
    • 내장된 기본 웹서버의 변경
    • 스프링 부트 보안
      • 마이크로서비스에 기본적인 보안 적용
      • OAuth2를 사용하는 마이크로서비스 보안
    • 다른 도메인에 존재하는 정보 요청 활성화
    • 스프링 부트 메시징 구현
    • 종합적인 마이크로서비스 예제
    • 스프링 부트 액추에이터
      • JConsole을 활용한 모니터링
      • SSH를 활용한 모니터링
    • 애플리케이션 관련 정보 설정
    • 사용자 정의 서버 진단 모듈
      • 사용자 정의 지표
    • 마이크로서비스 문서화
    • 정리

  • 3장. 마이크로서비스 개념 적용
    • 패턴 및 설계상의 일반적인 의사 결정
      • 적절한 마이크로서비스 경계 설정
        • 자율적인 기능
        • 배포 단위의 크기
        • 분리하기에 가장 적합한 기능 또는 서브도메인
        • 폴리글랏 아키텍처
        • 선택적 확장
        • 작고 애자일한 팀
        • 단일 책임
        • 복제 가능성과 변경 가능성
        • 결합과 응집
        • 마이크로서비스를 하나의 제품으로 생각하기
      • 통신 방식 설계
        • 동기 방식 통신
        • 비동기 방식 통신
        • 동기와 비동기, 선택의 기준
      • 마이크로서비스 오케스트레이션
      • 마이크로서비스 하나에 얼마나 많은 종단점을 둘 것인가?
      • 가상머신 하나당 하나의 마이크로서비스 또는 다수의 마이크로서비스
      • 룰 엔진:공유 또는 내장
      • BPM의 역할과 작업 흐름
      • 마이크로서비스가 데이터 스토어를 공유할 수 있는가?
      • 트랜잭션 경계 설정
        • 트랜잭션 요구 사항을 단순화하기 위한 사용 사례의 변경
        • 분산 트랜잭션 시나리오
      • 서비스 종단점 설계 고려 사항
    • 계약 설계
      • 프로토콜 선택
    • 공유 라이브러리 처리
    • 마이크로서비스에서의 사용자 인터페이스
    • 마이크로서비스에서 API 게이트웨이 사용
    • ESB 및 iPass와 마이크로서비스의 사용
    • 서비스 버저닝 고려 사항
    • 크로스오리진 설계
    • 공유 참조 데이터 처리
    • 마이크로서비스와 대규모 데이터 작업
  • 마이크로서비스의 과제
    • 데이터 섬
    • 로깅과 모니터링
    • 의존 관계 관리
    • 조직 문화
    • 관리 체계 문제
    • 운영 오버헤드
    • 마이크로서비스 테스팅
    • 인프라스트럭처 프로비저닝
  • 마이크로서비스 역량 모델
    • 핵심 역량
    • 인프라스트럭처 역량
    • 지원 역량
    • 프로세스 및 통제 역량
  • 정리

  • 4장. 마이크로서비스의 진화: 사례 연구
    • 마이크로서비스 역량 모델 다시 보기
    • PSS 애플리케이션의 이해
      • 비즈니스 절차적 관점
      • 기능적 관점
      • 구조적 관점
      • 설계 관점
      • 구현 관점
      • 배포 관점
    • 일체형의 죽음
      • 문제점
      • 간극 메우기를 멈추기
      • 회고
        • 공유 데이터
        • 단일 데이터베이스
        • 도메인 경계
    • 마이크로서비스의 구원
    • 비즈니스 사례
    • 진화 계획
      • 진화론적 접근
      • 마이크로서비스의 경계 식별
        • 의존 관계 분석
      • 마이그레이션을 위한 마이크로서비스 우선순위 지정
      • 마이그레이션 중의 데이터 동기화
      • 참조 데이터 관리
      • 사용자 인터페이스와 웹 애플리케이션
        • 세션 관리 및 보안
      • 테스트 전략
      • 생태계 역량 구축
    • 필요할 때만 모듈을 마이그레이션
    • 목표 구조
      • 마이크로서비스의 내부 계층 구조
      • 마이크로서비스 조직화
      • 다른 시스템과의 통합
      • 공유 라이브러리 관리
      • 예외 처리
    • 구현 목표
      • 프로젝트 구현
      • 프로젝트 실행 및 테스트
    • 정리

  • 5장. 스프링 클라우드를 활용한 마이크로서비스 확장
    • 마이크로서비스 역량 모델 다시 보기
    • 브라운필드 PSS 시스템 다시 보기
    • 스프링 클라우드란?
      • 스프링 클라우드 출시 버전
      • 스프링 클라우드 컴포넌트 구성 요소
        • 스프링 클라우드와 Netflix 오픈소스 소프트웨어
    • 브라운필드 PSS 시스템을 위한 개발 환경설정
    • Spring Cloud Config
      • 다음에 알아볼 내용
      • Config 서버 셋업
      • Config 서버 URL의 이해
        • 클라이언트에서 Config 서버 접근
      • 환경설정 정보 변경 전파 및 반영
      • 환경설정 변경을 전파하는 Sping Cloud Bus
      • Config 서버에 고가용성 적용
      • Config 서버 상태 모니터링
      • Config 서버 환경설정 파일
      • Config 서버를 사용하는 환경설정 외부화 완성
    • 선언적 REST 클라이언트 Feign
    • 로드 밸런서 Ribbon
    • Eureka를 이용한 서비스 등록 및 발견
      • 동적 서비스 등록 및 발견의 이해
      • Eureka의 이해
      • Eureka 서버 구성
      • 고가용성 Eureka 서버
    • Zuul 프록시 API 게이트웨이
      • Zuul 설정
      • 고가용성 Zuul
        • 클라이언트가 Eureka 클라이언트이기도 할 때의 고가용성 Zuul
        • 클라이언트가 Eureka 클라이언트가 아닐 때의 고가용성 Zuul
      • 다른 모든 브라운필드 마이크로서비스에 Zuul 적용
    • 리액티브 마이브로서비스를 위한 스트림
    • 브라운필드 PSS 시스템 정리
    • 정리

  • 6장. 마이크로서비스 자동 확장
    • 마이크로서비스 역량 모델 다시 보기
    • 스프링 클라우드를 활용한 마이크로서비스 확장
    • 자동 확장 개념의 이해
      • 자동 확장의 장점
      • 여러 가지 자동 확장 모델
        • 애플리케이션 자동 확장
        • 인프라스트럭처 자동 확장
      • 클라우드 자동 확장
    • 자동 확장 방식
      • 자원 제약 조건 기반의 확장
      • 특정 기간 동안 확장
      • 메시지 큐 길이 기반의 확장
      • 비즈니스 파라미터 기반의 확장
      • 예측에 의한 확장
    • BrownField PSS 마이크로서비스 자동 확장
      • 자동 확장 시스템에 필요한 기능
      • 스프링 부트를 활용한 사용자 정의 라이프 사이클 매니저의 구현
      • 배포 토폴로지의 이해
      • 실행 흐름의 이해
      • 라이프 사이클 매니저 코드 따라가기
      • 라이프 사이클 매니저 실행하기
    • 정리

  • 7장. 마이크로서비스 로깅 및 모니터링
    • 마이크로서비스 역량 모델 다시 보기
    • 로그 관리와 관련된 난제
    • 중앙 집중형 로깅
    • 로깅 솔루션 선택
      • 클라우드 서비스
      • 내장 가능한 로깅 솔루션
      • 최상의 통합
        • 로그 적재기
        • 로그 스트림 처리기
        • 로그 저장소
        • 대시보드
      • 사용자 정의 로깅 구현
      • Spring Cloud Sleuth로 분산 로그 추적
    • 마이크로서비스 모니터링
      • 모니터링 도전 과제
      • 모니터링 도구
      • 마이크로서비스 의존 관계 모니터링
      • 장애를 견딜 수 있는 마이크로서비스를 위한 Spring Cloud Netflix
      • Turbine을 통한 Hystrix스트림 통합
    • 데이터 호수를 사용한 데이터 분석
    • 정리

  • 8장. 도커 컨테이너와 마이크로서비스
    • 마이크로서비스 역량 모델 다시 보기
    • 지금까지 만들어온 브라운필드 PSS 마이크로서비스의 한계
    • 컨테이너란 무엇인가?
    • 가상머신과 컨테이너의 차이
    • 컨테이너의 장점
    • 마이크로서비스와 컨테이너
    • 도커 소개
      • 도커 핵심 컴포넌트
        • 도커 데몬
        • 도커 클라이언트
      • 도커 주요 개념
        • 도커 이미지
        • 도커 컨테이너
        • 도커 레지스트리
        • Dockerfile
    • 마이크로서비스를 도커로 배포
    • 도커에서 Rabbit MQ 실행
    • 도커 레지스트리 사용
      • Docker Hub 구성
      • 도커 허브에 마이크로서비스 퍼블리싱
    • 클라우드에서의 마이크로서비스
      • AWS EC2에 도커 설치
    • EC2에서 브라운필드 서비스 실행
    • 라이프 사이클 매니저 업데이트
    • 컨테이너화의 미래 :유니커널과 강화된 보안
    • 정리

  • 9장. 메조스와 마라톤을 이용한 도커화된 마이크로서비스 관리
    • 마이크로서비스 역량 모델 다시 보기
    • 잃어버린 조각
    • 클러스터 관리가 중요한 이유
    • 클러스터 관리가 하는 일
    • 마이크로서비스와의 관계
    • 가상화와의 관계
    • 클러스터 관리 솔루션
      • 도커 스웜
      • 쿠버네티스
      • 아파치 메조스
      • 노매드
      • 플릿
    • 메조스와 마라톤을 이용한 클러스터 관리
      • 메조스 속속들이 알아보기
        • 메조스 아키텍처
        • 마라톤
    • 브라운필드 마이크로서비스에 메조스와 마라톤 적용
      • AWS 구성
      • 주키퍼, 메조스, 마라톤 설치
        • 주키퍼 설정
        • 메조스 설정
        • 메조스, 마라톤, 주키퍼를 서비스로서 실행
        • 브라운필드 PSS 서비스 준비
        • 브라운필드 PSS 서비스 배포
        • 배포 다시 보기
    • 라이프 사이클 매니저
      • 메조스와 마라톤을 사용하게 재작성한 라이프 사이클 매니저
    • 기술 메타모델
    • 정리

  • 10장. 마이크로서비스 개발 라이프 사이클
    • 마이크로서비스 역량 모델 다시 보기
    • 린 IT의 새로운 만트라: 데브옵스
      • 낭비 줄이기
      • 가능한 모든 과정을 자동화
      • 가치 주도 전달
      • 개발과 운영의 연결
    • 삼총사의 만남: 마이크로서비스, 데브옵스, 클라우드
      • 마이크로서비스를 위한 셀프 서비스 인프라스트럭처로서의 클라우드
      • 마이크로서비스를 위한 관습과 프로세스로서의 데브옵스
    • 마이크로서비스 개발을 위한 관습
      • 비즈니스 동기 및 가치에 대한 이해
      • 프로젝트에서 제품 개발로의 사고방식 전환
      • 개발 철학의 선택
        • 디자인 사고
        • 스타트업 모델
        • 애자일 관습
      • 실행 가능한 최소한의 프로젝트 개념 활용
      • 레거시 난관 극복
      • 데이터베이스를 둘러싼 문제 해결
      • 자기 조직화 팀의 구성
      • 자체 클라우드 구축
      • 마이크로서비스 생태계 구축
      • 데브옵스 스타일의 마이크로서비스 라이프 사이클 프로세스 정의
        • 가치 주도 계획
        • 애자일 개발
        • 지속적 통합
        • 지속적 테스팅
        • 지속적 출시
        • 지속적 모니터링 및 피드백
      • 지속적 전달 파이프라인 자동화
        • 개발
        • 지속적 통합
        • 테스트 자동화
        • 지속적 배포
        • 모니터링과 피드백
      • 자동화된 설정 관리
    • 마이크로서비스 배포 통제 , 참조 아키텍처, 라이브러리
    • 정리
  • 도서 오류 신고

    도서 오류 신고

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

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

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