클라우드 네이티브 스프링 (클라우드 플랫폼을 위한 자바 마이크로서비스)

클라우드 네이티브 스프링 (클라우드 플랫폼을 위한 자바 마이크로서비스)

$35.16
Description
클라우드 네이티브 애플리케이션 개발은 쉽지 않다. 단순한 애플리케이션 하나라도 클라우드의 장점을 십분 활용할 수 있게 만들고 배포하려면 많은 배경지식과 기술이 필요하다. 이 책은 실용적인 예제를 점진적으로 발전시켜 나가면서 클라우드 네이티브 애플리케이션을 설계하고 구축하는 데 필요한 여러 가지 기술과 해법을 설명한다. AWS, Azure 등의 클라우드 플랫폼 활용법, API 디자인, 일체형 애플리케이션을 마이크로서비스로 분할하는 방법 등을 배울 수 있다.
저자

아제이마하잔

위프로테크놀로지의특별기술위원(DistinguishedMemberofTechnicalStaff)이며,현재소매부문수석기술자로활동중이다.최근에는고객이차세대소매애플리케이션을위해클라우드네이티브와디지털아키텍처를도입할수있게지원하는일을하고있다.
유럽과미국의소매및금융분야고객들과대규모미션크리티컬시스템에서일했으며,19년간자바플랫폼을사용하면서넷스케이프애플리케이션서버부터서블릿/JSP,JEE,스프링,최근의클라우드마이크로서비스에이르기까지엔터프라이즈자바의발전상을지켜봤다

목차

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

1장.클라우드네이티브소개
__클라우드네이티브가필요한이유
__클라우드네이티브란?
____클라우드플랫폼으로이동
____클라우드네이티브로이동
____서버리스로이동
__클라우드네이티브와마이크로서비스
__클라우드애플리케이션의12가지요소
____마이크로서비스실행을위한서비스생태계
__마이크로서비스도입
____일체형애플리케이션변환
요약

2장.첫번째클라우드네이티브애플리케이션
__개발도구설정
____IDE선택
____인터넷연결설정
__개발생명주기의이해
____요구사항/사용자스토리
____아키텍처
____설계
____테스트와개발
____구축과배포
__프레임워크선택
____드롭위자드
____버텍스
____스프링부트
__product서비스작성
____메이븐프로젝트생성
____스프링부트애플리케이션클래스작성
____서비스및도메인객체작성
____서비스실행
____브라우저에서의서비스테스트
____배포본생성
__기본적인클라우드네이티브기능추가
____구성외부화
____서비스미터링(metering)
____서비스등록과검색
__요약

3장.클라우드네이티브애플리케이션설계
__트리오:REST,HTTP,JSON
__API의발달과유행
__API게이트웨이의역할
____API게이트웨이의장점
__애플리케이션분리
____경계가있는컨텍스트/도메인주도설계
____업스트림및다운스트림서비스분류
____비즈니스이벤트
__마이크로서비스식별
____마이크로서비스와서비스지향아키텍처의차이점
____서비스분류
__마이크로서비스설계지침
__디자인및배포패턴
__마이크로서비스를위한데이터아키텍처
____명령조회책임분리
____데이터복제
____목적에맞춘선택
__서비스보안
__요약

4장.클라우드네이티브애플리케이션확장
__제품조회서비스구현
____간단한제품테이블
____캐싱
____분산캐시
____데이터모델과서비스를분리하기위해CQRS적용
__데이터업데이트서비스
____REST규약
____유효성검사와오류메시지
____CQRS패턴의데이터업데이트구현
____비동기메시징
____골든소스업데이트
____데이터업데이트시이벤트발생
____쿼리모델업데이트
__요약

5장.클라우드네이티브애플리케이션테스트
__개발전에테스트케이스작성
____TDD
____BDD
__테스트패턴
____A/B테스트
____테스트더블
__테스트유형
____단위테스트
____통합테스트
____부하테스트
____회귀테스트
____코드리뷰와커버리지
__제품서비스테스트
____큐컴버를이용한BDD
____스프링부트테스트
____JaCoCo를이용한코드커버리지
__요약

6장.클라우드네이티브애플리케이션배포
__배포모델
____가상화
____PaaS
____Containers
____도커이미지빌드
__배포패턴
____블루/그린배포
____카나리아배포
____은밀한개시
____자동화를위한CI/CD적용
요약
__
7장.클라우드네이티브애플리케이션런타임
__런타임의필요성
__참조런타임아키텍처구현
____서비스레지스트리
____컨피그서버
____마이크로서비스의프론트엔드
__쿠버네티스:컨테이너오케스트레이션
____쿠버네티스아키텍처와서비스
____Minikube
____쿠버네티스에서product서비스실행
__서비스로서의플랫폼
____PaaS의사례
____클라우드파운드리
____피보탈클라우드파운드리
__요약

8장.AWS플랫폼에배포
__AWS플랫폼
__AWS플랫폼의배포옵션
____Beanstalk에스프링부트API배포
____AmazonElasticContainerRegistry에컨테이너이미지푸시
____ECS에스프링부트애플리케이션배포
____AWSLambda에배포
__요약

9장.Azure플랫폼에배포
__Azure플랫폼
__Azure플랫폼의배포옵션
____AzureAppService에스프링부트API배포
____AzureContainerService에도커컨테이너배포
____AzureServiceFabric에스프링부트API배포
____AzureFunction
__요약

10장.서비스통합
__XaaS
__XaaS구축시의주요설계고려사항
__서드파티API와의통합
__요약

11장.API디자인모범사례
__API디자인
____API리소스식별
____API설계지침
__API모델링
____OpenAPI
____RESTfulAPI모델링언어(RAML)
__API게이트웨이배포모델
__요약

12장.디지털트랜스포메이션
__애플리케이션포트폴리오
____포트폴리오분석:비즈니스및기술요소
__일체형애플리케이션을분산형클라우드네이티브애플리케이션으로변경
____일체형애플리케이션을분산형애플리케이션으로변환
____고객여정을도메인주도디자인으로매핑
____아키텍처런웨이정의
____개발자빌드
____일체형애플리케이션분해
____변환과정정리
__자체플랫폼서비스구축(제어혹은위임)
__요약

찾아보기

출판사 서평

★이책에서다루는내용★

■가변성,프로비저닝,도구지원측면에서클라우드환경의장점
■클라우드에서개발할때필요한아키텍처패턴및고려할사항
■요청라우팅,RESTful서비스생성,이벤트소싱등의클라우드네이티브기술/패턴사용법
■마이크로서비스를위한도커컨테이너생성과젠킨스를이용한지속적인통합환경설정
■컨테이너화를위해도커와쿠버네티스등의도구검토
■AWS와Azure전용도구를사용한애플리케이션설계,개발,배포,관리방법

★이책의대상독자★

클라우드기반환경에배포하기위한복원력있고견고하며,확장성있는애플리케이션을구축하려는자바개발자에게유용하다.자바,스프링,웹프로그래밍,AWS및Azure같은공개클라우드플랫폼을경험해봤다면이책을충분히이해할수있다.

★이책의구성★

1장.‘클라우드네이티브소개’에서는클라우드네이티브애플리케이션이필요한이유를설명한다.클라우드플랫폼으로이동하는이유는무엇인가?클라우드개발및배포가일반애플리케이션과다른이유는무엇인가?클라우드애플리케이션의12가지요소는무엇인가?
2장.‘첫번째클라우드네이티브애플리케이션’에서는애플리케이션을마이크로서비스방식으로설계할때의핵심개념을설명한후이책을진행하면서점점살을붙여나갈예제프로젝트를소개한다.또한마이크로서비스애플리케이션개발을위해스프링부트를사용하는방법과클라우드네이티브애플리케이션을개발할때사용하는마이크로서비스원칙을알아본다.
3장.‘클라우드네이티브애플리케이션설계’에서는클라우드네이티브애플리케이션을설계할때고려할몇가지고급아키텍처문제를다룬다.여기에는이벤트기반아키텍처,코레오그래피를이용한디커플링,경계가있는컨텍스트와같은도메인주도설계(DDD)개념등이포함된다.시스템중심의서비스정의대신,클라우드에서개발하고고객중심API를제공하는데필요한아키텍처패턴과고려할사항을알아본다.
4장.‘클라우드네이티브애플리케이션확장’에서는다양한스택,원칙,지원컴포넌트를사용해애플리케이션을만드는방법을자세히알아본다.서비스구현에필요한패턴을다루며,클라우드개발에상당한영향을미치는오류처리,CQRS,캐싱등의다양한측면을설명한다.
5장.‘클라우드네이티브애플리케이션테스트’에서는마이크로서비스를테스트하는방법과행위주도개발에서의테스트작성방법을알아본다.
6장.‘클라우드네이티브애플리케이션배포’에서는도커컨테이너배포를위한애플리케이션패키징방법,CI/CD파이프라인을설정하는방법을비롯한마이크로서비스배포모델을자세히살펴본다.
7장.‘클라우드네이티브애플리케이션런타임’에서는서비스런타임을다룬다.구성서버를이용해구성을외부화하는방법과주울을프론트엔드로배치하는방법을알아보며,피보탈클라우드파운드리에관해설명하고,PCFDev에서비스를배포하는방법을알아본다.컨테이너오케스트레이션또한다룬다.
8장.‘AWS플랫폼에배포’에서는AWS환경을설명하고,이전장에서설명한개념(레지스트리,구성,로그집계,비동기메시징)을바탕으로클라우드개발을하기위한AWS고유의도구를설명한다.
9장.‘Azure플랫폼에배포’에서는Azure환경을설명하고,클라우드개발을하기위한ServiceFabric,AzureFunctions등의Azure고유의도구를설명한다.
10장.‘서비스통합’에서는IaaS,PaaS,iPaaS,DBaaS를비롯한다양한유형의XaaS를설명하고,인프라요소를서비스로노출하는방법을알아본다.클라우드네이티브모드에서는애플리케이션을소셜미디어API나PaaSAPI와통합하거나다른애플리케이션에서사용할서비스를호스팅할수있다.또한다른외부서비스를연결해서사용하거나직접서비스를제공하는방법을설명한다.
11장.‘API디자인모범사례에서는기능지향적이고세분화된사용자중심의API를설계하는방법을설명한다.또한API수준또는서비스에서의오케스트레이션수행여부,무료API모델을만드는방법,서비스가채널에구애받지않도록API계층에서채널과관련된문제를해결하는방법,보안을고려한API설계등API설계에대한다양한모범사례를설명한다.
12장.‘디지털트랜스포메이션’에서는클라우드개발이기존기업환경에미치는영향과클라우드를이용해디지털엔터프라이즈로성공적으로전환하는방법을설명한다.