지은이 : 샘 뉴먼
샘 뉴먼은 독립 컨설턴트, 작가, 연사로 활동하고 있다. 20년 넘게 업계에 종사하면서 다양한 기술 스택과 영역에서 전 세계의 기업들과 함께 일해 왔다. 그는 조직이 소프트웨어를 더욱 빠르고 안전하게 운영하고 환경에 적용하도록 마이크로서비스의 복잡성을 다루는 것에 관심이 많다. 또한 『마이크로서비스 도입, 이렇게 한다』(책만, 2021)의 저자이기도 하다.
PART 1 기초
CHAPTER 1 마이크로서비스란?
_1.1 마이크로서비스 살펴보기
_1.2 마이크로서비스의 핵심 개념
_1.3 모놀리스
_1.4 활성화 기술
_1.5 마이크로서비스의 장점
_1.6 마이크로서비스의 고충
_1.7 마이크로서비스를 사용해야 하는가?
요약
CHAPTER 2 마이크로서비스 모델링 방법
_2.1 뮤직코프 소개
_2.2 올바른 마이크로서비스 경계를 만드는 것은 무엇인가?
_2.3 결합 유형
_2.4 딱 도메인 주도 설계만큼
_2.5 마이크로서비스를 위한 도메인 주도 설계 사례
_2.6 비즈니스 도메인 경계에 대한 대안
_2.7 혼합 모델과 예외
요약
CHAPTER 3 모놀리스 분해
_3.1 목표를 가져라
_3.2 점진적 마이그레이션
_3.3 모놀리스가 적인 경우는 드물다
_3.4 무엇을 먼저 나눌까?
_3.5 계층별 분해
_3.6 유용한 분해 패턴
_3.7 데이터 분해에 대한 우려
요약
CHAPTER 4 마이크로서비스 통신 방식
_4.1 프로세스 내부에서 프로세스 사이로
_4.2 프로세스 간 통신을 위한 기술: 다양한 선택
_4.3 마이크로서비스 통신 방식
_4.4 패턴: 동기식 블로킹
_4.5 패턴: 비동기식 논블로킹
_4.6 패턴: 공통 데이터를 통한 통신
_4.7 패턴: 요청 및 응답 통신
_4.8 패턴: 이벤트 기반 통신
_4.9 조심해서 진행하라
요약
PART 2 구현
CHAPTER 5 마이크로서비스 통신 구현
_5.1 이상적인 기술을 찾아서
_5.2 기술 선택
_5.3 직렬화 포맷
_5.4 스키마
_5.5 마이크로서비스 간의 변경 처리
_5.6 중단 변경 피하기
_5.7 중단 변경 관리하기
_5.8 마이크로서비스 세계에서 DRY와 코드 재사용의 위험
_5.9 서비스 디스커버리
_5.10 서비스 메시와 API 게이트웨이
_5.11 서비스 문서화
요약
CHAPTER 6 워크플로
_6.1 데이터베이스 트랜잭션
_6.2 분산 트랜잭션 - 2단계 커밋
_6.3 분산 트랜잭션 - 그냥 안 된다고 하라
_6.4 사가 패턴
요약
CHAPTER 7 빌드
_7.1 지속적 통합에 대한 간략한 소개
_7.2 빌드 파이프라인과 지속적 제공
_7.3 소스 코드와 빌드를 마이크로서비스에 매핑하기
요약
CHAPTER 8 배포
_8.1 논리적에서 물리적으로
_8.2 마이크로서비스 배포의 원칙
_8.3 배포 방법
_8.4 어떤 배포가 적합할까?
_8.5 쿠버네티스와 컨테이너 오케스트레이션
_8.6 점진적 제공
요약
CHAPTER 9 테스트
_9.1 테스트 유형
_9.2 테스트 범위
_9.3 서비스 테스트의 구현
_9.4 까다로운 엔드투엔드 테스트의 구현
_9.5 엔드투엔드 테스트를 피해야 할까?
_9.6 개발자 경험
_9.7 운영 환경 전 테스트에서 운영 환경 내 테스트로
_9.8 교차 기능 테스트
요약
CHAPTER 10 모니터링에서 관찰가능성으로
_10.1 분열, 공황 그리고 혼란
_10.2 단일 마이크로서비스, 단일 서버
_10.3 단일 마이크로서비스, 다수 서버
_10.4 다수 마이크로서비스, 다수 서버
_10.5 관찰가능성 대 모니터링
_10.6 관찰가능성의 구성 요소
_10.7 표준화
_10.8 도구 선택
_10.9 기계화된 전문가
_10.10 시작하기
요약
CHAPTER 11 보안
_11.1 핵심 원칙
_11.2 사이버 보안의 다섯 가지 기능
_11.3 애플리케이션 보안의 기초
_11.4 암묵적 신뢰 대 제로 트러스트
_11.5 데이터 보안
_11.6 인증과 권한 부여
CHAPTER 12 회복 탄력성
_12.1 회복 탄력성이란?
_12.2 장애는 어디에서나 발생한다
_12.3 얼마나 많아야 너무 많은 건가?
_12.4 기능 저하
_12.5 안정성 패턴
_12.6 위험 분산
_12.7 CAP 정리
_12.8 카오스 엔지니어링
_12.9 비난
요약
CHAPTER 13 확장
_13.1 확장의 네 가지 축
_13.2 결합 모델
_13.3 작게 시작하라
_13.4 캐싱
_13.5 자동 확장
_13.6 다시 시작하기
요약
PART 3 사람
CHAPTER 14 사용자 인터페이스
_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 하이브리드 방식
요약
CHAPTER 15 조직 구조
_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 사람들
요약
CHAPTER 16 진화하는 아키텍트
_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 예외 처리
요약
종합정리: 조언부터 향후 전망까지
핵심 용어집