이미 소장하고 있다면 판매해 보세요.
|
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 예외 처리 요약 종합정리: 조언부터 향후 전망까지 핵심 용어집 |
Sam Newman
샘 뉴먼의 다른 상품
정성권의 다른 상품
|
“마이크로서비스 아키텍처는 어떻게 만드는 것인가?”는 현업에서 자주 듣게 되는 질문 중 하나입니다. 이에 대한 정답을 찾기 위해 오랫동안 다양한 노력을 해왔지만 명쾌한 답변을 찾기 어렵습니다. 이는 시장이 계속 변화하면서 설계, 개발, 배포, 테스팅 등 다양한 분야를 넘나들어야 하기 때문입니다.
2017년 초판 출간 후 전면 개정된 『마이크로서비스 아키텍처 구축(전면 개정판)』은 이러한 부분을 충족시킬 만큼 광범위한 기술 주제를 한 권에 담아 설명합니다. 마이크로서비스 아키텍처 구축에 관한 현실적인 문제를 더 구체적이고 깊숙하게 파고들면서, 마이크로서비스 아키텍처 개념을 더 쉽게 이해하고 적용하기 위한 심도 있는 가이드를 제시합니다. 전면 개정판에 추가된 내용 ㆍ마이크로서비스와 관련된 광범위한 개요 설명 및 소프트웨어 배포 프로세스의 측면과 마이크로서비스 아키텍처를 채택함으로써 발생하는 이후 모습까지 설명 ㆍ클라우드 기술 동향에 맞춘 사용자 인터페이스, 쿠버네티스, 컨테이너 오케스테이션, 서버리스 기술에 대한 새로운 정보 제공 ㆍ다양한 마이크로서비스 커뮤니케이션 유형 및 마이크로서비스 간 통신 구현에 필요한 기술 ㆍ사가 및 분산 트랜잭션 비교, 마이크로서비스를 포함한 비즈니스 프로세스 모델링 방법 ㆍ마이크로서비스에서 리포지토리 및 빌드를 매핑하는 방법 ㆍ소프트웨어 개발에 필요한 모니터링, 관찰가능성과 회복 탄력성 ㆍ다양한 마이크로서비스 도입 사례와 사례 연구로 현실적인 마이크로서비스 문제 대상 독자 ㆍMSA를 도입하여 구축(또는 운영 중인)하려고 하는 시스템 아키텍트, 프로그래머, 프로젝트 관리 담당자 ㆍ시스템 배포 및 테스팅, 유지 보수에 관심 있는 IT 업계 종사자 ㆍ대용량 시스템의 효율적 분산 설계에 관심 있는 모든 분 이 책의 구성 1부_기초 1장 마이크로서비스란? 마이크로서비스를 일반적인 관점에서 소개하고 이 책에서 이후 자세히 다룰 여러 주제를 간략히 설명한다. 2장 마이크로서비스 모델링 방법 마이크로서비스에 적합한 경계를 찾는 데 도움이 되는 정보 은닉, 결합, 응집력, 도메인 주도 설계(DDD)와 같은 개념의 중요성을 살펴본다. 3장 모놀리스 분해 기존 모놀리식 애플리케이션을 마이크로서비스로 분해하는 방법에 대한 몇 가지 지침을 제공한다. 4장 마이크로서비스 통신 방식 비동기 호출과 동기 호출, 요청 및 응답, 이벤트 기반의 협업 방식을 비롯한 다양한 종류의 마이크로서비스 통신 방식을 설명한다. 2부_구현 5장 마이크로서비스의 통신 구현 마이크로서비스 간 통신을 구현하는 데 사용되는 특정 기술을 자세히 살펴본다. 6장 워크플로 사가와 분산 트랜잭션을 비교하고 여러 마이크로서비스가 관련된 비즈니스 프로세스를 모델링하는 데 사가가 어느 정도 유용한지 살펴본다. 7장 빌드 마이크로서비스를 리포지터리와 빌드로 매핑하는 것에 대해 설명한다. 8장 배포 컨테이너, 쿠버네티스, FaaS를 살펴보는 등 마이크로서비스의 배포와 관련된 수많은 방법을 설명한다. 9장 테스트 엔드투엔드 테스트로 인해 발생하는 문제를 포함해 마이크로서비스 테스트에 대한 어려움과 소비자 중심 계약 및 운영 중 테스트가 어떻게 도움이 되는지를 논의한다. 10장 모니터링에서 관찰가능성으로 도구와 관련해 구체적으로 추천하면서, 정적 모니터링 활동에 집중하는 것으로부터 마이크로서비스 아키텍처의 관찰가능성을 향상시키는 방법에 대해 보다 광범위한 생각으로 전환하는 것을 다룬다. 11장 보안 마이크로서비스 아키텍처는 공격의 표면 영역을 넓힐 수 있지만 심층적으로 방어할 수 있는 기회도 더 많이 제공한다. 이 장에서는 이러한 균형을 살펴본다. 12장 회복 탄력성 회복 탄력성이란 무엇이고 마이크로서비스가 애플리케이션의 회복 탄력성을 향상시키는 데 어떤 역할을 할 수 있는지를 자세히 살펴본다. 13장 확장 이 장에서는 확장의 네 가지 축을 간략히 설명하고, 이를 조합해 마이크로서비스 아키텍처를 확장하는 방법을 설명한다. 3부_사람 14장 사용자 인터페이스 전담 프론트엔드 팀에서 벗어나는 것에서 BFF와 그래프QL의 사용에 이르기까지 마이크로서비스와 사용자 인터페이스가 어떻게 함께 작동할 수 있는지 살펴본다. 15장 조직 구조 마이크로서비스 아키텍처의 맥락에서 스트림 정렬 팀과 활성화 팀이 어떤 역할을 하는지 설명하는 데 중점을 둔다. 16장 진화하는 아키텍트 마이크로서비스 아키텍처는 고정적이지 않으므로 시스템 아키텍처에 대한 관점을 바꿔야 할수 있다. 이 장에서는 이러한 주제를 심도 있게 다룬다. |
|
마이크로서비스 아키텍처는 매력적인 특징이 많지만, 마이크로서비스 아키텍처로로 향하는 길에서 주의하지 않는다면 고통스러운 함정에 맞닥뜨리게 된다. 이 책은 여러분에게 적합한 길과 그 여정에서 함정을 피하는 방법을 파악하는 데 도움이 될 것이다. - 마틴 파울러 (『리팩토링 2판』 저자 / 소트웍스 수석 과학자)
|
|
마이크로서비스의 모든 것을 다루는 완벽 가이드로 광범위한 주제를 훌륭하게 다루고 있다. - 다니엘 브라이언트 (앰버서더 랩스 DevRel 디렉터)
|
|
마이크로서비스 아키텍처를 성공적으로 도입하는 데 필요한 포괄적이고 실용적인 가이드다. 이 책은 올바른 결정을 내리기 위해 알아야 할 사항을 정확하게 설명한다. - 사라 웰스 (파이낸셜 타임즈 엔지니어링 지원 기술 디렉터)
|
|
이 책의 저자는 오랜 경험을 바탕으로 마이크로서비스 아키텍처에 대한 통찰력을 잘 풀어 냈다. 개념 이해뿐만 아니라 실제로 잘 설계된 마이크로서비스 아키텍처 예제를 포함하여 데브옵스나 자동화와 같은 다양한 주제를 다루며, 적절한 접근 방식으로 바람직한 시각을 제시한다. 이러한 경험자의 조언, 기업과 조직 관점의 접근을 통해 마이크로서비스 아키텍처 구축 시 고려해야 하는 접근 방법과 놓치기 쉬운 관점을 다시 한번 생각하게 해준다. 마이크로서비스 아키텍처뿐만 아니라 더 나은 소프트웨어 아키텍처를 고민하는 모든 이들에게 추천한다. - 정영준 (AWS 컨테이너 스페셜리스트 )
|
|
마이크로서비스 아키텍처를 도입하고자 고민하고 있다면 당장 이 책을 읽어 볼 것을 추천한다. 마이크로서비스를 도입하려는 목적과 해결 방법에 가까운 아키텍처와 조직구조를 만들고자 한다면 체계적으로 생각을 정리하는데 이 책이 매우 도움 될 것이다. 마이크로서비스 구조는 한번 만들고 나면 끝이 아니라 계속 변화하는 것에 대응하는 것이 가장 중요하다. 기존 서비스를 분해하여 마이크로 서비스 구조로 이관하고 계속 변화시키기 위해서 어떤 부분을 고려해야 할지 궁금하다면, 이 책을 끝까지 읽어 보는 것을 추천한다. - 신영필 (쿠팡페이 엔지니어링 디렉터)
|
|
이 책을 읽는 내내 MSA에 대한 파편화된 지식이 하나씩 정리되면서 퍼즐 조각이 맞춰지는 듯한 느낌이 들었다. 전면 개정판은 초판보다 현실적인 문제를 더 구체적이고 깊숙하게 파고들었고, 역자의 경험이 함께 어우러져 더 깊이 있고 풍부한 지식을 전달하고자 했다. 현업에서 마이크로서비스로 인한 여러 가지 고민을 하는 분들에게 많은 인사이트를 줄 것이며, 개발자의 성장에 필요한 기반 지식을 폭넓게 쌓아 주리라 생각한다. - 신정호 (LGU+ 아이들나라 CTO )
|