메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

이벤트 기반 마이크로서비스 구축

대규모 조직 데이터를 활용하는 기법

한빛미디어

번역서

판매중

  • 저자 : 애덤 벨메어
  • 번역 : 이일웅
  • 출간 : 2021-05-01
  • 페이지 : 380 쪽
  • ISBN : 9791162244173
  • 물류코드 :10417
초급 초중급 중급 중고급 고급
5점 (1명)
좋아요 : 1

실시간 데이터 활용을 위한 새로운 시스템 아키텍처 가이드

 

이벤트 기반 마이크로서비스 아키텍처를 소개하는 실무 개론서다. 구조, 통신, 통합, 배포 등 기본 개념을 그림과 함께 구체적으로 설명한다. 따라서 이벤트 기반 시스템 구축 방식을 마이크로서비스로 전환하고자 하는 입문 개발자도 쉽게 읽을 수 있다. 넷플릭스, 링크드인, 스포티파이, 우버 등 세계 IT 기업들이 도입한 실제 데이터 사용법과 서비스 접근법을 익혀보자.

 

 

추천사

 

확장을 관리하고 복잡도를 길들이는 인싸들만의 비결!

_스콧 모리슨, PHEMI Systems 최고 기술 책임자(CTO)

 

이벤트 기반 시스템에 관심 있는 모든 이에게 알짜배기 정보다. 이 책이 나오길 손꼽아 기다렸다!

_벤 스토퍼드, 컨플루언트 수석 기술자, 『Designing Event-Driven Systems』 저자

저자

애덤 벨메어

2020년부터 쇼피파이(Shopify) 데이터 플랫폼팀에 합류한 선임 엔지니어. 2020년 전에는 플립(Flipp)과 블랙베리(BlackBerry)에서 소프트웨어 개발자로 근무하며 이벤트 기반 시스템에 처음 눈을 뜨게 됐다. 데브옵스(카프카, 스파크, 메소스, 쿠버네티스, 솔라, 일래스틱서치, HBase, 주키퍼 클러스터, 프로그램식 구축/확장/모니터링) 분야의 전문가로서 기술 리더십(회사가 데이터 통신 레이어를 구축하고, 기존 시스템과 연계하고, 새로운 시스템을 개발하고, 제품을 전달하는 일에 집중하도록 지원), 소프트웨어 개발(빔, 스파크, 카프카 스트림즈 라이브러리를 이용하여 자바/스칼라 언어로 이벤트 기반 마이크로서비스 구축), 데이터 엔지니어링(사용자 기기에서 행동 기반 데이터를 수집하여 조직 내부에 공유) 분야에 많은 노하우를 갖고 있다.

역자

이일웅

현재 국내 통신사의 차세대 프로젝트에서 카프카 담당 소프트웨어 아키텍트로 일한다. 2~3년 전부터 이벤트 기반의 마이크로서비스 아키텍처 설계에 많은 관심을 갖게 되었으며, 카프카 기술에도 관심이 많아 콘플루언트 인증 아파치 카프카 개발자/관리자(CCDAK, CCAAK) 자격을 취득했다. 십수 년간 다양한 엔터프라이즈 프로젝트 현장을 누벼왔고 이제는 어느덧 중년 아재가 되었지만, 아직도 코드와 씨름하며 열정적인 기술자로서 활동 중인 두 딸의 아빠다. 

CHAPTER 1 왜 이벤트 기반 마이크로서비스인가?

__1.1 이벤트 기반 마이크로서비스란?

__1.2 도메인 주도 설계와 경계 콘텍스트

__1.3 통신 구조

__1.4 기존 컴퓨팅의 통신 구조

__1.5 이벤트 기반 통신 구조

__1.6 비동기식 이벤트 기반 마이크로서비스

__1.7 동기식 마이크로서비스

__1.8 마치며

 

CHAPTER 2 이벤트 기반 마이크로서비스 기초

__2.1 토폴로지 구성

__2.2 이벤트 콘텐츠

__2.3 이벤트 구조

__2.4 엔티티 이벤트에서 상태를 구체화

__2.5 이벤트 데이터 정의와 스키마

__2.6 마이크로서비스 단일 작성자 원칙

__2.7 마이크로서비스를 이벤트 브로커로 강화

__2.8 이벤트 브로커 대 메시지 브로커

__2.9 대규모 마이크로서비스 관리

__2.10 마이크로서비스 세금 납부

__2.11 마치며

 

CHAPTER 3 통신 및 데이터 규약

__3.1 이벤트 기반 데이터 규약

__3.2 이벤트 포맷 선택

__3.3 이벤트 설계

__3.4 마치며

 

CHAPTER 4 기존 시스템에 이벤트 기반 아키텍처 통합

__4.1 데이터 해방이란?

__4.2 데이터 해방 패턴

__4.3 데이터 해방 프레임워크

__4.4 쿼리로 데이터 해방

__4.5 CDC 로그로 데이터 해방

__4.6 아웃박스 테이블로 데이터 해방

__4.7 데이터 정의 변경을 캡처 대상 데이터 세트로

__4.8 이벤트 데이터를 데이터 저장소에 싱킹

__4.9 싱킹과 소싱의 비즈니스 영향도

__4.10 마치며

 

CHAPTER 5 이벤트 기반 처리 기본

__5.1 상태 비저장 토폴로지 구성

__5.2 이벤트 스트림 리파티션

__5.3 이벤트 스트림 코파티션

__5.4 컨슈머 인스턴스에 파티션 할당

__5.5 상태 비저장 처리 인스턴스 실패 복구

__5.6 마치며

 

CHAPTER 6 확정적 스트림 처리

__6.1 이벤트 기반 워크플로의 확정성

__6.2 타임스탬프

__6.3 이벤트 스케줄링과 확정적 처리

__6.4 워터마크

__6.5 스트림 시간

__6.6 비순차 이벤트와 지각 이벤트

__6.7 지각 이벤트 처리

__6.8 재처리 대 준실시간 처리

__6.9 간헐적 실패와 지각 이벤트

__6.10 프로듀서/이벤트 브로커 연결 문제

__6.11 마치며(더 읽을거리)

 

CHAPTER 7 상태 저장 스트리밍

__7.1 상태 저장소, 이벤트 스트림에서 상태 구체화

__7.2 체인지로그 이벤트 스트림에 상태 기록

__7.3 내부 상태 저장소에 상태 구체화

__7.4 외부 상태 저장소에 상태 구체화

__7.5 재구성 대 상태 저장소 마이그레이션

__7.6 트랜잭션과 실제로 한 번 처리

__7.7 마치며

 

CHAPTER 8 마이크로서비스 워크플로 구축

__8.1 코레오그래피 패턴

__8.2 오케스트레이션 패턴

__8.3 분산 트랜잭션

__8.4 보상 워크플로

__8.5 마치며

 

CHAPTER 9 FaaS 응용 마이크로서비스

__9.1 함수 기반 솔루션을 마이크로서비스로 설계

__9.2 FaaS 공급자 선택

__9.3 함수를 마이크로서비스로 개발

__9.4 콜드 스타트, 웜 스타트

__9.5 트리거로 함수 시동

__9.6 비즈니스 업무를 함수로 처리

__9.7 상태 관리

__9.8 함수에서 다른 함수 호출

__9.9 종료 및 중단

__9.10 함수 튜닝

__9.11 FaaS 솔루션 확장

__9.12 마치며

 

CHAPTER 10 기본 프로듀서/컨슈머 마이크로서비스

__10.1 BPC의 알맞은 용도는?

__10.2 하이브리드 BPC 애플리케이션으로 외부 스트리밍을 처리

__10.3 마치며

 

CHAPTER 11 대용량 프레임워크 마이크로서비스

__11.1 대용량 프레임워크의 간략한 역사

__11.2 대용량 프레임워크의 내부 작동 원리

__11.3 장점 및 제약

__11.4 클러스터 구성 옵션과 실행 모드

__11.5 애플리케이션 제출 모드

__11.6 상태 처리와 체크포인트 활용

__11.7 애플리케이션 확장과 이벤트 스트림 파티션 처리

__11.8 실패 복구

__11.9 멀티테넌시 이슈

__11.10 언어 및 구문

__11.11 프레임워크 선택

__11.12 예제: 클릭 및 뷰의 세션 윈도잉

__11.13 마치며

 

CHAPTER 12 경량 프레임워크 마이크로서비스

__12.1 장점 및 제약

__12.2 경량 처리

__12.3 상태 처리와 체인지로그 활용

__12.4 애플리케이션 확장과 실패 복구

__12.5 경량 프레임워크 선택

__12.6 언어 및 구문

__12.7 스트림-테이블-테이블 조인: 강화 패턴

__12.8 마치며

 

CHAPTER 13 이벤트 기반 마이크로서비스와 요청-응답 마이크로서비스의 통합

__13.1 외부 이벤트 처리

__13.2 자율적으로 생성된 분석 이벤트 처리

__13.3 서드파티 요청-응답 API 연계

__13.4 상태 저장 데이터 처리 및 서비스

__13.5 이벤트 기반 워크플로 내에서 요청 처리

__13.6 요청-응답 애플리케이션과 마이크로프런트엔드

__13.7 마이크로프런트엔드의 장점

__13.8 마이크로프런트엔드의 단점

__13.9 마치며

 

CHAPTER 14 지원 도구

__14.1 마이크로서비스-팀 배정 시스템

__14.2 이벤트 스트림 생성/변경

__14.3 이벤트 스트림 메타데이터 태깅

__14.4 쿼터

__14.5 스키마 레지스트리

__14.6 스키마 생성/변경 알림

__14.7 오프셋 관리

__14.8 이벤트 스트림 권한과 ACL

__14.9 상태 관리와 애플리케이션 리셋

__14.10 컨슈머 오프셋 랙 모니터링

__14.11 마이크로서비스 생성 프로세스 간소화

__14.12 컨테이너 관리 서비스

__14.13 클러스터 생성과 관리

__14.14 디펜던시 추적과 토폴로지 시각화

__14.15 마치며

 

CHAPTER 15 이벤트 기반 마이크로서비스 테스트

__15.1 일반 테스트 원칙

__15.2 단위 테스트 토폴로지 함수

__15.3 토폴로지 테스트

__15.4 스키마 진화와 호환성 테스트

__15.5 이벤트 기반 마이크로서비스의 통합 테스트

__15.6 로컬 통합 테스트

__15.7 완전 원격 통합 테스트

__15.8 완전 원격 통합 테스트 전략 선택

__15.9 마치며

 

CHAPTER 16 이벤트 기반 마이크로서비스 배포

__16.1 마이크로서비스 배포 원칙

__16.2 마이크로서비스 배포 아키텍처 컴포넌트

__16.3 기본 풀-스톱 배포 패턴

__16.4 롤링 업데이트 패턴

__16.5 중대한 스키마 변경 패턴

__16.6 블루-그린 배포 패턴

__16.7 마치며

 

CHAPTER 17 총정리

__17.1 통신 레이어

__17.2 비즈니스 도메인과 경계 콘텍스트

__17.3 공용 도구와 인프라

__17.4 스키마화 이벤트

__17.5 데이터 해방, 단일 진실 공급원

__17.6 마이크로서비스

__17.7 마이크로서비스 구현 옵션

__17.8 테스트

__17.9 배포

 

맺음말

이벤트 기반 마이크로서비스를 실무에 도입하려는 입문자를 위한 실용적인 가이드북 

 

오늘날 조직은 다양한 요구 사항과 계속 증가하는 데이터로 인해 어려움을 겪는다. 특히, 실시간 데이터 활용에 대한 수요가 증가하고 있어, 새로운 시스템 아키텍처 도입이 절실하게 요구된다. 이 책은 대규모 조직 데이터를 처리하기 위해 이벤트 기반 마이크로서비스로 전환하려는 실무 입문자를 위한 실용적인 가이드북이다. 이벤트 기반 마이크로서비스 구축 방법, 적합한 애플리케이션 패턴, 도입 시 필요한 구성 요소와 도구, 일반 마이크로서비스와의 차이점 등을 친절하게 안내하고 본인의 환경에 맞는 비즈니스 기능에 집중할 수 있는 토대를 갖추도록 돕는다. 대용량 데이터를 다루는 환경에서 기존의 데이터베이스로 데이터를 처리하려면, 여러 가지 어려움과 한계점에 맞딱뜨리기 쉽다. 이 책에서 소개하는 알짜배기 정보를 활용하면 이벤트 기반 시스템의 여러 문제를 연구하고 해결할 수 있다.

  • 통신 레이어
  • 비즈니스 도메인과 경계 콘텍스트
  • 공용 도구와 인프라
  • 스키마화 이벤트
  • 데이터 해방, 단일 진실 공급원
  • 마이크로서비스 구현 옵션
  • 테스트
  • 배포

  •  

    Microservice architecture는 이미 널리 쓰이고 있다. 개인적으로 기록하는 노트를 보니 microservice에 대해 처음으로 기록한 게 2017년 12월이었다. 새로운 기술을 유용하다고 판단하면 짧은 시간에 많은 회사들이 뛰어들어 채택하고 성과를 내거나 실패한다. 성공이 더 많으면 더 확산되고 또 하나의 defacto standard가 된다. 동기식microservice는 이미 그렇게 되었다. 하지만 이전의 많은 표준들이 그렇듯 장점과 함께 단점을 가지고 있고, 그 단점을 해결하기 위해 event-driven microservice가 나왔다.

    Microservice는 말 그대로 service를 micro하게 나눴다. 하나의 service는 그 자체로 완결되어야 한다. 각 service끼리는 최소한의 필요한 정보를 주고받으면 되고, data는 각 service의 DB에 저장된다. 각 service의 성격에 따라 RDB나 nosql이나 필요한 최적의 storage를 선택하면 된다. 하지만 실제 product에서는 이렇게 이상적으로 loosely coupled service를 만드는 건 매우 힘든 일이다. 여러 종류의 DB를 쓰면 DBA가 관리하기 어려울 수도 있고 최적의 환경을 만들기 불가능할 수도 있다. 트랜잭션이 어렵거나 불가능할 수 있고, join을 할 수 없으니 각 data를 통합해서 보기 위해 application에서 처리를 해야 하거나 서로 다른 DB에 중복 저장해야 할 수도 있다.

    이 책은 event-driven microservice의 기초부터 기존 서비스와의 통합, 지원 도구나 테스트 배포까지 전반적인 모든 부분을 설명한다. 다만 책에서도 설명하듯이, 또 언제나 그렇듯 event-driven microservice 역시 silver bullet은 아니다. 데이터 트랜잭션을 DBMS가 아니라 application에서 처리하기 때문에 분산 환경에서 트랜잭션을 처리할 수 있고, 각 service는 성격에 맞는 최적의 DB를 선택할 수 있지만, 그만큼 application에서 신경써야 하는 일이 늘어난다. 동기식 microservice는 일관된 commit이나 rollback을 할 수 없지만, event-driven microservice는 해당 event를 발행해서 실패한 service부터 requeue나 dead letter queue 기능을 사용해 retry를 할 수 있다. 하지만 그만큼 실시간성은 떨어질 수밖에 없고 그래서 eventual이라는 용어를 사용하게 된다. Message queue를 사용해 loosely coupled service를 구현할 수 있고 서비스 흐름을 단순화시킬 수 있으나 message 전달의 신뢰성 문제가 발생할 수 있다. 즉 언제나 그렇듯 비즈니스 요구사항과 개인/조직의 역량에 따라 architecture 설계가 필요하다. Oreilly의 책이 언제나 그렇듯 읽어서 바로 적용할 수 있는 설명보다는 좀 더 기본에 가까운 설명을 하기에 바로 이해하기 어려울 수 있지만 이 책을 여러 번 읽으면 event-driven microservice를 이해하는데 큰 도움이 될 거 같다.

    • 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

결재하기
• 문화비 소득공제 가능

배송료 안내

  • 책, 아이템 등 상품을 1만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
이벤트 기반 마이크로서비스 구축
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
이벤트 기반 마이크로서비스 구축
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
이벤트 기반 마이크로서비스 구축
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실