이미 소장하고 있다면 판매해 보세요.
|
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의 새로운 만트라: 데브옵스 ____낭비 줄이기 ____가능한 모든 과정을 자동화 ____가치 주도 전달 ____개발과 운영의 연결 __삼총사의 만남: 마이크로서비스, 데브옵스, 클라우드 ____마이크로서비스를 위한 셀프 서비스 인프라스트럭처로서의 클라우드 ____마이크로서비스를 위한 관습과 프로세스로서의 데브옵스 __마이크로서비스 개발을 위한 관습 ____비즈니스 동기 및 가치에 대한 이해 ____프로젝트에서 제품 개발로의 사고방식 전환 ____개발 철학의 선택 ______디자인 사고 ______스타트업 모델 ______애자일 관습 ____실행 가능한 최소한의 프로젝트 개념 활용 ____레거시 난관 극복 ____데이터베이스를 둘러싼 문제 해결 ____자기 조직화 팀의 구성 ____자체 클라우드 구축 ____마이크로서비스 생태계 구축 ____데브옵스 스타일의 마이크로서비스 라이프 사이클 프로세스 정의 ______가치 주도 계획 ______애자일 개발 ______지속적 통합 ______지속적 테스팅 ______지속적 출시 ______지속적 모니터링 및 피드백 ____지속적 전달 파이프라인 자동화 ______개발 ______지속적 통합 ______테스트 자동화 ______지속적 배포 ______모니터링과 피드백 ____자동화된 설정 관리 __마이크로서비스 배포 통제 , 참조 아키텍처, 라이브러리 __정리 |
오명운의 다른 상품
|
이 책에서 다루는 내용
*마이크로서비스 아키텍처와 장점 *마이크로서비스 개발 시 마주하는 공통적인 문제에 대한 해결 방법 *마이크로서비스를 개발하는 데 사용할 스프링 부트와 스프링 클라우드의 사용 방법 *마이크로서비스 로깅과 모니터링 방법 *도커, 메소스, 마라톤으로 인터넷을 통해 들어오는 대규모의 다양한 요청을 처리하는 마이크로서비스 관리 방법 *마이크로서비스 통제와 개발 라이프 사이클 프로세스 한국어판 추천의 글 이 책을 읽어보면서 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)을 자세히 살펴볼 수 있을 것이다. 스프링 부트를 통해 무거운 애플리케이션 서버가 필요 없는 자율적이고 서버리스한 서비스를 만드는 방법을 이해하고, 스프링 클라우드의 서로 다른 여러 방면의 기능을 알아보며, 도커를 이용한 컨테이너화와 메소스를 이용한 자원 추상화 및 마라톤을 활용한 클러스터 제어에 대해 알게 될 것이다. 독자들이 이 책의 모든 부분을 즐겁게 읽을 수 있을 것이라 확신한다. 또한 각자의 비즈니스에 마이크로서비스를 성공적으로 도입하는 것을 상상할 수 있게 해줌으로써 무한한 가치를 전달해줄 수 있다고 믿는다. 이 책에는 여행 비즈니스 도메인을 대상으로 한 사례 연구를 비롯한 다양한 예제와 마이크로서비스 구현의 실질적인 부분이 담겨 있다. 책을 다 보고 나면 확장 가능한 마이크로서비스를 개발하고 배포하는 데 있어 실무에서 철저한 테스트를 거쳐 입증된 스프링 프레임워크, 스프링 부트, 스프링 클라우드를 통해 마이크로서비스 아키텍처를 구현하는 방법을 알게 될 것이다. 이 책은 최신 스펙의 스프링을 기준으로 독자들이 인터넷을 통해 들어오는 대규모의 다양한 요청을 처리할 수 있는 현대적인 자바 애플리케이션을 즉시 만들 수 있게 해 줄 것이다. |