서브메뉴

본문

마이크로서비스 도입, 이렇게 한다 (기업의 유연성과 확장성을 높이는 마이크로서비스 마이그레이션 패턴과 현장 사례)
마이크로서비스 도입, 이렇게 한다 (기업의 유연성과 확장성을 높이는 마이크로서비스 마이그레이션 패턴과 현장 사례)
저자 : 샘 뉴먼 지음|박재호
출판사 : 책만
출판년 : 2021
ISBN : 9791189909253

책소개

모놀리스로 남을 것인가? 마이크로서비스로 진화할 것인가!

23가지 마이크로서비스 마이그레이션 패턴과 수많은 현장 사례를 통해 알아보는,
서두르지 않고 차근차근 모놀리스를 떠나기 위한 마이크로서비스 마이그레이션과 도입에 관한 모든 것!

어떻게 하면 모놀리스 시스템의 엉킴을 풀고 마이크로서비스 아키텍처로 무사히 마이그레이션할 수 있을까? 어떻게 하면 비즈니스를 평상시처럼 운영하면서 안정적으로 마이그레이션할 수 있을까? 이 책은 기존 모놀리스 시스템에서 마이크로서비스 아키텍처로 전환하기 위한 증명된 기법을 상세히 설명한다. 수많은 실제 사례, 통찰력 있는 23가지 마이크로서비스 마이그레이션 패턴, 모놀리스에서 출발해 마이크로서비스 플랫폼으로 전환하기 위한 현실적인 조언 등을 담았으며, 초기 계획부터 애플리케이션과 데이터베이스 분해 과정까지 시종일관 성공적인 마이크로서비스 도입과 마이그레이션을 위한 여러 시나리오와 전략을 소개한다. 이 책에서 여러분은 기존 아키텍처를 마이그레이션하기 위한, 다수의 검증된 패턴과 기법을 배울 수 있다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

| 이 책에서 다루는 내용 |
■ 재구축 대신 마이크로서비스 마이그레이션을 고려하는 조직을 위한 이상적인 해결책
■ 기업이 마이크로서비스 도입에 관한 의사결정을 내리고 마이그레이션 시점을 판단하는 과정에 대한 절차와 조언
■ 커뮤니케이션, 통합, 레거시 시스템 마이그레이션 방법
■ 다양한 마이그레이션의 패턴과 적용 대상
■ 데이터베이스 동기화 전략을 중심으로 보는 데이터베이스 마이그레이션 사례
■ 다양한 아키텍처적인 리팩터링 패턴을 비롯한 애플리케이션 분해
■ 참조 무결성과 트랜잭션 무결성을 망가뜨릴 경우에 발생하는 영향력과 새로운 실패 모드를 비롯한, 데이터베이스 분해와 관련된 세부사항


| 이 책의 구성 |
이 책에서는 기존 시스템을 마이크로서비스 아키텍처로 분해하는 과정에서 어떻게 생각하고 실행할지에 대한 내용을 철저히 분석했다. 우리는 마이크로서비스 아키텍처와 관련된 많은 주제를 살펴볼 것이지만, 초점은 서비스의 분해 측면에 있다. 마이크로서비스 아키텍처에 대한 개괄을 알고 싶다면 나의 전작 『마이크로서비스 아키텍처 구축』 책으로 시작하기 바란다. 실은, 두 책을 함께 읽기를 강력하게 권장한다.

1장 ‘더도 덜도 아닌 딱 마이크로서비스’에는 마이크로서비스가 무엇인지에 대한 개요를 담았으며, 마이크로서비스 아키텍처로 이끈 사상을 자세히 살펴본다. 마이크로서비스를 처음 접하는 사람들이야 꼭 챙겨 읽어야 하지만, 경험이 풍부한 사람들도 1장은 건너뛰지 말기 바란다. 기술의 혼란 속에서, 마이크로서비스의 중요한 핵심 사상이 간혹 간과되는 경우가 있다. 바로 이런 개념을 이 책에서 거듭해서 다룰 것이다.

마이크로서비스를 좀 더 제대로 이해하면 좋으나, 마이크로서비스가 여러분에게 적합한지를 파악하는 것은 전혀 다른 문제다. 2장 ‘마이그레이션 계획하기’에서는 마이크로서비스가 자신에게 적합한지 여부를 평가하는 방법을 알려주며, 모놀리스에서 마이크로서비스 아키텍처로 전환 과정을 관리하는 방법에 대한 매우 중요한 몇 가지 지침을 제공한다. 여기서는 도메인 주도 설계부터 조직 변경 모델에 이르기까지, 심지어 마이크로서비스 아키텍처를 채택하지 않는 경우에도 큰 도움이 되는 중요한 토대를 다룰 것이다.

3장 ‘모놀리스 분할’과 4장 ‘데이터베이스 분해’에서는 모놀리스 분해, 실제 예제 탐색, 마이그레이션 패턴 추출 등과 관련된 기술적 측면을 철저하고 상세하게 살펴본다. 3장에서는 애플리케이션 분해 측면을 집중해서 다루고, 4장에서는 데이터 문제를 매우 상세하게 설명한다. 정말로 모놀리스 시스템에서 마이크로서비스 아키텍처로 이동하기를 원하면, 데이터베이스 일부를 분리해야 할 것이다!

5장 ‘마이크로서비스 도입 과정에서 직면하는 문제와 해법‘에서는 마이크로서비스 아키텍처가 성장함에 따라 여러분이 직면할 문제를 몇 가지 살펴본다. 마이크로서비스 시스템은 장점도 많지만, 이전에는 겪어보지 못한 많은 복잡성과 문제도 따라온다. 5장에서는 마이크로서비스와 관련된 문제가 발생할 때 문제를 발견하는데 도움이 되는 방법, 그리고 마이크로서비스와 관련해 점점 커지는 난관을 해소할 방법을 제공한다.

마지막으로, 한국어판 특별 부록 ‘기술의 진화로 짚어보는 마이크로서비스 도입의 허와 실’을 수록해 목표나 결과가 아닌, 여정으로서 바라보는 마이크로서비스에 관한 통찰을 담았다.

| 이 책의 독자 대상 |
■ 마이크로서비스의 전반적인 개념을 이해하고자 하는 분
■ 모놀리스에서 마이크로서비스 아키텍처로 전환 과정을 알고싶은 분
■ 모놀리스 분해, 마이그레이션 패턴 추출, 데이터베이스 분해 등과 관련된 기술적 측면이 궁금한 분
■ 마이크로서비스 도입 과정에서 직면하는 문제와 해법을 얻고자 하는 분
■ 시스템 배포 및 테스팅, 유지 보수에 관심 있는 IT 업계 종사자
■ 대용량 시스템의 효율적 분산 설계에 관심 있는 기업 CEO 및 경영진

| 이 책에서 다루는 마이크로서비스 마이그레이션 패턴 23가지 |
■ 경계 컨텍스트 단위의 저장소 패턴
■ 공유 데이터베이스 패턴
■ 교살자 무화과 애플리케이션 패턴
■ 다중 스키마 저장소 패턴
■ 데이터베이스 래핑 서비스 패턴
■ 데이터베이스 뷰 패턴
■ 데이터 소유권 변경 패턴
■ 데이터 접근 계층으로 작동하는 모놀리스 패턴
■ 변경 데이터 캡처 패턴
■ 병행 실행 패턴
■ 서비스 인터페이스로서 데이터베이스(DaaS) 인터페이스 패턴
■ 애플리케이션에서 데이터 동기화 패턴
■ 예광탄 기록 패턴
■ 외래 키를 코드로 이동 패턴
■ 전용 참조 데이터 스키마 패턴
■ 정적 참조 데이터 라이브러리 패턴
■ 정적 참조 데이터 서비스 패턴
■ 중복 정적 참조 데이터 패턴
■ 집계를 외부에 공개하는 모놀리스 패턴
■ 추상화에 의한 분기 패턴
■ 테이블 분할 패턴
■ 협업자 데코레이터 패턴
■ UI 컴포지션 패턴
[교보문고에서 제공한 정보입니다.]

목차정보

[1장] 더도 덜도 아닌 딱 마이크로서비스
마이크로서비스란 무엇인가?
__독립적인 배포 가능성
__비즈니스 도메인을 중심으로 하는 모델링
__데이터 소유권 문제
__마이크로서비스의 장점
__마이크로서비스가 야기하는 문제점
__사용자 인터페이스
__기술
__규모
__소유권
모놀리스
__단일 프로세스 모놀리스
__분산 모놀리스
__외부 블랙박스 시스템
__모놀리스의 문제점
__모놀리스의 장점
결합도와 응집력
__응집력
__결합도
더도 덜도 아닌 딱 도메인 주도 설계
__집계
__경계 컨텍스트
__집계와 경계 컨텍스트를 마이크로서비스에 매핑
__더 읽을거리
정리

[2장] 마이그레이션 계획하기
목표 이해하기
__3가지 핵심 질문
왜 마이크로서비스를 선택하려 하는가?
__팀 자율성 향상
__시장 출시 시간 단축
__부하를 다루기 위한 비용 효율적인 확장
__견고성 향상
__개발자 수 늘리기
__신기술 수용
마이크로서비스는 어떤 경우에 나쁜 선택일까?
__불분명한 도메인
__스타트업
__고객 설치형 소프트웨어와 관리형 소프트웨어
__좋은 이유를 못 찾겠다!
균형 조정
사람들과 함께 여정을 떠나다
조직 변화 구현
__위기감 조성
__혁신 추진체 구성
__비전과 전략 수립
__변화 비전 전달
__광범위한 조치를 위한 직원의 자율권 강화
__단기적인 성과 창출
__이익 통합과 더 많은 변화 추구
__혁신 문화의 정립
점진적인 마이그레이션의 중요성
__운영 환경은 중요하다
변화에 드는 비용
__가역적 결정과 비가역적 결정
__실험을 시도해볼 만한 곳
우리가 시작해야 할 지점은?
도메인 주도 설계
__작업 범위를 얼마나 넓게 잡아야 할까?
__이벤트 스토밍
__우선순위 지정을 위한 도메인 모델 사용
결합된 모델
팀 재구성하기
__변화하는 구조
__만병통치약은 없다
__변화 일으키기
__전문 기술 변경하기
전환이 순조로운지 어떻게 확인할까?
__정기 점검 사항
__정량적인 측정
__정성적인 측정
__매몰 비용 오류 방지
__새로운 방식에 마음을 열자
정리

[3장] 모놀리스 분할
모놀리스를 그대로 둘 것인가, 바꿀 것인가?
__잘라 내기, 복사 또는 재구현?
__모놀리스 리팩터링
마이그레이션 패턴
패턴: 교살자 무화과 애플리케이션
__작동 원리
__적용 대상
__사례: HTTP 리버스 프록시
__데이터?
__프록시 옵션
__프로토콜 변경
__사례: FTP
__사례: 메시지 가로채기
__그 밖의 프로토콜
__교살자 무화과 패턴의 다른 예
기능을 마이그레이션하는 동안 동작 방식 변경하기
패턴: UI 컴포지션
__사례: 페이지 컴포지션
__사례: 위젯 컴포지션
__사례: 마이크로 프론트엔드
__적용 대상
패턴: 추상화에 의한 분기
__작동 원리
__대체 메커니즘을 위한 분기 검증
__적용 대상
패턴: 병행 실행
__사례: 신용파생 가격 비교
__사례: 홈게이트 목록
__검증 기법
__스파이 사용
__깃허브 사이언티스트
__어둠의 출시와 카나리아 릴리스
__적용 대상
패턴: 협업자 데코레이터
__사례: 멤버십 프로그램
__적용 대상
패턴: 변경 데이터 캡처
__사례: 멤버십 카드 발급
__변경 데이터 캡처 구현
__적용 대상
정리

[4장] 데이터베이스 분해
패턴: 공유 데이터베이스
__패턴 다루기
__적용 대상
그러나 수행할 수 없다!
패턴: 데이터베이스 뷰
__공개된 계약으로서 데이터베이스
__표현할 뷰
__한계
__소유권
__적용 대상
패턴: 데이터베이스 래핑 서비스
__적용 대상
패턴: 서비스로서 데이터베이스(DaaS) 인터페이스
__매핑 엔진 구현
__뷰와의 비교
__적용 대상
소유권 양도
__패턴: 집계를 외부에 공개하는 모놀리스
__패턴: 데이터 소유권 변경
데이터 동기화
패턴: 애플리케이션에서 데이터 동기화
__1단계: 데이터 대량 동기화
__2단계: 이전 스키마에서 읽고 쓰기를 동기화
__3단계: 새 스키마에서 읽고 쓰기를 동기화
__이 패턴을 사용하는 사례
__적용 대상
패턴: 예광탄 기록
__데이터 동기화
__사례: 스퀘어의 주문 처리
__적용 대상
데이터베이스 분리
__물리적 데이터베이스 분리 vs 논리적 데이터베이스 분리
데이터베이스를 먼저 분할할까, 아니면 코드를 먼저 분할할까?
__데이터베이스를 먼저 분할
__코드를 먼저 분할
__데이터베이스와 코드를 함께 분할
__그렇다면 무엇을 먼저 분할해야 할까?
스키마 분리 사례
패턴: 테이블 분할
__적용 대상
패턴: 외래 키 관계를 코드로 이동
__조인 이동
__데이터 일관성
__적용 대상
__사례: 공유 정적 데이터
트랜잭션
__ACID 트랜잭션
__여전히 ACID이지만 원자성이 부족한가?
__2단계 커밋
__분산 트랜잭션? 그냥 아니라고 말하자
사가 패턴
__사가 실패 모드
__사가 패턴 구현
__사가와 분산 트랜잭션의 비교
정리

[5장] 마이크로서비스 도입 과정에서 직면하는 문제와 해법
서비스가 늘어날수록 고충도 커지게 마련
규모에 맞는 소유권
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
기존 호환성을 깨뜨리는 파괴적 변경
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
리포팅
__문제가 드러나는 시점
__잠재적인 해법
모니터링과 트러블슈팅
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
로컬에서 개발하는 동안 겪는 개발자 경험
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
너무 많은 것들을 실행
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
전 구간 테스트
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
전역 최적화와 지역 최적화 비교
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
견고성과 회복탄력성
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
외톨이 서비스
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
정리

마치면서

부록 A 참고문헌
부록 B 패턴 목록
부록 C 한국어판 특별 부록: 기술의 진화로 짚어보는 마이크로서비스 도입의 허와 실
[교보문고에서 제공한 정보입니다.]