마이크로서비스 아키텍처 (IT 리더들을 위한 간결하고 핵심적인 특징들)

마이크로서비스 아키텍처 (IT 리더들을 위한 간결하고 핵심적인 특징들)

$25.95
Description
이 책은 마이크로서비스 아키텍처를 소개하면서 다른 아키텍처와 비교한다. 이어서 필수적인 마이크로서비스 컴포넌트와 두 마이크로서비스에 걸친 엔드포인트 간의 원활한 통신을 설정하는 방법을 살펴본다. 효과적인 데이터 모델을 만들고 마이크로서비스를 테스트하고 배포하는 다양한 방법을 알아본 후에는 모놀리식에서 마이크로서비스 아키텍처로 전환하기 위한 효율적인 방법을 배운다.
저자

우메쉬램샤르마

(UmeshRamSharma)
확장가능한분산클라우드기반애플리케이션의개발,설계,아키텍처분야에서8년이상경력을쌓은개발자다.
카르나타카주립오픈대학교에서정보기술석사학위를받았다.주요관심사는마이크로서비스와스프링이고J2EE,자바스크립트,스트러츠,하이버네이트,스프링스택의활용전문가다.AWS,J2EE,MySQL,몽고DB(MongoDB),멤캐시드(memchached),아파치,톰캣,헤이즐캐스트(Hazelcast)같은기술에대한다양한실무경험도있다.
현재제스트머니(ZestMoney)의수석엔지니어로근무하면서,팀이진행중인프로젝트를마이크로서비스아키텍처로전환하는작업을지원하고있다.여가시간에는신기술에관한콘퍼런스에참여하거나,운전과요리하는것을즐긴다.

목차

지은이소개
기술감수자소개
옮긴이소개
감수자소개
옮긴이의말
들어가며

1장.마이크로서비스아키텍처소개
__일반적인마이크로서비스아키텍처
__마이크로서비스아키텍처의특성
____문제정의
____해결방안
__성공적인마이크로서비스아키텍처에대한어려움
____로깅을통한디버깅
____마이크로서비스모니터링
____공통라이브러리
____서비스간메시징
____마이크로서비스배치와버전관리
__마이크로서비스의미래
____서버리스아키텍처
____PaaS로서의마이크로서비스
__마이크로서비스아키텍처는전통적인아키텍처보다우세한것인가?
__마이크로서비스가SOA로보이지않는다?
__대규모비즈니스도메인을마이크로서비스컴포넌트로세분하기
____비즈니스중심으로마이크로서비스컴포넌트구성하기
__마이크로서비스를도입해야할까도입하지말아야할까
____조직도입
____데브옵스경험
____기존데이터베이스모델분석
____자동화및CI/CD
____통합
____보안
____성공적인전환사례
__예제프로젝트(신용리스크엔진)
__스프링
__스프링부트
____스프링부트로쉽게할수있다!
__요약

2장.마이크로서비스컴포넌트정의
__마이크로서비스의정의
__서비스디스커버리와역할
____DNS
____디스커버리서비스필요
____서비스디스커버리패턴의예
____아키텍처전반에걸친외부설정
__API게이트웨이및필요성
____인증
____다른프로토콜
____로드밸런싱
____디스패치요청(서비스디스커버리포함)
____응답변환
____서킷브레이커
____API게이트웨이의장단점
__API게이트웨이예제
____책전반에걸쳐사용된예제애플리케이션
__사용자등록마이크로서비스개발
____서버설정
__요약

3장.마이크로서비스와엔드포인트간의통신
__마이크로서비스는어떻게통신하는가
__오케스트레이션대커리어그래피
____오케스트레이션
____커리어그래피
__동기대비동기통신
____동기통신
____비동기통신
____금융서비스
__요약

4장.마이크로서비스엔드포인트보안
__마이크로서비스의보안문제
____기술스택또는레거시코드의혼합
____인증및권한부여(접근제어)
____토큰기반보안
____보안책임
____오케스트레이션스타일에대한두려움
____서비스간의통신
__OpenID및OAuth2.0과함께JWT사용
____OpenID
____OAuth2.0
____JWT
____예제애플리케이션
__요약

5장.효과적인데이터모델만들기
__데이터와모델링
____기존데이터모델과비교
__모놀리스유형아키텍처의데이터모델
__SOA의데이터모델
__마이크로서비스아키텍처의데이터모델
____각마이크로서비스에제한된테이블접근권한을부여하는방법
____마이크로서비스별데이터베이스
____사가패턴
____필요시데이터기술혼용
__모놀리스에서마이크로서비스로의데이터모델전환
____도메인주도설계
____데이터모델전환방법
__요약

6장.마이크로서비스테스트
__마이크로서비스를테스트하는목적
__단위테스트
__통합테스트
__컴포넌트(서비스)테스트
__계약테스트
____Pact
____스프링클라우드계약
__엔드투엔드테스트
__추가고려사항
__요약

7장.마이크로서비스배포
__지속적통합
__지속적전달
__마이크로서비스를위한CI및CD도구설정
__마이크로서비스에도커적용하기
____도커
____도커에서의작업방식
____공개,개인,공용이미지저장소
____도커와VM
____리눅스에도커설치하기
__오픈소스CI도구를사용해마이크로서비스에도커활용하기
__요약

8장.기존시스템을마이크로서비스로진화시키기
__어디서부터시작하나
____아키텍처관점과모범사례
____데이터베이스관점과모범사례
__예제애플리케이션과애플리케이션의진화
____사용자관리서비스
____장바구니/주문서비스
____결제서비스
____배송/추적서비스와고객지원서비스
____추천서비스
____스케줄러서비스
__요약

9장.모니터링과확장
__마이크로서비스시스템의모니터링원칙
____누가어떻게경고메시지들을봐야하는가
____시작부터모니터링하고소통하기
____자동확장과자동검색
____프론트도어모니터링
__모니터링기능의변화(변화하는모습의모니터링)
__모니터링시로깅작업의필요성
__마이크로서비스시스템을확장할때지켜야하는원칙
____X축
____Y축
____Z축
__확장전고려사항
__마이크로서비스의모니터링과확장에서실무적으로고려해야할옵션
__요약

10장.장애해결
__마이크로서비스에서발생하는일반적인문제
____성능저하
____다른프로그래밍언어로부터만들어지는서로다른로깅위치
____여러컴포넌트간결합도또는종속성문제
____많은서비스를위한매일배포
____성능저하혹은문제들을위한대규모서비스의모니터링
____로그와다양한컴포넌트간의관계
__일반적인문제를해결하기위한기법
____성능문제를해결하기위한단계
____다른위치와다른언어로작성된서비스에서로깅처리
____서비스간의의존성
__적극적인데브옵스적용
____유용한도구사용
____역량있는개발자활용
____모니터링
__요약

찾아보기

출판사 서평

★이책에서다루는내용★

■전체아키텍처에대한검색서비스및외부설정
■이벤트기반마이크로서비스에메시지브로커를사용하는방법
■컴포넌트간에여러데이터관리전략을복합적으로구성하는방법
■스프링부트환경에서여러유형의테스트구현
■마이크로서비스아키텍처에CI/CD적용
■애플리케이션모니터링및확장에필요한다양한도구

★이책의대상독자★

마이크로서비스를배워서작업현장에구현하려는자바개발자를위한책이다.마이크로서비스에대한사전지식은필요하지않다.

★이책의구성★

1장,'마이크로서비스아키텍처소개'에서는마이크로서비스가가진기본의미뿐만아니라마이크로서비스아키텍처의전반적인개념을소개한다.이책의나머지부분에서사용할애플리케이션예제도간략하게살펴본다.
2장,‘마이크로서비스구성요소정의’에서는마이크로서비스구성요소를정의하는기본원칙과이런구성요소를통해마이크로서비스아키텍처의근간을형성하는방법을설명한다.이지침은스프링부트기반의자바프로젝트구조가마이크로서비스구성요소를효과적으로정의하는데어떻게사용되는지보여주는,실용적인관점에서만들어졌다.마이크로서비스예제를통해구성및검색서비스와함께자바기반마이크로서비스구성요소가실용적으로사용되는것을살펴본다.
3장,‘마이크로서비스엔드포인트간의통신’에서는마이크로서비스간의효과적인통신을위한원칙을논리적으로설명한다.그다음스프링프레임워크의자체기능부터메시지브로커에이르는다양한기술을사용해동기식통신과비동기식통신을위한옵션을소개한다.또한모범사례를통해일반적인문제를처리하는방법을설명한다.
4장,‘마이크로서비스엔드포인트보안’에서는일반적인보안을설명하고보안과관련된어려움을살펴본다.마이크로서비스아키텍처보안을향상시키기위해JWT,OpenID및OAuth2.0을도입했다.
5장,‘효과적인데이터모델생성’에서는마이크로서비스기반데이터모델과전통적인데이터모델의차이점을살펴보고마이크로서비스가모델을달리하는이유를설명한다.이어서데이터기술을함께활용하는방법과각마이크로서비스구성요소에적합한데이터관리전략을선택하는방법도알아본다.또한예제애플리케이션데이터모델을살펴보면서다양한데이터모델선택을설명하고,선택이유도알아본다.
6장,‘마이크로서비스테스트’에서는지속적인변경과자동으로배포하는시스템에테스팅이더욱중요한이유를설명한다.그런데기존테스트방법과테스트품질기준이마이크로서비스아키텍처와완벽하게일치할까?아니면전혀다른접근방식을사용해야할까?둘다필요할것이다.
7장,‘마이크로서비스배포’에서는마이크로서비스아키텍처에서배포가자주필요하다는것을배운다.따라서가능한쉽고간편하게배포할수있어야할뿐만아니라,자동화와함께시스템을쉽게확장및축소할수있어야한다.이는새로운마이크로서비스가지속적으로배포되고중단될수있다는의미다.이때도커는마이크로서비스의배포프로세스를정의하고자동화하는데도움된다.
8장,‘기존시스템의진화’에서는마이크로서비스아키텍처를기반으로시스템을진화시키는기본메커니즘과마이크로서비스가이런진화를가능하게해주는방법을살펴본다.또한자바기반애플리케이션을발전시키는방법도설명한다.
9장,‘모니터링과확장’에서는마이크로서비스기반시스템모니터링과확장의핵심개념및원리를설명한다.자바기반마이크로서비스를모니터하고확장하는실제적인접근법을살펴보고,예제를통해애플리케이션을모니터링하고확장하는방법을알아본다.
10장,‘문제해결’에서는마이크로서비스기반아키텍처를설계하고구축할때발생하는일반적인문제를검토한다.문제를해결하거나완화하기위한일반적인방법을설명한다.

★옮긴이의말★

최근BTS,즉방탄소년단의세계적인성과에놀랐고,그들의멋진노래와춤,그리고많은활동이담긴동영상을보면서즐거운시간을가질수있었다.세상이디지털화되면서의사소통이매우빨라졌기때문에작은것하나라도잘만들수있다면,이전과는비교할수도없는속도로전세계시장을장악할수있다.BTS처럼말이다.
마이크로서비스아키텍처는이처럼변화하는세상에IT조직이경쟁력을갖추기위해필요한소프트웨어아키텍처이며,빠르게변화하는시장에대응할수있는애자일조직과만났을때,가장큰시너지를만들어낼수있는미래의전략적수단이다.
스마트폰이나웨어러블장비뿐만아니라가전,주택,빌딩,자동차,도시가서로연결되고있다.이런것의연결점은API로표현된다.따라서API자체가혁신수단이될수있고,전세계에걸친다양한API결합을통한혁신도가능하다.
마이크로서비스아키텍처는이런새로운혁신의기반을제공하며,4차산업혁명이나디지털트랜스포메이션같은새로운흐름에적합한환경을제공해주는필수적환경이되어가고있다.
이처럼변화가가속화되는시대에살면서,마이크로서비스아키텍처라는가치있는지식을독자들과함께공유할수있다는사실이우리에게는매우중요한의미로다가왔다.모두가바쁜일상을보내고있었지만,그가운데서로만나책내용을이야기하고,함께미래를논의하는시간은서로에게도무척소중한시간이었다.
독자에게도이런느낌이조금이라도전달되기를바란다.일을막론하고리더는매우바쁘다.바쁜가운데변화에뒤쳐지면안되는것이리더이기도하다.이책은바쁜리더를위한책이라고할수있다.새로운기술을다루는책은대부분장점을중심으로서술해나가는데,이책은장점과단점을있는그대로담백하게이야기한다.또한아키텍처나설계에전문성,경험이부족하기쉬운개발자라면미래의경쟁력획득에도움이되는마이크로서비스아키텍처의핵심적특징을비교적빠르게알아챌수있을것이다.
우리가즐거움속에서보람을느끼며번역했듯이,독자도이책을읽으면서새로운기술을알아가는즐거움을누릴수있기를희망해본다.