더 나은, 더 빠른, 더 넓은 데이터 관리의 시작
빠르게 변화하는 대규모 데이터를 기존의 낡은 아키텍처로 관리하기란 쉽지 않다. 변경 가능성과 확장성을 가진 마이크로서비스 아키텍처는 이 어려움을 극복할 새로운 대안이다. 이 책은 단순히 마이크로서비스 아키텍처의 시스템적인 구축만을 다루지 않는다. 팀 설계, 도메인 설계, 인프라, 엔지니어링 및 릴리스를 포괄하는 실용적이고 규범적인 모델로 통합적인 마이크로서비스 아키텍처 구축에 대한 지식을 전한다.
저자 소개
저자 : 로니 미트라(Ronnie Mitra)
25년 이상의 웹 및 연결 기술을 사용한 경험을 가진 전략가이자 컨설턴트. 사람들에게 더 나은 분산 시스템을 설계하도록 지원하고, 전 세계를 돌아다니면서 조직의 인터페이스 설계를 위한 설계 중심 접근법과 애플리케이션 아키텍처에 대한 시스템 중심 접근 방식을 채택하도록 돕고 있다.
『Microservice Architecture』(O’Reilly, 2016) 및 『Continuous API Management, 2nd ed.』(O’Reilly, 2021)를 공저했다.
저자 : 이라클리 나다레이슈빌리(Irakli Nadareishvili)
Capital One에서 Tech Fellows Group의 선임 이사. 마이크로서비스 혁신을 주도하고 있다.
『Microservice Architecture』(O’Reilly, 2016)의 공동 저자이며, 이전에는 NY 기반 의료 기술 스타트업인 ReferWell의 공동 창립자이자 CTO였다. CA 테크놀로지스와 내셔널 퍼블릭 라디오(NPR)에서 기술
리더십 역할을 수행하기도 했다.
역자 : 최경현
SK텔레콤에서 통신 및 플랫폼 인프라 등 다양한 시스템을 운영했으며 현재는 개발 업무를 담당한다. 옮긴 책으로는 『쿠버네티스를 활용한 클라우드 네이티브 데브옵스』(한빛미디어, 2019)가 있다.
목 차
CHAPTER 1 마이크로서비스 아키텍처로의 여정
1.1 마이크로서비스란 무엇인가?
1.2 조정 비용 절감
1.3 실행을 통한 학습
1.4 결정과 결정
1.5 마치며
CHAPTER 2 마이크로서비스 운영 모델 설계
2.1 팀과 사람이 중요한 이유
2.2 팀 토폴리지 소개
2.3 마이크로서비스 팀 토폴로지 설계
2.4 마치며
CHAPTER 3 마이크로 서비스 설계: SEED(S) 프로세스
3.1 서비스 설계의 7가지 본질적 진화: SEED(S) 소개
3.2 액터 식별
3.3 액터가 수행하는 작업 식별
3.4 시퀀스 다이어그램을 사용하여 상호 작용 패턴 발견
3.5 JTBD에서 액션 및 쿼리 도출
3.6 개방형 표준을 사용하여 각 액션 및 쿼리를 스펙으로 설명
3.7 API 사양에 대한 피드백
3.8 마이크로서비스 구현
3.9 마이크로서비스 vs API
3.10 마치며
CHAPTER 4 마이크로서비스의 크기 조정: 서비스 경계
4.1 경계가 중요한 이유와 중요한 시기, 경계를 찾는 방법
4.2 도메인 주도 설계 및 마이크로서비스 경계
4.3 이벤트 스토밍 소개
4.4 범용 크기 조정 공식 소개
4.5 마치며
CHAPTER 5 데이터 처리
5.1 독립적인 배포와 데이터 공유
5.2 데이터를 포함하는 마이크로서비스
5.3 이벤트 소싱과 CQRS
5.4 마이크로서비스 외의 이벤트 소싱과 CQRS 활용
5.5 마치며
CHAPTER 6 인프라 파이프라인 구축
6.1 데브옵스 원칙과 관행
6.2 IaC 환경 설정
6.3 AWS 웹서비스 구성
6.4 IaC 파이프라인 구축
6.5 마치며
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 마치며
CHAPTER 10 마이크로서비스 릴리스
10.1 스테이징 환경 설정
10.2 항공편 정보 컨테이너 게시
10.3 항공편 서비스 컨테이너 배포
10.4 리소스 정리
10.5 마치며
CHAPTER 11 변경 관리
11.1 마이크로시스템에서의 변경
11.2 아키텍처에 대한 검토
11.3 마치며
CHAPTER 12 여정의 끝(그리고 새로운 시작)
12.1 마이크로서비스를 사용한 복잡성 및 단순화
12.2 마이크로서비스 전환 진행률 측정
12.3 마치며
출판사 서평
처음부터 단계별로 살펴보는 마이크로서비스 구축 통합 가이드
마이크로서비스는 최근 대세가 된 클라우드, 데브옵스와 함께 모두가 인정하는 모던 애플리케이션의 필수 요소이다. 하지만 마이크로서비스에 대한 전반적인 지식과 이해 없이 도입부터 시도한 많은 기업과 아키텍트들은 실패를 맛봤다. 저자는 그동안 현업에서 마이크로서비스를 구현하며 얻은 지식과 경험을 이 책에 담았다. 이 책은 팀 설계부터 인프라, 개발, 운영까지 차근차근 단계별로 마이크로서비스의 통합적인 지식을 예제와 그림으로 독자들에게 전한다.
마이크로서비스 아키텍처 구축은 하나의 결과나 목적이 아닌 기나긴 여정이다. 이 책으로 마이크로서비스 구현에 대한 통합적인 관점을 배우고 저자가 강조하는 유연한 사고와 방법을 통해 기나긴 마이크로서비스 구축 여정의 첫 단추를 잘 끼울 수 있길 바란다.
대상 독자
이 책의 대상은 마이크로서비스로 시스템을 구현하는 사람들이다. 마이크로서비스 시스템의 원리와 패턴을 몇 가지 언급하지만, 초점은 실용적인 설계와 엔지니어링에 있다. 마이크로서비스 아키텍처를 구축하는 아키텍트나 엔지니어에게 이 책을 권하고 싶다.
그러나 이 책은 마이크로서비스 구현을 간단히 알아보고 싶은 독자에게도 유용하다. 여러분의 역할이 무엇이든 간에 마이크로서비스 시스템을 구축하는 작업을 이해하고 싶다면 이 책이 도움이 될 것이다.
주요 내용
● 효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습
● 팀 정의 및 팀 책임 및 공동 작업을 위한 가이드라인
● 대용량 애플리케이션을 마이크로서비스로 분할하는 방법
● 인프라 변경을 위한 간단하면서도 강력한 CI/CD 파이프라인 구축
● AWS에서 작동하는 마이크로서비스 애플리케이션 구축