실용적인 마이크로서비스 아키텍처 패턴 (스프링 부트와 스프링 클라우드를 활용한)

실용적인 마이크로서비스 아키텍처 패턴 (스프링 부트와 스프링 클라우드를 활용한)

$54.87
Description
이벤트 기반 마이크로서비스가 Axon 2 프레임워크로 구현된 CQRS 패턴으로 작동하는 방식을 배운다. 그리고 분산 트랜잭션이 마이크로서비스에 어떻게 작동하는지, 고가용성 및 확장성과 같은 비기능적 측면을 해결하기 위한 고급 아키텍처 설명으로 이어진다. Axon 프레임워크와 진정한 BASE 트랜잭션을 사용해 최대한 안전하게 자신만의 마이크로서비스 애플리케이션을 개발한다.
분산 애플리케이션을 한 단계 업그레이드하고 마이크로서비스와 관련된 참조 아키텍처가 무엇을 할 수 있는지 확인한다. 분산 컴퓨팅 아키텍처 환경을 보여주는 것으로 시작해 마이크로서비스 아키텍처에 대한 심층적인 관점을 제공한다. 그런 다음 마이크로서비스의 필수 패턴인 CQRS를 사용하고 분산 메시징이 작동하는 방식을 확인한다.
저자

비닐다스크리스투다스

(BinildasChristudas)
IT솔루션관련기술아키텍처컨설팅을제공한다.마이크로소프트와오라클기술분야에서20년이상의IT경험이있다.자바와C#프로그래밍에대한광범위한실무경험이있고,주요기술은분산컴퓨팅과서비스기반통합이다.잘알려져있고인기가높은사고리더로서포춘500대기업을비롯한최고수준의여러고객을위해확장성이뛰어난미들티어와통합솔루션을설계하고구축했다.인포시스와타타컨설턴티서비스(TataConsultancyServices)를비롯한여러IT컨설팅회사에서근무했으며현재IBS소프트웨어에서수석설계자로일하는중이다.VP와기술책임자로서IBS상품포트폴리오의기술과아키텍처전략을이끌고있다.
SCJP(SunCertifiedProgrammer),SCJD(SunCertifiedDeveloper),SCBCD(SunCertifiedBusinessComponentDeveloper),SCEA(SunCertifiedEnterpriseArchitect),MCP(MicrosoftCertifiedProfessional),OpenGroup(TOGAF8)CertifiedEnterpriseArchitecturePractitioner다.또한SOA의LZA(LicensedZapthinkArchitect)이기도하다.B.Tech를보유하고있다.트리반드룸(CET)공과대학에서기계공학을전공했고케랄라(Kerala)경영연구소(IMK)에서시스템MBA를취득했다.케랄라대학교역도팀의주장이었으며대학시절전국챔피언이었다.IBS는‘서비스의다중테넌시를촉진하기위한방법과시스템’이라는제목의제안을USPTO에특허로신청했다.

목차

1장.분산컴퓨팅아키텍처환경
__시스템아키텍처
____메인프레임아키텍처
____클라이언트-서버아키텍처
____3계층아키텍처
____N계층아키텍처
__네트워크아키텍처
____지점간
____허브와스포크
____엔터프라이즈메시지버스
____엔터프라이즈서비스버스
__소프트웨어아키텍처
____애플리케이션계층
____애플리케이션레이어
__애플리케이션아키텍처환경
____일반적인애플리케이션아키텍처
____일반적인배포아키텍처
__확장성딜레마
____애플리케이션상태
____의존성의어려움
____모놀리스애플리케이션
__확장가능한아키텍처
____상태비저장설계
____분할과정복
__요약

2장.마이크로서비스소개
__모듈식모놀리스
____모듈식조직
____모놀리스애플리케이션
____모놀리스애플리케이션경계
____모놀리스모듈간의존성
____확장성딜레마
____모놀리스기술제약
__마이크로서비스소개
____독립모듈
____모듈간통신
____마이크로서비스
__요약


3장.심층마이크로서비스
__마이크로서비스의겉모습
____전자상거래마이크로서비스
____무계층,분산형
____마이크로모놀리스
____자체포함마이크로서비스
____마이크로서비스와SOA의유사성
____메시지기반마이크로서비스
__고급마이크로서비스기능
____마이크로서비스안전장치
____마이크로서비스확장성
____마이크로서비스가변성
__요약

4장.마이크로서비스아키텍처
__디지털비즈니스를위한아키텍처
____디지털시대
____디지털앱
____메시앱과서비스아키텍처
__마이크로서비스에대한컨텍스트
____서비스의세분성
____게이트웨이
____도메인중심파티션
____클라우드네이티브전환
____웹스케일컴퓨팅
__없어서는안될클라우드
____클라우드아키텍처모델
____클라우드서비스모델
____SaaS성숙도모델
____가상화
____가상화서버와컨테이너
__마이크로서비스아키텍처
____아키텍처의역전
____내부아키텍처관점
____외부아키텍처관점
____MASA의큰그림
__요약

5장.마이크로서비스를위한필수패턴
__서비스의직교스케일아웃
____쓰기대읽기트랜잭션
____조회후예약과제
__CQRS:명령과조회책임분리
____전통적방식과CQRS기반소프트웨어시스템
____CQRS의명명법
__이벤트기반CQRS아키텍처
____이벤트기반CQRS설계를위한메타모델
____이벤트를사용한명령조회분리
____CQRS기반마이크로서비스의확장
__요약

6장.분산메시징
__메시징의복원력
____메시지지속성
____마이크로서비스의다양한운영특성을위한설계
____사슬의강도는가장약한고리에달렸다
__동기식또는비동기식
____마이크로서비스간의동기식상호작용
____마이크로서비스간의비동기상호작용
__단일노드RabbitMQ브로커로메시지송수신
____RabbitMQ메시지발송자
____RabbitMQ메시지수신자
____RabbitMQ예제빌드와실행
__스프링AMQP를사용해RabbitMQ에메시지송수신
____스프링AMQP메시지리스너
____스프링AMQP메시지생산자
____스프링AMQPRabbitMQ예제빌드와실행
__다중노드RabbitMQ클러스터로메시지송수신
__소비자와생산자연결
____상관관계ID
____대량의부하를동시에처리하게커스텀네트워크서버코딩
____동시전시게임
____메시지상관관계와마이크로서비스
__요약

7장.스프링부트
__스프링부트와몽고DB를사용해데이터작업수행
____스프링이니셜라이저를사용해스프링부트프로젝트템플릿생성
____엔티티도메인설계와코딩
____리포지터리코딩
____실행가능부트애플리케이션코딩
____스프링부트애플리케이션빌드와패키징
____스프링부트애플리케이션실행과테스트
__스프링HAL브라우저,HATEOAS를사용한개발
____HAL브라우저
____RestTemplate을사용한HALREST엔드포인트테스트
__RESTful웹서비스개발
____REST기초
____CRUD리소스에대한HTTP메서드
____스프링부트에서REST컨트롤러개발
____RestTemplate을사용한REST컨트롤러테스트
__요약

8장.스프링클라우드
__마이크로서비스아키텍처를위한스프링클라우드
__스프링클라우드의페인클라이언트사용
____페인클라이언트시나리오설계
____페인클라이언트사용코드
____페인클라이언트빌드와테스트
__히스트릭스폴백
____히스트릭스폴백시나리오설계
____히스트릭스폴백시나리오코딩
____히스트릭스폴백시나리오빌드와테스트
__히스트릭스대시보드
____히스트릭스폴백메서드재설계
____히스트릭스의새로운설계로코딩
____히스트릭스폴백시나리오빌드와테스트
____히스트릭스대시보드검사
__리본:클라이언트측로드밸런서
____리본클라이언트시나리오설계
____리본클라이언트를사용한코드
____리본클라이언트빌드와테스트
__유레카:서비스레지스트리
____유레카사용시나리오설계
____유레카사용코드
____유레카예제빌드와테스트
____부트스트랩서버
__주울:API게이트웨이
____부트스트랩URL
____주울지원시나리오설계
____주울사용코드
____주울예제빌드와테스트
__구성서버
____구성시나리오설계
____구성서버사용코드
____구성서버빌드와테스트
__요약

9장.고가용성과마이크로서비스
__고가용성
____고가용성측정
____고가용성기준설정
__고가용성분해
____DNS이중화
____DNS부하분산
____ISP이중화
____애플리케이션아키텍처이중화
____데이터와스토리지이중화
__마이크로서비스의고가용성
__스프링클라우드마이크로서비스고가용성시연
____마이크로서비스고가용성시나리오설계
____마이크로서비스의고가용성을보여주는코드
____마이크로서비스고가용성빌드와테스트
__요약

10장.마이크로서비스성능
__외부아키텍처를통한커뮤니케이션
__비동기HTTP
____HTTP의부족한부분과좋지않은부분
____비동기HTTP처리를위한API
____마이크로서비스간비동기HTTP시연시나리오설계
____스프링부트에서비동기HTTP를사용한코드
____마이크로서비스간비동기HTTP빌드와테스트
__스프링부트마이크로서비스간구글프로토콜버퍼
____프로토콜버퍼
____마이크로서비스간의프로토콜버퍼를시연하는시나리오
____스프링부트에서프로토콜버퍼를사용하는코드
____마이크로서비스간프로토콜버퍼빌드와테스트
____프로토콜버퍼사용의영향
__요약

11장.이벤트와결과적일관성
__이벤트기반아키텍처
____이벤트
____EDA구성요소
__마이크로서비스와이벤트기반아키텍처
____마이크로서비스의진화
____결과적일관성과마이크로서비스
__마이크로서비스와CAP정리
____스케일큐브
____CAP정리
____BASE시스템
____CAP피라미드
__요약

12장.CQRS아키텍처를위한Axon
__CQRS프레임워크Axon소개
____Axon은무엇일까?
____Axon을사용할수있는곳
____Axon을실행할때필요한것
__동일한JVM에서명령과이벤트처리
____예제시나리오
____예제시나리오코딩
____예제시나리오빌드와테스트
__분산명령과이벤트처리
____예제시나리오
____예제시나리오코딩
____예제시나리오빌드와테스트
__요약

13장.분산트랜잭션
__두장군의역설
____두장군의역설설명
____솔루션접근법
____장군으로서의마이크로서비스
____TCP/IP,장군사이의계곡
__트랜잭션
____트랜잭션의핵심에있는하드웨어지침
____트랜잭션의ACID
____트랜잭션모델
____EJB와스프링의트랜잭션속성비교
____트랜잭션격리메커니즘
____트랜잭션격리수준
____트랜잭션동시성
____트랜잭션격리제어방법
__엔터프라이즈트랜잭션범주
____ACID트랜잭션
____BASE=ACID를조각으로나누기
____BASE트랜잭션
____완화된BASE트랜잭션
__ACID와BASE비교
__분산트랜잭션재검토
____로컬트랜잭션
____분산트랜잭션
____자바에서분산트랜잭션
__MySQL,ActiveMQ,Derby,아토미코스를사용한분산트랜잭션예제
____예제시나리오
____예제시나리오코딩
____예제의정상흐름빌드와테스트
____트랜잭션롤백시나리오테스트
____완화된BASE이상시뮬레이션
____일반적인메시징함정
__요약

14장트랜잭션과마이크로서비스
__파티셔닝과마이크로서비스
____마이크로서비스와분산데이터
____멱등성운영과마이크로서비스
____글로벌대로컬리소스
__분산트랜잭션예제:더적은ACID로리팩토링
____완화된BASE를향해:메시지중복과비순차적메시지처리를위한재설계
____완화된예제시나리오코딩
____메시지중복전송시나리오빌드와테스트
____메시지중복소비시나리오테스트
____메시지수신순서가맞지않는시나리오테스트
__트랜잭션옵션선택
____메시지대기열,미리보기,클라이언트확인
__요약

15장.마이크로서비스에최적화된트랜잭션
__마이크로서비스트랜잭션을위한사가

출판사 서평

◈이책에서다루는내용◈

◆모놀리스아키텍처에서마이크로서비스로전환
◆ACID호환데이터베이스없이견고한아키텍처구축
◆분산트랜잭션시스템작업
◆마이크로서비스의고가용성원칙

◈이책의대상독자◈
마이크로서비스를설계할때다룰많은아키텍처복잡성을드러내며,까다로운시나리오를해결하는데코드예제를사용하는책이다.아키텍트를위한책이지만개발자와기술관리자도활용할수있다.일반적으로심각한분산서버측애플리케이션,특히마이크로서비스를구축하려는자바설계자를염두에두고작성했다.이벤트기반시스템,트랜잭션무결성,데이터일관성등과같은측면에서설계자가알아야할사항에중점을뒀다.개발자들도일상적인작업에유용한완전한코드를찾을수있다.예제를빠르게시작하고실행하려면자바,스프링,약간의HTTP에대한실무지식이필요할것으로가정한다.자바와스프링에대한배경지식이없는경우에도유틸리티구축스크립트와단계별지침이도움이될것이다.또한예제가자바로돼있더라도모든아키텍처측면과많은장이자바에국한되지않으므로분산시스템을다루는기술배경이있는설계자는이책이도움이될것이다.

◈이책의구성◈
우리는약20년동안분산애플리케이션을개발하고배포해왔다.마이크로서비스는분산애플리케이션을개발,배포,유지관리하는데있어많은부족한점을이용해아키텍처원칙과패턴을제시한다.마이크로서비스아키텍처라고도하는마이크로서비스(Microservice)는유지관리와테스트가가능하며비즈니스기능을중심으로구성되는,느슨하게결합되고독립적으로배포가능한서비스모음으로애플리케이션을구조화하는아키텍처방식이다.이책은스프링부트,스프링클라우드,Axon과같은가볍고일반적인기술을사용해,자바로마이크로서비스를작성하는실용적인방법을소개한다.또한,학습한내용을바로사용할수있는형태로자료를제시한다.이를위해모든주요개념에대한코드예제를포함하고,이를빌드하고실행하는방법을정확하게보여준다.
이책은완전한마이크로서비스예제인전자상거래애플리케이션을소개한다.독자는이를템플릿으로사용해운영시스템의구축을바로시작할수있다.자바세계에서사용할수있는모든책중에서,이책은완전한코드와함께XA트랜잭션관리자와2개의서로다른XA트랜잭션리소스를활용하는2단계커밋트랜잭션의모든성공과실패시나리오시뮬레이션을독점적으로보여주는첫번째책이다.XA트랜잭션을자세히보여준다음ACID방식트랜잭션을파티션및도메인내로제한해파티션및도메인에걸쳐BASE트랜잭션이라고하는것을채택함으로써(최종)트랜잭션무결성을달성하는데사용할수있는코드와기술을다룬다.BASE방식분산트랜잭션의가장잘알려진패턴중하나인사가(Saga)에대한작업예제도소개한다.또한마이크로서비스의고가용성,보안,성능도다룬다.여기에묘사된많은개념,아키텍처,코드들은경험이풍부한아키텍트들만갖고있는,밖에서쉽게얻을수없는비법들이지만이제는이책의형태로압축돼있다.

◈옮긴이의말◈
많은기업에서이제는마이크로서비스아키텍처로애플리케이션을개발하는것이필수인시대가된것같다.하지만여전히마이크로서비스아키텍처를기반으로애플리케이션을개발하는것은어려운일이며,고려해야할사항이많다.이책에서는다양한마이크로서비스아키텍처패턴을소개하면서각패턴들이어떠한의미를갖는지,어떻게구현할수있는지샘플코드로쉽게이해할수있게제공한다.이책에서는이벤트기반아키텍처에서CQRS나분산트랜잭션,고가용성을확보하는방법등을자세히소개하고있어마이크로서비스아키텍처,특히이벤트기반아키텍처를도입하려고하는개발자나아키텍트들에게추천하고싶다.