이미 소장하고 있다면 판매해 보세요.
|
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 배포 ____Amazon Elastic Container Registry에 컨테이너 이미지 푸시 ____ECS에 스프링 부트 애플리케이션 배포 ____AWS Lambda에 배포 __요약 9장. Azure 플랫폼에 배포 __Azure 플랫폼 __Azure 플랫폼의 배포 옵션 ____Azure App Service에 스프링 부트 API 배포 ____Azure Container Service에 도커 컨테이너 배포 ____Azure Service Fabric에 스프링 부트 API 배포 ____Azure Function __요약 10장. 서비스 통합 __XaaS __XaaS 구축 시의 주요 설계 고려 사항 __서드파티 API와의 통합 __요약 11장. API 디자인 모범 사례 __API 디자인 ____API 리소스 식별 ____API 설계 지침 __API 모델링 ____Open API ____RESTful API 모델링 언어(RAML) __API 게이트웨이 배포 모델 __요약 12장. 디지털 트랜스포메이션 __애플리케이션 포트폴리오 ____포트폴리오 분석: 비즈니스 및 기술 요소 __일체형 애플리케이션을 분산형 클라우드 네이티브 애플리케이션으로 변경 ____일체형 애플리케이션을 분산형 애플리케이션으로 변환 ____고객 여정을 도메인 주도 디자인으로 매핑 ____아키텍처 런웨이 정의 ____개발자 빌드 ____일체형 애플리케이션 분해 ____변환 과정 정리 __자체 플랫폼 서비스 구축(제어 혹은 위임) __요약 |
Ajay Mahajan
Munish Kumar Gupta
Shyam Sundar
박규태의 다른 상품
|
이 책에서 다루는 내용
- 가변성, 프로비저닝, 도구 지원 측면에서 클라우드 환경의 장점 - 클라우드에서 개발할 때 필요한 아키텍처 패턴 및 고려할 사항 - 요청 라우팅, RESTful 서비스 생성, 이벤트 소싱 등의 클라우드 네이티브 기술/패턴 사용법 - 마이크로서비스를 위한 도커 컨테이너 생성과 젠킨스를 이용한 지속적인 통합 환경 설정 - 컨테이너화를 위해 도커와 쿠버네티스 등의 도구 검토 - AWS와 Azure 전용 도구를 사용한 애플리케이션 설계, 개발, 배포, 관리 방법 이 책의 대상 독자 클라우드 기반 환경에 배포하기 위한 복원력 있고 견고하며, 확장성 있는 애플리케이션을 구축하려는 자바 개발자에게 유용하다. 자바, 스프링, 웹 프로그래밍, AWS 및 Azure 같은 공개 클라우드 플랫폼을 경험해봤다면 이 책을 충분히 이해할 수 있다. 이 책의 구성 1장. ‘클라우드 네이티브 소개’에서는 클라우드 네이티브 애플리케이션이 필요한 이유를 설명한다. 클라우드 플랫폼으로 이동하는 이유는 무엇인가? 클라우드 개발 및 배포가 일반 애플리케이션과 다른 이유는 무엇인가? 클라우드 애플리케이션의 12가지 요소는 무엇인가? 2장. ‘첫 번째 클라우드 네이티브 애플리케이션’에서는 애플리케이션을 마이크로서비스 방식으로 설계할 때의 핵심 개념을 설명한 후 이 책을 진행하면서 점점 살을 붙여 나갈 예제 프로젝트를 소개한다. 또한 마이크로서비스 애플리케이션 개발을 위해 스프링 부트를 사용하는 방법과 클라우드 네이티브 애플리케이션을 개발할 때 사용하는 마이크로서비스 원칙을 알아본다. 3장. ‘클라우드 네이티브 애플리케이션 설계’에서는 클라우드 네이티브 애플리케이션을 설계할 때 고려할 몇 가지 고급 아키텍처 문제를 다룬다. 여기에는 이벤트 기반 아키텍처, 코레오그래피를 이용한 디커플링, 경계가 있는 컨텍스트와 같은 도메인 주도 설계(DDD) 개념 등이 포함된다. 시스템 중심의 서비스 정의 대신, 클라우드에서 개발하고 고객 중심 API를 제공하는 데 필요한 아키텍처 패턴과 고려할 사항을 알아본다. 4장. ‘클라우드 네이티브 애플리케이션 확장’에서는 다양한 스택, 원칙, 지원 컴포넌트를 사용해 애플리케이션을 만드는 방법을 자세히 알아본다. 서비스 구현에 필요한 패턴을 다루며, 클라우드 개발에 상당한 영향을 미치는 오류 처리, CQRS, 캐싱 등의 다양한 측면을 설명한다. 5장. ‘클라우드 네이티브 애플리케이션 테스트’에서는 마이크로서비스를 테스트하는 방법과 행위 주도 개발에서의 테스트 작성 방법을 알아본다. 6장. ‘클라우드 네이티브 애플리케이션 배포’에서는 도커 컨테이너 배포를 위한 애플리케이션 패키징 방법, CI/CD 파이프라인을 설정하는 방법을 비롯한 마이크로서비스 배포 모델을 자세히 살펴본다. 7장. ‘클라우드 네이티브 애플리케이션 런타임’에서는 서비스 런타임을 다룬다. 구성 서버를 이용해 구성을 외부화하는 방법과 주울을 프론트엔드로 배치하는 방법을 알아보며, 피보탈 클라우드 파운드리에 관해 설명하고, PCF Dev에 서비스를 배포하는 방법을 알아본다. 컨테이너 오케스트레이션 또한 다룬다. 8장. ‘AWS 플랫폼에 배포’에서는 AWS 환경을 설명하고, 이전 장에서 설명한 개념(레지스트리, 구성, 로그 집계, 비동기 메시징)을 바탕으로 클라우드 개발을 하기 위한 AWS 고유의 도구를 설명한다. 9장. ‘Azure 플랫폼에 배포’에서는 Azure 환경을 설명하고, 클라우드 개발을 하기 위한 Service Fabric, Azure Functions 등의 Azure 고유의 도구를 설명한다. 10장. ‘서비스 통합’에서는 IaaS, PaaS, iPaaS, DBaaS를 비롯한 다양한 유형의 XaaS를 설명하고, 인프라 요소를 서비스로 노출하는 방법을 알아본다. 클라우드 네이티브 모드에서는 애플리케이션을 소셜 미디어 API나 PaaS API와 통합하거나 다른 애플리케이션에서 사용할 서비스를 호스팅할 수 있다. 또한 다른 외부 서비스를 연결해서 사용하거나 직접 서비스를 제공하는 방법을 설명한다. 11장. ‘API 디자인 모범 사례에서는 기능 지향적이고 세분화된 사용자 중심의 API를 설계하는 방법을 설명한다. 또한 API 수준 또는 서비스에서의 오케스트레이션 수행 여부, 무료 API 모델을 만드는 방법, 서비스가 채널에 구애받지 않도록 API 계층에서 채널과 관련된 문제를 해결하는 방법, 보안을 고려한 API 설계 등 API 설계에 대한 다양한 모범 사례를 설명한다. 12장. ‘디지털 트랜스포메이션’에서는 클라우드 개발이 기존 기업 환경에 미치는 영향과 클라우드를 이용해 디지털 엔터프라이즈로 성공적으로 전환하는 방법을 설명한다. |
|
배포 다이어그램을 보면 방화벽 외부의 인터넷은 구름 모양으로 그려져 있다. 나는 니콜라스 카(Nicholas G. Carr)가 쓴 『Big Switch』(W. W. Norton & Company, 2013)를 읽고 난 후에야 비로소 클라우드의 잠재력과 앞으로 올 것이 무엇인지 깨달았다. 지난 10년을 빠르게 보낸 지금에 와서는 두 번 생각할 필요도 없이 클라우드가 어디에나 있다는 것을 표현하기 위해 전체 시스템을 감싸는 구름 모양을 그리게 됐다. 클라우드 네이티브는 스타트업에서는 클라우드 네이티브가 익숙하지만, 많은 기업에서는 여전히 미지의 영역이다. 대기업 대부분은 데이터 센터 비용을 줄이거나 임대를 연장하지 않기 위해 가장 먼저 하는 일이기는 하지만, 리프트 앤 시프트를 수행하는 것만으로 클라우드를 올바르게 사용할 수는 없다. 클라우드의 강점은 비즈니스에 중요한 역할을 하는 클라우드 네이티브 애플리케이션을 구축해서 혁신적인 가치를 창출할 수 있을 때 확인할 수 있다. 따라서 나는 우리 팀이 더 똑똑한 클라우드 애플리케이션을 설계하고 구축하기 위해 연구하게 격려해 왔다.
무니쉬(Munish), 아제이(Ajay), 시암(Shyam)은 비즈니스 문제를 해결하기 위한 신기술을 항상 연구하고 개발해온 핵심 팀의 일원이다. 이들은 마이크로서비스를 사용하는 분산 시스템, 리액티브 프레임워크, 오픈소스, 컨테이너 기술(도커와 쿠버네티스) 등의 신기술에 초점을 맞춰 엔터프라이즈 트랜스포메이션 분야를 선도하는 전문가 및 컨설턴트다. 따라서 나는 다음 세대의 개발자들이 클라우드 네이티브 애플리케이션 개발을 빠르게 시작할 수 있도록 이 책의 저술을 권했다. 이 책은 클라우드용 애플리케이션을 이해하고 설계하고 만드는 데 필요한 단계별 접근 방법을 사용한다. 저자들은 개념부터 시작해서 작은 REST 서비스를 구축하고, 이어서 클라우드 네이티브로 서비스를 개선하는 점진적인 방식으로 독자들을 이끈다. 분산 아키텍처에서 서비스를 검색하는 방법이나 서비스 검색 도구가 수행하는 역할과 같은 클라우드 특유의 다양한 측면을 다룬다. 애플리케이션을 AWS나 Azure 같은 공개 클라우드로 마이그레이션하는 방법을 배우고, AWS Lamda 및 Google Cloud Functions 같은 서버리스 컴퓨팅 모델도 다룬다. 이 책을 최대한 활용해 클라우드 환경에서의 애플리케이션 개발을 선도하길 바란다. - 하리 키산 부를리 (Hari Kishan Burle, 위프로 리미티드(Wipro Limited)의 부사장 겸 아키텍처 서비스 글로벌 책임자) |