엔터프라이즈 환경을 위한 마이크로서비스 (마이크로서비스 아키텍처의 개념 이해부터 적용, 구현까지)

엔터프라이즈 환경을 위한 마이크로서비스 (마이크로서비스 아키텍처의 개념 이해부터 적용, 구현까지)

$35.77
Description
마이크로서비스 아키텍처의 기본 개념과 기존의 서비스 지향 구조, ESB 등을 비교해 차이점을 설명한다. 또한 실제 구현에 개념을 어떻게 적용할지, 사용할 수 있는 오픈소스에는 어떤 것이 있는지도 자세히 알려준다. 이 책은 국내에서 마이크로서비스 아키텍처 구현에 사용되는 거의 모든 오픈소스를 다루고 있어, 해당 내용의 개요만 참고해도 큰 도움이 될 것이다.
저자

카순인드라시리

WSO2의설계자,저자,마이크로서비스및통합에반젤리스트,통합아키텍처디렉터이며,샌프란시스코베이에어리어(SanFranciscoBayArea)에서벤더중립적인마이크로서비스모임인‘마이크로서비스,API,통합밋업그룹(Microservices,APIs,andIntegrationmeetupgroup)’을설립했다.『BeginningWSO2ESB』(Apress,2017)의저자이며,엔터프라이즈통합분야에서쌓은7년이상의경험을바탕으로소프트웨어아키텍트및제품리더로일했다.
아파치커미터와PMC의멤버로활동중이며샌프란시스코,런던,바르셀로나에서열린여러콘퍼런스에서엔터프라이즈통합과마이크로서비스에관련된주제를발표했다.베이에어리어마이크로서비스,컨테이너,클라우드네이티브밋업에서강연을하고있으며,마이크로서비스에대한블로그와논문도게시한다.다수의포춘100대기업과협력해엔터프라이즈통합및마이크로서비스영역에서솔루션을제공한다.

목차

1장.마이크로서비스의사례

__모노리스에서마이크로서비스아키텍처로
____모놀리식애플리케이션
____SOA와ESB
____API들
__마이크로서비스는무엇인가?
____비즈니스기능지향
____자율성:개발,배포,확장의독립성
____중앙ESB부재:스마트엔드포인트와멍청한파이프
____실패내결함성
____분산화된데이터관리
____서비스거버넌스
____관찰가능성
__마이크로서비스:장점과단점
____장점
____단점
__마이크로서비스의적용방법과적용시기
__요약

2장.마이크로서비스디자인

__도메인주도설계
____바운디드컨텍스트
____컨텍스트맵
____관계형패턴
__설계원리
____높은응집도와느슨한결합
____복원력
____관찰가능성
____자동화
__12팩터앱
____코드베이스
____종속성
____설정
____백엔드서비스
____빌드,릴리스,실행
____프로세스
____무공유아키텍처
____포트바인딩
____동시성
____폐기가능
____개발/프로덕션환경일치
____로그
____어드민프로세스
____12팩터앱을넘어서
__요약

3장.서비스간통신

__마이크로서비스통신의기초
__동기식통신
____REST
____gRPC
____GraphQL
____웹소켓
____스리프트
__비동기식통신
____단일수신자
____다중수신자
__동기식통신대비동기식통신
____메시지포맷/타입
____JSON과XML
____프로토콜버퍼
____에이브로
__서비스정의및계약
__요약

4장.서비스개발

__개발자도구와프레임워크
____넷플릭스OSS
____스프링부트
____이스티오
____드롭위저드
____Vert.x
____Lagom
__스프링부트시작하기
____HelloWorld!
____스프링부트액추에이터
____구성서버
____구성소비하기
____서비스간통신
__gRPC시작하기
____gRPC서비스구축
____gRPC클라이언트구축
__카프카를이용한이벤트기반마이크로서비스
____카프카메시지브로커설정
____게시자(이벤트소스)구축하기
____소비자구축하기(이벤트싱크)
__GraphQL서비스구축
__요약

5장.데이터관리

__모놀리식애플리케이션과공유데이터베이스
__마이크로서비스당데이터베이스
__마이크로서비스간데이터공유
____공유테이블제거
____공유데이터
____데이터조합
__마이크로서비스의트랜잭션
____2단계커밋을통한분산트랜잭션피하기
____로컬트랜잭션을사용한이벤트개시
____데이터베이스로그마이닝
____이벤트소싱
____사가
__폴리글랏지속성
__캐싱
__요약

6장.마이크로서비스거버넌스

__왜마이크로서비스거버넌스인가?
__마이크로서비스거버넌스측면
____서비스정의
____서비스레지스트리및검색
____서비스수명주기관리
____서비스품질
____서비스관찰가능성
__마이크로서비스거버넌스구현
____서비스레지스트리및검색
____개발수명주기관리
____API관리/API게이트웨이
____관찰가능성
__서비스레지스트리및검색
____컨설
____유레카
____etcd
____쿠버네티스를통한서비스검색
__요약

7장.마이크로서비스통합

__마이크로서비스를통합해야하는이유
__스마트엔드포인트와멍청한파이프
__마이크로서비스통합의안티패턴
____마이크로서비스통합을위한모놀리식API게이트웨이
____ESB와마이크로서비스통합
____모든마이크로서비스구축에동종기술사용
__마이크로서비스구성하기
____핵심서비스
____통합서비스
____API서비스
__마이크로서비스통합패턴
____능동형조합또는오케스트레이션
____반응성조합또는코레오그래피
____능동형조합과반응형조합의하이브리드
____손상방지계층
____스트랭글러파사드
__통합서비스의주요요구사항
____네트워크통신추상화
____복원력패턴
____능동형또는반응형조합
____데이터형식
____컨테이너네이티브및데브옵스지원
____통합서비스거버넌스
____상태없음,상태저장,또는장기실행서비스
__통합서비스구축을위한기술
____스프링부트
____드롭위저드
____아파치카멜과스프링통합
____Vert.x
____아카
____Node,Go,러스트,파이썬
____발레리나
____워크플로엔진솔루션
__서비스메시의시작
__요약

8장.마이크로서비스의배포및실행

__컨테이너와마이크로서비스
____도커소개
____도커를사용해마이크로서비스배포
____도커컴포즈
__컨테이너오케스트레이션
____쿠버네티스소개
____쿠버네티스핵심개념
____쿠버네티스환경에서마이크로서비스배포
__마이크로서비스배포패턴
____호스트당다중서비스
____호스트당서비스
____가상머신당서비스
____컨테이너당서비스
__컨테이너네이티브마이크로서비스프레임워크
____Metaparticle
__지속적인통합,전달,배포
____지속적인통합
____지속적인전달
____지속적인배포
__요약

9장.서비스메시

__왜서비스메시인가?
__서비스메시란무엇인가?
____비즈니스로직
____기본네트워크기능
____애플리케이션네트워크기능
____컨트롤플레인
__서비스메시의기능
____서비스간통신을위한복원력
____서비스검색
____라우팅
____관찰가능성
____보안
____배포
____서비스간통신프로토콜
__이스티오
____이스티오아키텍처
____이스티오사용
__링커디
__서비스메시를사용해야할까?
____장점
____단점
__요약

10장.API,이벤트,스트림

__API와API관리
____API게시자/API수명주기관리자
____API게이트웨이
____API저장소/개발자포털
____API분석/관찰가능성
____APIQoS
____API수익창출
____OpenAPI를사용한API정의
____API쿼리언어:GraphQL
____API관리와서비스메시
____API관리구현
__이벤트
____이벤트알림
____이벤트-전달상태전이
____이벤트소싱
____명령질의책임분리
__스트림
____스트림처리
__API,이벤트,스트림이포함된마이크로서비스아키텍처
__요약

11장.마이크로서비스보안의기본사항

__모놀리스대마이크로서비스
__서비스간통신보호
____JSON웹토큰
____TLS상호인증
__에지보안
____OAuth2.0
__접근제어
____XACML
____내장형PDP
__보안사이드카
__요약

12장.마이크로서비스보안

__OAuth2.0으로마이크로서비스보안
____TLS사용
____OAuth2.0인가서버설정
____OAuth2.0으로마이크로서비스보호
__자체포함액세스토큰(JWT)으로마이크로서비스보안
____JWT를발행하도록인가서버설정
____JWT로마이크로서비스보호
__마이크로서비스에대한접근제어
____범위기반접근제어
____역할기반접근제어
__서비스간통신보호
____JWT로보호된서비스간통신
____TLS상호인증으로보호된서비스간통신
__액추에이터엔드포인트보안
__요약

13장.관찰가능성

__관찰가능성의세기둥
__스프링클라우드를사용한분산추적
____스프링클라우드슬루스
____스프링부트마이크로서비스에스프링클라우드슬루스사용
____스프링클라우드슬루스를사용해여러마이크로서비스간의메시지추적
__집킨을통한데이터시각화와상관관계
____이벤트기반로그집계아키텍처
__오픈트레이싱소개
____스프링부트마이크로서비스와집킨을사용한오픈트레이싱으로분산추적
____스프링부트마이크로서비스와예거를사용한오픈트레이싱으로분산추적
__프로메테우스가포함된메트릭
____스프링부트마이크로서비스메트릭노출하기
____프로메테우스설정
____프로메테우스를사용한그래프작성
__그라파나를사용한분석과모니터링
____그라파나로대시보드구축
____그라파나로경고생성
__도커와함께Fluentd로그수집기사용
____도커컨테이너로Fluentd시작
____도커컨테이너에서실행되는마이크로서비스에서Fluentd에로그게시
____작동원리
____마이크로서비스배포에서Fluentd사용하기
__요약

출판사 서평

★이책에서다루는내용★
■자신있게마이크로서비스아키텍처를설계하고개발하기
■현대적인메시징기술적용하기
■서비스메시패턴을적용해서비스간통신문제극복하기
■실전테스트를거친마이크로서비스보안패턴을적용해실제시나리오해결하기
■API관리,분산데이터관리,관찰가능성처리하기

★이책의구성★
이책을통해엔터프라이즈애플리케이션환경에서마이크로서비스를구축하는것을둘러싼주요과제와솔루션을이해할수있도록구성했다.이책은마이크로서비스아키텍처의원칙과실제시나리오에서마이크로서비스를사용하는방법을포괄적으로설명한다
서비스통합및API관리와함께마이크로서비스를사용하는아키텍처문제가제시되고,복합/통합마이크로서비스를사용해ESB(EnterpriseServiceBus)와같은중앙집중식통합제품을사용하지않는방법을배운다.각개념은사용사례와함께설명하며,대부분의사용자는비즈니스중단을최소화하면서레거시애플리케이션과함께마이크로서비스를구현해야하는‘브라운필드(brownfield)’환경에서구현하고있다는사실을강조한다.
마이크로서비스메시징,서비스개발및설명,서비스발견,거버넌스,데이터관리기술에관한최신기술을다루고마이크로서비스디자인프로세스를안내한다.또한핵심대원자,복합대통합,API대에지(edge)로서비스를구성하는것의중요성과이러한조직이중앙ESB의사용을제거하고API게이트웨이를통해서비스를노출하는데도움될방법도알려준다.

★옮긴이의말★
2018년말에처음으로마이크로서비스아키텍처프로젝트에참여하게됐을때는크리스리처드슨의저서『마이크로서비스패턴』을통해마이크로서비스아키텍처의개념적인측면을이해할수있었다.그러나마이크로서비스를실제로어떻게구현할지는흩어져있는여러자료를찾아보고코드를구현해보면서조금씩배워나갈수밖에없었다.
2019년7월무렵,이책의번역을시작한후전체적인내용을살펴봤을때는뒤통수를세게얻어맞은느낌이들었다.내가그동안고민해왔던내용과앞으로좀더알아보고자했었던내용이이책에충실히담겨있을뿐아니라,2018년말즈음에이미출간됐었다는사실이인상적이었기때문이다.개인적으로는‘프로젝트를시작할즈음에이책의내용을접했으면어땠을까.’라는아쉬움도남았다.
책이출간되고나서한참후에야번역을시작한만큼,최대한빠른시간내에번역을마치고독자들이영어의압박에서벗어나이책을좀더편하게읽을수있도록하는것이목표였다.비록출간을앞두고냉정히평가했을때그목표가제대로달성되지못한것같아아쉽지만,이책에서다루는내용이한국어판이출간되는시점에도여전히유효하다는점에서위안을얻는다.
개념이나디자인패턴등과같은고수준에서만본다면,마이크로서비스아키텍처는기존의서비스지향구조등과크게달라보이지않는다.그러나마이크로서비스아키텍처를구현하기위해구체적인기술을자세히살펴보면그차이를체감할수있다.이러한차이를체감하고체득하는데는많은노력이필요하지만,이책을통해그기반을단단히다질수있을것이다.
이책은마이크로서비스아키텍처의기본개념을기존의서비스지향구조,ESB등과비교해서잘설명하고있다.나아가개념을실제구현에어떻게적용하고어떤오픈소스를사용할수있는지도자세히알려준다.
마이크로서비스아키텍처는어렵다.알아야할기술이너무많기때문이다.이책은국내에서마이크로서비스아키텍처를구현하는데사용되는거의모든오픈소스를다루며,비록국내에서는생소하지만국외에서는잘알려진오픈소스도소개한다.
이책에서설명하는오픈소스의개요만파악해도,추후마이크로서비스를실무에적용할때큰도움이될것이다.
책을번역하는과정에서깃허브에공개된예제가일부누락된것을발견하고,출판사를통해저자들과소통할기회가있었다.비록저자들이너무바쁘고소스코드를찾지못한탓에완벽하게업로드해주지는못했지만,보완하기위해최대한노력해준저자들의노고에감사한다.소스코드가완전하지않은부분에대해서는저자들을대신해양해를구하고싶다.그러나책의내용을끝까지살펴보면,저자들이실제개발에도움이되는소스를제공하고자최선을다했다는점을깨닫게될것이다.
이책을모두읽고나면,400페이지남짓한원서에많은내용을담아낸저자들의노력뿐아니라남다른안목과식견에도감탄하게될것이다.따라서다소힘들더라도이책의모든내용을끝까지한번은읽어볼것을권한다.