마이크로서비스 아키텍처 구축 : 대용량 시스템의 효율적인 분산 설계 기법  (전면 개정판)

마이크로서비스 아키텍처 구축 : 대용량 시스템의 효율적인 분산 설계 기법 (전면 개정판)

$44.00
저자

샘뉴먼

저자:샘뉴먼
샘뉴먼은독립컨설턴트,작가,연사로활동하고있다.20년넘게업계에종사하면서다양한기술스택과영역에서전세계의기업들과함께일해왔다.그는조직이소프트웨어를더욱빠르고안전하게운영하고환경에적용하도록마이크로서비스의복잡성을다루는것에관심이많다.또한『마이크로서비스도입,이렇게한다』(책만,2021)의저자이기도하다.

역자:정성권
마이크로서비스아키텍처를기반으로대규모IoT플랫폼을구축하고13억계정플랫폼과통신사미디어플랫폼의클라우드네이티브전환을리드하며,반려견훈련서비스(fordong.co.kr)와같은새로운고객주도형서비스를작게시도하고있다.최근에는엔터프라이즈및IT를변환시키는아키텍처의역할과함께스프링을활용한분산시스템설계와클라우드네이티브개발,DevOps활동,SRE,개발조직문화를구축하는데주목해왔다.세상의작은문제하나는제대로풀고가보자는개똥철학을가지고있다.100세인생을재미있게보낼프로그래밍과기술에관심이많다.개인시간에는아이들과산책,게임,검도,스쿠버다이빙을하며시간을보낸다.『마이크로서비스아키텍처구축』(한빛미디어,2018)과『스프링마이크로서비스공작소』(길벗,2022)을번역했고,『ABOUT.NETXML웹서비스』(영진닷컴,2002)를집필했다.

목차

PART1기초

CHAPTER1마이크로서비스란?
_1.1마이크로서비스살펴보기
_1.2마이크로서비스의핵심개념
_1.3모놀리스
_1.4활성화기술
_1.5마이크로서비스의장점
_1.6마이크로서비스의고충
_1.7마이크로서비스를사용해야하는가?
요약

CHAPTER2마이크로서비스모델링방법
_2.1뮤직코프소개
_2.2올바른마이크로서비스경계를만드는것은무엇인가?
_2.3결합유형
_2.4딱도메인주도설계만큼
_2.5마이크로서비스를위한도메인주도설계사례
_2.6비즈니스도메인경계에대한대안
_2.7혼합모델과예외
요약

CHAPTER3모놀리스분해
_3.1목표를가져라
_3.2점진적마이그레이션
_3.3모놀리스가적인경우는드물다
_3.4무엇을먼저나눌까?
_3.5계층별분해
_3.6유용한분해패턴
_3.7데이터분해에대한우려
요약

CHAPTER4마이크로서비스통신방식
_4.1프로세스내부에서프로세스사이로
_4.2프로세스간통신을위한기술:다양한선택
_4.3마이크로서비스통신방식
_4.4패턴:동기식블로킹
_4.5패턴:비동기식논블로킹
_4.6패턴:공통데이터를통한통신
_4.7패턴:요청및응답통신
_4.8패턴:이벤트기반통신
_4.9조심해서진행하라
요약

PART2구현

CHAPTER5마이크로서비스통신구현
_5.1이상적인기술을찾아서
_5.2기술선택
_5.3직렬화포맷
_5.4스키마
_5.5마이크로서비스간의변경처리
_5.6중단변경피하기
_5.7중단변경관리하기
_5.8마이크로서비스세계에서DRY와코드재사용의위험
_5.9서비스디스커버리
_5.10서비스메시와API게이트웨이
_5.11서비스문서화
요약

CHAPTER6워크플로
_6.1데이터베이스트랜잭션
_6.2분산트랜잭션-2단계커밋
_6.3분산트랜잭션-그냥안된다고하라
_6.4사가패턴
요약

CHAPTER7빌드
_7.1지속적통합에대한간략한소개
_7.2빌드파이프라인과지속적제공
_7.3소스코드와빌드를마이크로서비스에매핑하기
요약

CHAPTER8배포
_8.1논리적에서물리적으로
_8.2마이크로서비스배포의원칙
_8.3배포방법
_8.4어떤배포가적합할까?
_8.5쿠버네티스와컨테이너오케스트레이션
_8.6점진적제공
요약

CHAPTER9테스트
_9.1테스트유형
_9.2테스트범위
_9.3서비스테스트의구현
_9.4까다로운엔드투엔드테스트의구현
_9.5엔드투엔드테스트를피해야할까?
_9.6개발자경험
_9.7운영환경전테스트에서운영환경내테스트로
_9.8교차기능테스트
요약

CHAPTER10모니터링에서관찰가능성으로
_10.1분열,공황그리고혼란
_10.2단일마이크로서비스,단일서버
_10.3단일마이크로서비스,다수서버
_10.4다수마이크로서비스,다수서버
_10.5관찰가능성대모니터링
_10.6관찰가능성의구성요소
_10.7표준화
_10.8도구선택
_10.9기계화된전문가
_10.10시작하기
요약

CHAPTER11보안
_11.1핵심원칙
_11.2사이버보안의다섯가지기능
_11.3애플리케이션보안의기초
_11.4암묵적신뢰대제로트러스트
_11.5데이터보안
_11.6인증과권한부여

CHAPTER12회복탄력성
_12.1회복탄력성이란?
_12.2장애는어디에서나발생한다
_12.3얼마나많아야너무많은건가?
_12.4기능저하
_12.5안정성패턴
_12.6위험분산
_12.7CAP정리
_12.8카오스엔지니어링
_12.9비난
요약

CHAPTER13확장
_13.1확장의네가지축
_13.2결합모델
_13.3작게시작하라
_13.4캐싱
_13.5자동확장
_13.6다시시작하기
요약

PART3사람

CHAPTER14사용자인터페이스
_14.1디지털을향해
_14.2소유권모델
_14.3스트림정렬팀을향해
_14.4패턴:모놀리식프론트엔드
_14.5패턴:마이크로프론트엔드
_14.6패턴:페이지기반분해
_14.7패턴:위젯기반분해
_14.8제약
_14.9패턴:중앙집계게이트웨이
_14.10패턴:프론트엔드를위한백엔드(BFF)
_14.11그래프QL
_14.12하이브리드방식
요약

CHAPTER15조직구조
_15.1느슨하게결합된조직
_15.2콘웨이의법칙
_15.3팀규모
_15.4콘웨이의법칙이해
_15.5소규모팀,대규모조직
_15.6자율성에관해
_15.7강력한소유권대집단소유권
_15.8활성화팀
_15.9공유마이크로서비스
_15.10내부오픈소스
_15.11플러그가능한모듈식마이크로서비스
_15.12고아서비스
_15.13사례연구:realestate.com.au
_15.14지리적분포
_15.15콘웨이의역법칙
_15.16사람들
요약

CHAPTER16진화하는아키텍트
_16.1이름에내포된것은?
_16.2소프트웨어아키텍트란?
_16.3변화를가능하게
_16.4아키텍처에대한진화적비전
_16.5시스템경계정의
_16.6사회적구조물
_16.7거주가능성
_16.8원칙적접근법
_16.9진화적아키텍처가이드
_16.10스트림정렬조직의아키텍처
_16.11팀구축
_16.12필수기준
_16.13거버넌스와포장된길
_16.14기술부채
_16.15예외처리
요약

종합정리:조언부터향후전망까지
핵심용어집

출판사 서평

“마이크로서비스아키텍처는어떻게만드는것인가?”는현업에서자주듣게되는질문중하나입니다.이에대한정답을찾기위해오랫동안다양한노력을해왔지만명쾌한답변을찾기어렵습니다.이는시장이계속변화하면서설계,개발,배포,테스팅등다양한분야를넘나들어야하기때문입니다.

2017년초판출간후전면개정된『마이크로서비스아키텍처구축(전면개정판)』은이러한부분을충족시킬만큼광범위한기술주제를한권에담아설명합니다.마이크로서비스아키텍처구축에관한현실적인문제를더구체적이고깊숙하게파고들면서,마이크로서비스아키텍처개념을더쉽게이해하고적용하기위한심도있는가이드를제시합니다.

전면개정판에추가된내용
●마이크로서비스와관련된광범위한개요설명및소프트웨어배포프로세스의측면과마이크로서비스아키텍처를채택함으로써발생하는이후모습까지설명
●클라우드기술동향에맞춘사용자인터페이스,쿠버네티스,컨테이너오케스테이션,서버리스기술에대한새로운정보제공
●다양한마이크로서비스커뮤니케이션유형및마이크로서비스간통신구현에필요한기술
●사가및분산트랜잭션비교,마이크로서비스를포함한비즈니스프로세스모델링방법
●마이크로서비스에서리포지토리및빌드를매핑하는방법
●소프트웨어개발에필요한모니터링,관찰가능성과회복탄력성
●다양한마이크로서비스도입사례와사례연구로현실적인마이크로서비스문제

대상독자
●MSA를도입하여구축(또는운영중인)하려고하는시스템아키텍트,프로그래머,프로젝트관리담당자
●시스템배포및테스팅,유지보수에관심있는IT업계종사자
●대용량시스템의효율적분산설계에관심있는모든분

이책의구성

1부_기초
1장마이크로서비스란?
마이크로서비스를일반적인관점에서소개하고이책에서이후자세히다룰여러주제를간략히설명한다.
2장마이크로서비스모델링방법
마이크로서비스에적합한경계를찾는데도움이되는정보은닉,결합,응집력,도메인주도설계(DDD)와같은개념의중요성을살펴본다.
3장모놀리스분해
기존모놀리식애플리케이션을마이크로서비스로분해하는방법에대한몇가지지침을제공한다.
4장마이크로서비스통신방식
비동기호출과동기호출,요청및응답,이벤트기반의협업방식을비롯한다양한종류의마이크로서비스통신방식을설명한다.

2부_구현
5장마이크로서비스의통신구현
마이크로서비스간통신을구현하는데사용되는특정기술을자세히살펴본다.
6장워크플로
사가와분산트랜잭션을비교하고여러마이크로서비스가관련된비즈니스프로세스를모델링하는데사가가어느정도유용한지살펴본다.
7장빌드
마이크로서비스를리포지터리와빌드로매핑하는것에대해설명한다.
8장배포
컨테이너,쿠버네티스,FaaS를살펴보는등마이크로서비스의배포와관련된수많은방법을설명한다.
9장테스트
엔드투엔드테스트로인해발생하는문제를포함해마이크로서비스테스트에대한어려움과소비자중심계약및운영중테스트가어떻게도움이되는지를논의한다.
10장모니터링에서관찰가능성으로
도구와관련해구체적으로추천하면서,정적모니터링활동에집중하는것으로부터마이크로서비스아키텍처의관찰가능성을향상시키는방법에대해보다광범위한생각으로전환하는것을다룬다.
11장보안
마이크로서비스아키텍처는공격의표면영역을넓힐수있지만심층적으로방어할수있는기회도더많이제공한다.이장에서는이러한균형을살펴본다.
12장회복탄력성
회복탄력성이란무엇이고마이크로서비스가애플리케이션의회복탄력성을향상시키는데어떤역할을할수있는지를자세히살펴본다.
13장확장
이장에서는확장의네가지축을간략히설명하고,이를조합해마이크로서비스아키텍처를확장하는방법을설명한다.

3부_사람
14장사용자인터페이스
전담프론트엔드팀에서벗어나는것에서BFF와그래프QL의사용에이르기까지마이크로서비스와사용자인터페이스가어떻게함께작동할수있는지살펴본다.
15장조직구조
마이크로서비스아키텍처의맥락에서스트림정렬팀과활성화팀이어떤역할을하는지설명하는데중점을둔다.
16장진화하는아키텍트
마이크로서비스아키텍처는고정적이지않으므로시스템아키텍처에대한관점을바꿔야할수있다.이장에서는이러한주제를심도있게다룬다.

추천사
마이크로서비스아키텍처는매력적인특징이많지만,마이크로서비스아키텍처로로향하는길에서주의하지않는다면고통스러운함정에맞닥뜨리게된다.이책은여러분에게적합한길과그여정에서함정을피하는방법을파악하는데도움이될것이다.
마틴파울러,『리팩토링2판』저자/소트웍스수석과학자

마이크로서비스의모든것을다루는완벽가이드로광범위한주제를훌륭하게다루고있다.
다니엘브라이언트,앰버서더랩스DevRel디렉터

마이크로서비스아키텍처를성공적으로도입하는데필요한포괄적이고실용적인가이드다.이책은올바른결정을내리기위해알아야할사항을정확하게설명한다.
사라웰스,파이낸셜타임즈엔지니어링지원기술디렉터

이책의저자는오랜경험을바탕으로마이크로서비스아키텍처에대한통찰력을잘풀어냈다.개념이해뿐만아니라실제로잘설계된마이크로서비스아키텍처예제를포함하여데브옵스나자동화와같은다양한주제를다루며,적절한접근방식으로바람직한시각을제시한다.이러한경험자의조언,기업과조직관점의접근을통해마이크로서비스아키텍처구축시고려해야하는접근방법과놓치기쉬운관점을다시한번생각하게해준다.마이크로서비스아키텍처뿐만아니라더나은소프트웨어아키텍처를고민하는모든이들에게추천한다.
정영준,AWS컨테이너스페셜리스트

마이크로서비스아키텍처를도입하고자고민하고있다면당장이책을읽어볼것을추천한다.마이크로서비스를도입하려는목적과해결방법에가까운아키텍처와조직구조를만들고자한다면체계적으로생각을정리하는데이책이매우도움될것이다.마이크로서비스구조는한번만들고나면끝이아니라계속변화하는것에대응하는것이가장중요하다.기존서비스를분해하여마이크로서비스구조로이관하고계속변화시키기위해서어떤부분을고려해야할지궁금하다면,이책을끝까지읽어보는것을추천한다.
신영필,쿠팡페이엔지니어링디렉터

이책을읽는내내MSA에대한파편화된지식이하나씩정리되면서퍼즐조각이맞춰지는듯한느낌이들었다.전면개정판은초판보다현실적인문제를더구체적이고깊숙하게파고들었고,역자의경험이함께어우러져더깊이있고풍부한지식을전달하고자했다.현업에서마이크로서비스로인한여러가지고민을하는분들에게많은인사이트를줄것이며,개발자의성장에필요한기반지식을폭넓게쌓아주리라생각한다.
신정호,LGU+아이들나라CTO