1 개요[ | ]
- Spring Microservices
- 스프링 마이크로서비스
- 저자: 라제시 RV(Rajesh RV)
- 역자: 오명운, 박소은, 허서윤
- (2016년, 영어판) ISBN 9781786466686
- (2017년, 한국어판) ISBN 9791161750286
2 책소개 (알라딘)[ | ]
acorn+PACKT 시리즈. 국내 많은 곳에서 마이크로서비스를 도입하거나 도입하려는 움직임을 볼 수 있다. 기존의 일체형 시스템 개발과 비교해보면 마이크로서비스의 장점을 개념적으로는 쉽게 이해할 수 있지만, 이를 실제로 구현해내려면 여러 가지 기술과 도구의 도움이 필요하다. 이 책은 스프링 부트와 스프링 클라우드 기술을 바탕으로 항공 운항 시스템을 마이크로서비스로 구현하는 과정을 다루고 있다.
일반적인 스프링 부트 웹 애플리케이션에서 시작하며, 스프링 클라우드 기술을 적용해 처음부터 끝까지 하나의 마이크로서비스를 구축해가는 전체 과정을 보여준다. 새로운 서비스의 구현뿐만 아니라, 이미 일체형 아키텍처로 구현된 프로젝트를 마이크로서비스로 전환하는 과정도 포함돼 실무에 직접적인 도움을 줄 수 있다.
3 목차[ | ]
- 1장. 쉽게 알아보는 마이크로서비스
- 마이크로서비스로의 진화
- 마이크로서비스로 진화의 촉매: 비즈니스적 요구
- 마이크로서비스로 진화의 촉매: 기술
- 명령형 아키텍처의 진화
- 마이크로서비스란 무엇인가?
- 마이크로서비스와 벌집
- 마이크로서비스의 원칙
- 서비스 하나에 책임도 하나
- 마이크로서비스는 자율적
- 마이크로서비스의 특징
- 서비스는 일급 시민
- 마이크로서비스 안에 있는 서비스들의 특징
- 마이크로서비스는 경량
- 다양한 언어로 구성할 수 있는 마이크로서비스
- 마이크로서비스 환경에서의 자동화
- 마이크로서비스를 지원하는 생태계
- 동적이고 분산돼 있는 마이크로서비스
- 붕괴 저항성, 빨리 실패하기, 자체 치유
- 마이크로서비스 예제
- 휴일 정보 포털의 예
- 마이크로서비스 기반의 주문 관리 시스템
- 여행사 포털 사례
- 마이크로서비스의 장점
- 폴리글랏 아키텍처 지원
- 실험과 혁신 유도
- 탄력적이고 선택적인 확장
- 대체 가능성
- 유기적 시스템 구축 유도
- 기술적 부채 경감
- 다양한 버전의 공존
- 자기 조직 시스템 구축 지원
- 이벤트 주도 아키텍처 지원
- 데브옵스 지원
- 다른 아키텍처 스타일과의 관계
- SOA와의 관계
- 서비스 지향 통합
- 기존 시스템의 현행화
- 서비스 지향 애플리케이션
- SOA를 사용한 일체형의 전환
- 12 요소 애플리케이션과의 관계
- 단일 코드 베이스
- 의존성 꾸러미
- 환경설정 외부화
- 후방 지원 서비스 접근성
- 빌드, 출시, 운영 사이의 고립성
- 무상태,비공유 프로세스
- 서비스를 포트에 바인딩해서 노출
- 확장을 위한 동시성
- 폐기 영향 최소화
- 개발과 운영의 짝 맞춤
- 로그 외부화
- 패키지 매니저 프로세스
- SOA와의 관계
- 마이크로서비스 사용 사례
- 마이크로서비스를 일찍 도입한 조직
- 공통적인 주제는 일체형의 전환
- 정리
- 2장. 스프링 부트로 만드는 마이크로서비스
- 개발 환경 구축
- RESTful 서비스 만들기: 기존 방식
- 전통적인 웹 애플리케이션에서 마이크로서비스로의 전환
- 스프링 부트로 RESTful 마이크로서비스 만들기
- 스프링 부트 시작
- CLI를 활용한 스프링 부트 마이크로서비스 개발
- STS를 활용한 스프링 부트 자바 마이크로서비스 개발
- POM 파일
- Application.java
- application.properties
- ApplicationTests.java
- 스프링 부트 마이크로서비스 테스팅
- Spring Initializr를 활용한 스프링 부트 마이크로서비스 개발: HATEOS 예제
- 다음에 알아볼 내용
- 스프링 부트 환경설정
- 스프링 부트 자동 환경설정의 이해
- 환경설정 기본 값 변경
- 환경설정 파일의 위치 변경
- 사용자 정의 속성 정보 사용
- 환경설정 정보 관리에 .yaml 파일 사용
- 프로파일을 활용한 다중 환경설정
- 환경설정 속성 정보를 읽을 수 있는 다른 방법
- 내장된 기본 웹서버의 변경
- 스프링 부트 보안
- 마이크로서비스에 기본적인 보안 적용
- OAuth2를 사용하는 마이크로서비스 보안
- 다른 도메인에 존재하는 정보 요청 활성화
- 스프링 부트 메시징 구현
- 종합적인 마이크로서비스 예제
- 스프링 부트 액추에이터
- JConsole을 활용한 모니터링
- SSH를 활용한 모니터링
- 애플리케이션 관련 정보 설정
- 사용자 정의 서버 진단 모듈
- 사용자 정의 지표
- 마이크로서비스 문서화
- 정리
- 3장. 마이크로서비스 개념 적용
- 패턴 및 설계상의 일반적인 의사 결정
- 적절한 마이크로서비스 경계 설정
- 자율적인 기능
- 배포 단위의 크기
- 분리하기에 가장 적합한 기능 또는 서브도메인
- 폴리글랏 아키텍처
- 선택적 확장
- 작고 애자일한 팀
- 단일 책임
- 복제 가능성과 변경 가능성
- 결합과 응집
- 마이크로서비스를 하나의 제품으로 생각하기
- 통신 방식 설계
- 동기 방식 통신
- 비동기 방식 통신
- 동기와 비동기, 선택의 기준
- 마이크로서비스 오케스트레이션
- 마이크로서비스 하나에 얼마나 많은 종단점을 둘 것인가?
- 가상머신 하나당 하나의 마이크로서비스 또는 다수의 마이크로서비스
- 룰 엔진:공유 또는 내장
- BPM의 역할과 작업 흐름
- 마이크로서비스가 데이터 스토어를 공유할 수 있는가?
- 트랜잭션 경계 설정
- 트랜잭션 요구 사항을 단순화하기 위한 사용 사례의 변경
- 분산 트랜잭션 시나리오
- 서비스 종단점 설계 고려 사항
- 적절한 마이크로서비스 경계 설정
- 계약 설계
- 프로토콜 선택
- 공유 라이브러리 처리
- 마이크로서비스에서의 사용자 인터페이스
- 마이크로서비스에서 API 게이트웨이 사용
- ESB 및 iPass와 마이크로서비스의 사용
- 서비스 버저닝 고려 사항
- 크로스오리진 설계
- 공유 참조 데이터 처리
- 마이크로서비스와 대규모 데이터 작업
- 마이크로서비스의 과제
- 데이터 섬
- 로깅과 모니터링
- 의존 관계 관리
- 조직 문화
- 관리 체계 문제
- 운영 오버헤드
- 마이크로서비스 테스팅
- 인프라스트럭처 프로비저닝
- 마이크로서비스 역량 모델
- 핵심 역량
- 인프라스트럭처 역량
- 지원 역량
- 프로세스 및 통제 역량
- 정리
- 4장. 마이크로서비스의 진화: 사례 연구
- 마이크로서비스 역량 모델 다시 보기
- PSS 애플리케이션의 이해
- 비즈니스 절차적 관점
- 기능적 관점
- 구조적 관점
- 설계 관점
- 구현 관점
- 배포 관점
- 일체형의 죽음
- 문제점
- 간극 메우기를 멈추기
- 회고
- 공유 데이터
- 단일 데이터베이스
- 도메인 경계
- 마이크로서비스의 구원
- 비즈니스 사례
- 진화 계획
- 진화론적 접근
- 마이크로서비스의 경계 식별
- 의존 관계 분석
- 마이그레이션을 위한 마이크로서비스 우선순위 지정
- 마이그레이션 중의 데이터 동기화
- 참조 데이터 관리
- 사용자 인터페이스와 웹 애플리케이션
- 세션 관리 및 보안
- 테스트 전략
- 생태계 역량 구축
- 필요할 때만 모듈을 마이그레이션
- 목표 구조
- 마이크로서비스의 내부 계층 구조
- 마이크로서비스 조직화
- 다른 시스템과의 통합
- 공유 라이브러리 관리
- 예외 처리
- 구현 목표
- 프로젝트 구현
- 프로젝트 실행 및 테스트
- 정리
- 5장. 스프링 클라우드를 활용한 마이크로서비스 확장
- 마이크로서비스 역량 모델 다시 보기
- 브라운필드 PSS 시스템 다시 보기
- 스프링 클라우드란?
- 스프링 클라우드 출시 버전
- 스프링 클라우드 컴포넌트 구성 요소
- 스프링 클라우드와 Netflix 오픈소스 소프트웨어
- 브라운필드 PSS 시스템을 위한 개발 환경설정
- Spring Cloud Config
- 다음에 알아볼 내용
- Config 서버 셋업
- Config 서버 URL의 이해
- 클라이언트에서 Config 서버 접근
- 환경설정 정보 변경 전파 및 반영
- 환경설정 변경을 전파하는 Sping Cloud Bus
- Config 서버에 고가용성 적용
- Config 서버 상태 모니터링
- Config 서버 환경설정 파일
- Config 서버를 사용하는 환경설정 외부화 완성
- 선언적 REST 클라이언트 Feign
- 로드 밸런서 Ribbon
- Eureka를 이용한 서비스 등록 및 발견
- 동적 서비스 등록 및 발견의 이해
- Eureka의 이해
- Eureka 서버 구성
- 고가용성 Eureka 서버
- Zuul 프록시 API 게이트웨이
- Zuul 설정
- 고가용성 Zuul
- 클라이언트가 Eureka 클라이언트이기도 할 때의 고가용성 Zuul
- 클라이언트가 Eureka 클라이언트가 아닐 때의 고가용성 Zuul
- 다른 모든 브라운필드 마이크로서비스에 Zuul 적용
- 리액티브 마이브로서비스를 위한 스트림
- 브라운필드 PSS 시스템 정리
- 정리
- 6장. 마이크로서비스 자동 확장
- 마이크로서비스 역량 모델 다시 보기
- 스프링 클라우드를 활용한 마이크로서비스 확장
- 자동 확장 개념의 이해
- 자동 확장의 장점
- 여러 가지 자동 확장 모델
- 애플리케이션 자동 확장
- 인프라스트럭처 자동 확장
- 클라우드 자동 확장
- 자동 확장 방식
- 자원 제약 조건 기반의 확장
- 특정 기간 동안 확장
- 메시지 큐 길이 기반의 확장
- 비즈니스 파라미터 기반의 확장
- 예측에 의한 확장
- BrownField PSS 마이크로서비스 자동 확장
- 자동 확장 시스템에 필요한 기능
- 스프링 부트를 활용한 사용자 정의 라이프 사이클 매니저의 구현
- 배포 토폴로지의 이해
- 실행 흐름의 이해
- 라이프 사이클 매니저 코드 따라가기
- 라이프 사이클 매니저 실행하기
- 정리
- 7장. 마이크로서비스 로깅 및 모니터링
- 마이크로서비스 역량 모델 다시 보기
- 로그 관리와 관련된 난제
- 중앙 집중형 로깅
- 로깅 솔루션 선택
- 클라우드 서비스
- 내장 가능한 로깅 솔루션
- 최상의 통합
- 로그 적재기
- 로그 스트림 처리기
- 로그 저장소
- 대시보드
- 사용자 정의 로깅 구현
- Spring Cloud Sleuth로 분산 로그 추적
- 마이크로서비스 모니터링
- 모니터링 도전 과제
- 모니터링 도구
- 마이크로서비스 의존 관계 모니터링
- 장애를 견딜 수 있는 마이크로서비스를 위한 Spring Cloud Netflix
- Turbine을 통한 Hystrix스트림 통합
- 데이터 호수를 사용한 데이터 분석
- 정리
- 8장. 도커 컨테이너와 마이크로서비스
- 마이크로서비스 역량 모델 다시 보기
- 지금까지 만들어온 브라운필드 PSS 마이크로서비스의 한계
- 컨테이너란 무엇인가?
- 가상머신과 컨테이너의 차이
- 컨테이너의 장점
- 마이크로서비스와 컨테이너
- 도커 소개
- 도커 핵심 컴포넌트
- 도커 데몬
- 도커 클라이언트
- 도커 주요 개념
- 도커 이미지
- 도커 컨테이너
- 도커 레지스트리
- Dockerfile
- 도커 핵심 컴포넌트
- 마이크로서비스를 도커로 배포
- 도커에서 Rabbit MQ 실행
- 도커 레지스트리 사용
- Docker Hub 구성
- 도커 허브에 마이크로서비스 퍼블리싱
- 클라우드에서의 마이크로서비스
- AWS EC2에 도커 설치
- EC2에서 브라운필드 서비스 실행
- 라이프 사이클 매니저 업데이트
- 컨테이너화의 미래 :유니커널과 강화된 보안
- 정리
- 9장. 메소스와 마라톤을 이용한 도커화된 마이크로서비스 관리
- 마이크로서비스 역량 모델 다시 보기
- 잃어버린 조각
- 클러스터 관리가 중요한 이유
- 클러스터 관리가 하는 일
- 마이크로서비스와의 관계
- 가상화와의 관계
- 클러스터 관리 솔루션
- 도커 스웜
- 쿠버네티스
- 아파치 메소스
- 노매드
- 플릿
- 메소스와 마라톤을 이용한 클러스터 관리
- 메소스 속속들이 알아보기
- 메소스 아키텍처
- 마라톤
- 메소스 속속들이 알아보기
- 브라운필드 마이크로서비스에 메소스와 마라톤 적용
- AWS 구성
- 주키퍼, 메소스, 마라톤 설치
- 주키퍼 설정
- 메소스 설정
- 메소스, 마라톤, 주키퍼를 서비스로서 실행
- 브라운필드 PSS 서비스 준비
- 브라운필드 PSS 서비스 배포
- 배포 다시 보기
- 라이프 사이클 매니저
- 메소스와 마라톤을 사용하게 재작성한 라이프 사이클 매니저
- 기술 메타모델
- 정리
- 10장. 마이크로서비스 개발 라이프 사이클
- 마이크로서비스 역량 모델 다시 보기
- 린 IT의 새로운 만트라: 데브옵스
- 낭비 줄이기
- 가능한 모든 과정을 자동화
- 가치 주도 전달
- 개발과 운영의 연결
- 삼총사의 만남: 마이크로서비스, 데브옵스, 클라우드
- 마이크로서비스를 위한 셀프 서비스 인프라스트럭처로서의 클라우드
- 마이크로서비스를 위한 관습과 프로세스로서의 데브옵스
- 마이크로서비스 개발을 위한 관습
- 비즈니스 동기 및 가치에 대한 이해
- 프로젝트에서 제품 개발로의 사고방식 전환
- 개발 철학의 선택
- 디자인 사고
- 스타트업 모델
- 애자일 관습
- 실행 가능한 최소한의 프로젝트 개념 활용
- 레거시 난관 극복
- 데이터베이스를 둘러싼 문제 해결
- 자기 조직화 팀의 구성
- 자체 클라우드 구축
- 마이크로서비스 생태계 구축
- 데브옵스 스타일의 마이크로서비스 라이프 사이클 프로세스 정의
- 가치 주도 계획
- 애자일 개발
- 지속적 통합
- 지속적 테스팅
- 지속적 출시
- 지속적 모니터링 및 피드백
- 지속적 전달 파이프라인 자동화
- 개발
- 지속적 통합
- 테스트 자동화
- 지속적 배포
- 모니터링과 피드백
- 자동화된 설정 관리
- 마이크로서비스 배포 통제 , 참조 아키텍처, 라이브러리
- 정리
4 같이 보기[ | ]
5 참고[ | ]
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.
강좌 메이지 유신 ― Kiren강좌 메이지 유신 ―Pinkcrimson
강좌 메이지 유신 ― Kiren강좌 메이지 유신 ―Pinkcrimson
객주 (만화) ―Pinkcrimson
대한민국의 설계자들 ―Pinkcrimson
대한민국의 설계자들 ―Pinkcrimson
번역과 일본의 근대 ―Pinkcrimson
번역어 성립 사정 ―Pinkcrimson
벌거벗은 로마사, 로마 제국사 ―Pinkcrimson
벌거벗은 로마사, 로마 제국사 ―Pinkcrimson
사전 보는 법 ―Pinkcrimson
사전 보는 법 ―Pinkcrimson
사전 보는 법 ―Pinkcrimson
수녀 (소설) ―Pinkcrimson
수녀 (소설) ―Pinkcrimson
역사적으로 본 일본인의 한국관 ―Pinkcrimson
역사적으로 본 일본인의 한국관 ―Pinkcrimson
우리들의 시대에 ―Pinkcrimson
우리들의 시대에 ―Pinkcrimson
위대한 개츠비 ―Pinkcrimson
위키백과, 우리 모두의 백과사전 ―Pinkcrimson
위키백과, 우리 모두의 백과사전 ―Pinkcrimson
이두와 일본어의 한자 사용 ― …이두와 일본어의 한자 사용 ― …이두와 일본어의 한자 사용 ―Pinkcrimson
절대지식 일본고전 ―Pinkcrimson
절대지식 일본고전 ―Pinkcrimson
절대지식 일본고전 ―Pinkcrimson
조지 오웰 ―Pinkcrimson
조지 오웰 ―Pinkcrimson
조지 오웰 ―Pinkcrimson
창힐의 향연 ― Jjw창힐의 향연 ―Pinkcrimson
최후의 사전편찬자들 ―Pinkcrimson
최후의 사전편찬자들 ―Pinkcrimson
최후의 사전편찬자들 ― John Jeong최후의 사전편찬자들 ―Pinkcrimson
최후의 사전편찬자들 ―Pinkcrimson
파타고니아 (책) ―Pinkcrimson
파타고니아 (책) ― Nolon4파타고니아 (책) ―Pinkcrimson
한국의 사전과 사전학 ―Pinkcrimson
한국의 사전과 사전학 ―Pinkcrimson
후쿠자와 유키치 - 독서감상문 ―Pinkcrimson