서브메뉴

본문

마스터링 분산 추적 (마이크로서비스 기반 아키텍처의 성능 분석과 관리를 위한 분산 트레이싱)
마스터링 분산 추적 (마이크로서비스 기반 아키텍처의 성능 분석과 관리를 위한 분산 트레이싱)
저자 : 유리 슈쿠로
출판사 : 위키북스
출판년 : 2020
ISBN : 9791158391959

책소개

《마스터링 분산 추적》은 자체 추적 인프라를 운영하고 향상시키는 데 도움을 줄 것이다. 실습과 코드 예제를 통해 종단 간 추적을 강력한 애플리케이션 성능 관리 및 이해 도구로 사용하는 방법을 배운다.

구글(Google) 및 아마존(Amazon)과 같은 대규모 인터넷 회사의 성장은 여러 데이터 센터에 걸쳐있는 수천 개의 노드에서 운영되는 분산 시스템의 새로운 시대를 열었다. 또한 마이크로서비스는 그 복잡성을 기하급수적으로 증가시켰다. 이러한 시스템을 디버깅하거나 장애를 추적하거나 병목 현상을 감지하는 것은 쉽지 않으며, 단순히 무슨 일이 일어나고 있는지조차 이해하기 어렵다. ‘분산 추적’은 복잡한 분산 시스템에서 이러한 문제를 해결하는 데 중점을 둔다. 현재 추적 표준이 개발됐고, 덕분에 계측하는 데 덜 방해되고 데이터를 더 가치 있게 만드는 더 빠른 시스템을 갖게 됐다.

널리 사용되는 오픈소스 분산 추적 시스템인 예거(Jaeger)의 창립자인 유리 슈쿠로(Yuri Shkuro)는 《마스터링 분산 추적》에서 이 분야의 모든 면을 다룬다. 또한 추적의 역사와 이론적 토대를 검토하고, 오픈트레이싱(OpenTracing), W3C 추적 컨텍스트(Trace Context), 오픈센서스(OpenCensus)와 같은 개방형 표준으로 코드 계측을 통해 데이터 수집 문제를 해결하며, 복잡한 시스템을 이해하고 프로파일링하기 위한 분산 추적 인프라의 장점과 그 응용에 관해 논의한다.

★ 이 책에서 다루는 내용 ★

◎ 분산 추적 시스템을 처음 사용하는 방법
◎ 종단 간 추적에서 최대 가치를 얻는 방법
◎ 분산 추적 분야의 개방형 표준
◎ 코드 계측 및 추적 인프라 운영
◎ 분산 추적이 핵심 기능으로서 마이크로서비스의 어느 부분에 적합한지 학습
[교보문고에서 제공한 정보입니다.]

출판사 서평

《마스터링 분산 추적》은 자체 추적 인프라를 운영하고 향상시키는 데 도움을 줄 것이다. 실습과 코드 예제를 통해 종단 간 추적을 강력한 애플리케이션 성능 관리 및 이해 도구로 사용하는 방법을 배운다.



구글(Google) 및 아마존(Amazon)과 같은 대규모 인터넷 회사의 성장은 여러 데이터 센터에 걸쳐있는 수천 개의 노드에서 운영되는 분산 시스템의 새로운 시대를 열었다. 또한 마이크로서비스는 그 복잡성을 기하급수적으로 증가시켰다. 이러한 시스템을 디버깅하거나 장애를 추적하거나 병목 현상을 감지하는 것은 쉽지 않으며, 단순히 무슨 일이 일어나고 있는지조차 이해하기 어렵다. '분산 추적'은 복잡한 분산 시스템에서 이러한 문제를 해결하는 데 중점을 둔다. 현재 추적 표준이 개발됐고, 덕분에 계측하는 데 덜 방해되고 데이터를 더 가치 있게 만드는 더 빠른 시스템을 갖게 됐다.



널리 사용되는 오픈소스 분산 추적 시스템인 예거(Jaeger)의 창립자인 유리 슈쿠로(Yuri Shkuro)는 《마스터링 분산 추적》에서 이 분야의 모든 면을 다룬다. 또한 추적의 역사와 이론적 토대를 검토하고, 오픈트레이싱(OpenTracing), W3C 추적 컨텍스트(Trace Context), 오픈센서스(OpenCensus)와 같은 개방형 표준으로 코드 계측을 통해 데이터 수집 문제를 해결하며, 복잡한 시스템을 이해하고 프로파일링하기 위한 분산 추적 인프라의 장점과 그 응용에 관해 논의한다.



★ 이 책에서 다루는 내용 ★



◎ 분산 추적 시스템을 처음 사용하는 방법

◎ 종단 간 추적에서 최대 가치를 얻는 방법

◎ 분산 추적 분야의 개방형 표준

◎ 코드 계측 및 추적 인프라 운영

◎ 분산 추적이 핵심 기능으로서 마이크로서비스의 어느 부분에 적합한지 학습
[알라딘에서 제공한 정보입니다.]

목차정보

[1부] 들어가는 말



▣ 1장: 왜 분산 추적인가?

마이크로서비스와 클라우드 네이티브 애플리케이션

관찰성이란 무엇인가?

마이크로서비스의 관찰성 문제

기존 모니터링 도구

지표

로그

분산 추적

추적에 대한 개인적 경험

이 책을 쓴 이유

정리

참고 자료



▣ 02장: HotROD 승차 추적하기

사전 요구사항

__미리 패키징된 바이너리에서 실행

__도커 이미지로 실행

__소스코드로 실행

예거 시작

HotROD와의 만남

아키텍처

데이터 흐름

문맥이 있는 로그

스팬 태그 대 로그

지연 시간의 원인 파악

자원 사용량 귀속

정리

참고 자료



▣ 3장: 분산 추적의 핵심

아이디어

요청 상관관계

__블랙박스 추론

__스키마 기반

__메타데이터 전파

분산 추적의 내부 구조

샘플링

인과관계 보존

__요청 간 인과관계

추적 모델

__이벤트 모델

__스팬 모델

시간 차이 조정

추적 분석

정리

참고 자료



[2부] 데이터 수집 문제



▣ 04장: 오픈트레이싱을 이용한 계측 기초

사전 요구사항

__프로젝트 소스코드

__Go 개발환경

__자바 개발환경

__파이썬 개발환경

__MySQL 데이터베이스

__쿼리 도구(curl 또는 wget)

__추적 백엔드(예거)

오픈트레이싱

실습 1: Hello 애플리케이션

__Go로 작성한 Hello 애플리케이션

__자바로 작성한 Hello 애플리케이션

__파이썬으로 작성한 Hello 애플리케이션

__실습 정리

실습 2: 첫 번째 추적

__1단계: 트레이서 인스턴스 생성

__2단계: 스팬 시작

__3단계: 스팬에 주석 달기

__실습 정리

실습 3: 함수 추적과 컨텍스트 전달

__1단계: 개별 함수 추적

__2단계: 복수 스팬을 단일 추적으로 결합

__3단계: 프로세스 내 컨텍스트 전파

__실습 정리

실습 4: RPC 요청 추적

__1단계: 단일 아키텍처 분해

__2단계: 프로세스 간 컨텍스트 전달

__3단계: 오픈트레이싱 추천 태그 적용

__실습 정리

실습 5: 배기지 사용

__Go에서 배기지 사용하기

__자바에서 배기지 사용하기

__파이썬에서 배기지 사용하기

__실습 정리

실습 6: 자동 계측

__Go를 이용한 오픈소스 계측

__자바를 이용한 자동 계측

__파이썬을 이용한 자동 계측

실습 7: 추가 혜택

정리

참고 자료



▣ 05장: 비동기 애플리케이션의 계측

사전 요구사항

__프로젝트 소스코드

__자바 개발 환경

__카프카, 주키퍼, 레디스, 예거

Tracing Talk 채팅 애플리케이션

__구현

__애플리케이션 실행

__추적 관찰

오픈트레이싱을 사용한 계측

__스프링 계측

__트레이서 리졸버

__레디스 계측

__카프카 계측

비동기 코드 계측하기

정리

참고 자료



▣ 06장: 추적 표준과 에코시스템

계측 스타일

배포 및 상호 운용성 추적의 내부

추적의 다섯 가지 그림자

대상 파악

에코시스템

__추적 시스템

__X-Ray, 스택드라이버, 기타 도구

__표준 프로젝트

정리

참고 자료



▣ 07장: 서비스 메시를 이용한 추적

서비스 메시

서비스 메시를 통한 관찰성

사전 준비 사항

__프로젝트 소스코드

__자바 개발 환경

__쿠버네티스

__이스티오

Hello 애플리케이션

이스티오를 이용한 분산 추적

이스티오를 이용한 서비스 그래프 생성

분산 컨텍스트와 라우팅

정리

참고 자료



▣ 08장: 샘플링의 모든 것

헤드 기반의 일관된 샘플링

__확률적 샘플링

__속도 제한 샘플링

__처리량 보장 확률적 샘플링

__적응형 샘플링

__컨텍스트-맞춤형 샘플링

__애드혹 샘플링과 디버그 샘플링

__오버샘플링 처리 방법

테일 기반의 일관성 있는 샘플링

부분 샘플링

정리

참고 자료



[3부] 추적에서 가치 얻기



▣ 09장: 등불 켜기

지식 기반으로서의 추적

서비스 그래프

__깊이 있는 경로 인지형 서비스 그래프

__아키텍처상의 문제점 탐지

성능 분석

__임계 경로 분석

__추적 패턴의 인식

__모범 사례

__지연 시간 히스토그램

롱텀 프로파일링

정리

참고 자료



▣ 10장: 분산 컨텍스트 전파

브라운 추적 플레인

피벗 추적

카오스 엔지니어링

트래픽 레이블링

__운영 환경에서 테스트하기

__운영 환경에서 디버깅하기

__운영 환경에서 개발하기

정리

참고 자료



▣ 11장: 메트릭과 로그의 통합

관찰성의 세 가지 구성 요소

준비사항

__프로젝트 소스코드

__자바 개발 환경

__도커에서 서버 실행하기

__키바나에서 인덱스 패턴 선언하기

__클라이언트 실행하기

Hello 애플리케이션

메트릭과의 통합

__추적 계측을 통한 표준 메트릭

__메트릭에 컨텍스트 추가하기

__컨텍스트 인지 메트릭 API

로그와의 통합

__정형 로그

__추적 컨텍스트와 로그의 연동

__컨텍스트 인지 로깅 API

__추적 시스템에서 로그 캡처하기

__로깅과 추적 백엔드를 분리해야 할까?

정리

참고 자료



▣ 12장: 데이터 마이닝을 이용한 통찰

피처 추출

데이터 마이닝 파이프라인의 구성 요소

__추적 백엔드

__추적 완료 트리거

__피처 추출기

집계 연산기

피처 추출 예제

준비사항

__프로젝트 소스코드

__도커에서 서버 실행하기

__엘라스틱서치에서 인덱스 매핑 정의하기

__자바 개발 환경

__마이크로서비스 시뮬레이터

__키바나에서 인덱스 패턴 정의하기

스팬 카운트 잡

__추적 완료 트리거

__피처 추출기

트렌드 관측

__외삽법 계산에 주의하라

이력 분석

임시(Ad-hoc) 분석

정리

참고 자료



[4부] 추적 인프라의 배포와 운영



▣ 13장: 대규모 조직에서의 추적 구현

추적 계측의 배포가 어려운 이유

도입장벽을 낮춰라

__표준 프레임워크

__인하우스 어댑터 라이브러리

__기본으로 활성화된 추적

__모노리포

__기존 인프라와의 통합

어디서부터 시작할까?

문화 조성

__가치 설명하기

__개발자 워크플로와의 통합

TQM: 추적 품질 메트릭

문제 해결 가이드

임계 경로를 피하라

정리

참고 자료



▣ 14장: 분산 추적 시스템의 내부 구조

왜 직접 호스팅하는가?

__사용자 맞춤형 작업 통합

__대역폭 비용

__데이터 소유

최신 표준에 투자하라

아키텍처와 배포 모드

__기본 아키텍처: 에이전트 + 수집기 + 쿼리 서비스

__스트리밍 아키텍처

__멀티테넌시

__보안

__여러 데이터센터에서 실행

모니터링 및 문제 해결

탄력성

__오버-샘플링

__추적 디버깅

__데이터센터 페일오버로 인한 급격한 트래픽 증가

__끊임없이 계속되는 추적

__매우 긴 추적

정리

참고 자료



▣ 맺음말



▣ 참고 자료
[알라딘에서 제공한 정보입니다.]

QuickMenu

  • TOP