★ 마이크로서비스, 웹 기반 분산 시스템의 디자인 패러다임을 바꾸다!
전 세계에 걸쳐 여러 도메인에서 다양한 회사와 협력해온 개발자이자 아키텍트, 작가이자 연사다. 여러 스타트업과 소트웍스(ThoughtWorks)에서 12년 동안 일한 후, 요즘은 독립 컨설턴트로 활동한다. 마이크로서비스, 클라우드, 지속적 배포를 전문으로 하며, 전 세계 고객을 대상으로 훈련과 컨설팅을 통해 소프트웨어를 더 빠르고 더 안정적으로 배포하는 방법을 전파하고 있다. 세계적인 여러 컨퍼런스에서 발표한 유명 연사며, 『마이크로서비스 아키텍처 구축』(한빛미디어, 2017)을 집필했다.
새로운 기술이 급부상하는 시기가 아니라면, 이스트 켄트의 시골에서 다양한 형태의 스포츠를 즐기는 뉴먼을 만날 수 있을 것이다.
1장. 마이크로서비스
__1.1 마이크로서비스란
__1.2 주요 혜택
__1.3 서비스 지향 아키텍처란
__1.4 기타 분해 기술
__1.5 은총알은 없다
__1.6 마치며
2장. 진화적 아키텍트
__2.1 부정확한 비교
__2.2 아키텍트에 대한 진화적 관점
__2.3 구역화
__2.4 원칙적인 접근법
__2.5 필수 기준
__2.6 코드를 통한 통제
__2.7 기술 부채
__2.8 예외 처리
__2.9 중앙에서의 거버넌스와 지휘
__2.10 팀 만들기
__2.11 마치며
3장. 서비스 모델링하기
__3.1 뮤직코퍼레이션 소개
__3.2 무엇이 좋은 서비스를 만드는가?
__3.3 경계가 있는 콘텍스트
__3.4 비즈니스 능력
__3.5 거북이 밑에 거북이
__3.6 비즈니스 콘셉트 관점에서의 커뮤니케이션
__3.7 기술적 경계
__3.8 마치며
4장. 통합
__4.1 이상적인 통합 기술 모색
__4.2 고객과의 인터페이싱
__4.3 공유 데이터베이스
__4.4 동기와 비동기
__4.5 오케스트레이션과 코레오그래피
__4.6 원격 프로시저 호출
__4.7 REST
__4.8 비동기 이벤트 기반의 협업 구현
__4.9 상태 기계로서의 서비스
__4.10 반응형 확장
__4.11 마이크로서비스 세계에서 코드 재사용의 위험과 DRY
__4.12 참조에 의한 접근
__4.13 버전 관리
__4.14 사용자 인터페이스
__4.15 외부 소프트웨어와 통합
__4.16 마치며
5장. 모놀리스 분해하기
__5.1 접합부가 중요하다
__5.2 뮤직코퍼레이션 분해하기
__5.3 모놀리스를 분리하는 이유
__5.4 뒤엉킨 의존성
__5.5 데이터베이스
__5.6 문제에 대처하기
__5.7 예: 외부 키 관계 깨뜨리기
__5.8 예: 공유된 정적 데이터
__5.9 예: 공유 데이터
__5.10 예: 공유된 테이블
__5.11 데이터베이스 리팩토링
__5.12 트랜잭션의 경계
__5.13 리포팅
__5.14 리포팅 데이터베이스
__5.15 서비스 호출을 통한 데이터 추출
__5.16 데이터 펌프
__5.17 이벤트 데이터 펌프
__5.18 백업 데이터 펌프
__5.19 실시간을 향해
__5.20 변경 비용
__5.21 원인 파악
__5.22 마치며
6장. 배포
__6.1 지속적 통합이란
__6.2 지속적 통합을 마이크로서비스로 매핑하기
__6.3 빌드 파이프라인과 지속적 배포
__6.4 플랫폼별 산출물
__6.5 운영 체제 산출물
__6.6 커스텀 이미지
__6.7 환경
__6.8 서비스 환경 구성
__6.9 서비스와 호스트 매핑
__6.10 자동화
__6.11 물리 머신에서 가상화로
__6.12 배포 인터페이스
__6.13 마치며
7장. 테스팅
__7.1 테스트의 종류
__7.2 테스트의 범위
__7.3 서비스 테스트 구현하기
__7.4 까다로운 엔드 투 엔드 테스트
__7.5 엔드 투 엔드 테스팅의 단점
__7.6 신뢰할 수 없고 취약한 테스트
__7.7 스토리가 아닌 테스트 여정
__7.8 우리를 구할 소비자 주도 테스트
__7.9 엔드 투 엔드 테스트를 사용해야 하는가?
__7.10 출시 후의 테스팅
__7.11 교차기능 테스트
__7.12 마치며
8장. 모니터링
__8.1 단일 서비스, 단일 서버
__8.2 단일 서비스, 다수 서버
__8.3 다수 서비스, 다수 서버
__8.4 로그, 로그, 더 많은 로그...
__8.5 다수 서비스 간의 측정지표 추적
__8.6 서비스 측정지표
__8.7 합성 모니터링
__8.8 상관관계 ID
__8.9 전파
__8.10 표준화
__8.11 관객 고려하기
__8.12 앞으로
__8.13 마치며
9장. 보안
__9.1 인증과 권한부여
__9.2 서비스 대 서비스 인증과 권한부여
__9.3 보관 중인 데이터 보호하기
__9.4 심층 방어
__9.5 시범 예제
__9.6 절약하라
__9.7 인적 요소
__9.8 황금률
__9.9 보안 탑재
__9.10 외부 검증
__9.11 마치며
10장. 콘웨이의 법칙과 시스템 설계
__10.1 증거
__10.2 넷플릭스와 아마존
__10.3 이것으로 무엇을 할 수 있을까?
__10.4 의사소통 경로 적응
__10.5 서비스 소유권
__10.6 공유된 서비스의 추진
__10.7 내부 오픈 소스
__10.8 경계가 있는 콘텍스트와 팀 구조
__10.9 방치된 서비스
__10.10 사례 연구: RealEstate.com.au
__10.11 콘웨이의 역법칙
__10.12 사람
__10.13 마치며
11장. 대규모 마이크로서비스
__11.1 장애는 어디에서나 발생한다
__11.2 얼마나 많아야 너무 많은 건가?
__11.3 기능 분해
__11.4 아키텍처 안전 조치
__11.5 안티프래질 조직
__11.6 멱등성
__11.7 확장
__11.8 데이터베이스 확장
__11.9 캐싱
__11.10 자동 확장
__11.11 CAP 정리
__11.12 서비스 발견
__11.13 동적 서비스 레지스트리
__11.14 문서화 서비스
__11.15 자기 기술 시스템
__11.16 마치며
12장. 종합 정리
__12.1 마이크로서비스의 원칙
__12.2 언제 마이크로서비스를 사용하지 않아야 하는가?
__12.3 이 책을 마치며