장바구니 담기 close

장바구니에 상품을 담았습니다.

데이터베이스 신뢰성 엔지니어링

데이터베이스 신뢰성 엔지니어링

  • 레인 캠벨
  • |
  • 에이콘출판
  • |
  • 2023-02-28 출간
  • |
  • 420페이지
  • |
  • 188 X 235 X 24mm
  • |
  • ISBN 9791161757261
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◈ 이 책에서 다루는 내용 ◈

◆ 서비스 레벨 요구사항과 위험 관리
◆ 운영 가시성을 위한 아키텍처 구축 및 진화
◆ 인프라 엔지니어링 및 관리
◆ 릴리스 프로세스를 원활하게 수행하는 방법
◆ 데이터 저장, 인덱싱, 복제
◆ 데이터 스토어의 특성 식별과 모범 사례
◆ 데이터 스토어 아키텍처의 구성 요소와 데이터 기반의 아키텍처

◈ 이 책의 대상 독자 ◈

데이터 스토어의 설계, 구축, 안정적인 운영에 흥미가 있는 모든 사람을 대상으로 한다. 독자는 데이터베이스의 지식을 넓히려고 하는 소프트웨어 엔지니어 혹은 같은 이유를 가진 시스템 엔지니어일 수도 있다. 스킬 향상을 원하는 데이터베이스 전문가라면 여기서 가치를 발견할 것이고, 이 업계에 새로 들어온 사람이라면 확실한 이해를 줄 수 있을 것이다.

◈ 이 책의 구성 ◈

1장은 데이터베이스 신뢰성 엔지니어링(database reliability engineering)의 개념을 소개한다. 원칙을 안내하는 것에서 출발해 운영 중심부로 넘어가고 마지막으로 매슬로우의 욕구 계층(Maslow’s hierarchy of needs)을 기반으로 DBRE의 비전을 구축하기 위한 프레임워크를 제시한다.
2장에서는 서비스 수준 요구 사항(service level requirements)을 설명한다. 이는 제품을 위한 기능 요구 사항만큼이나 중요하다. 이 장은 서비스 수준 요구 사항이 무엇이고 어떻게 그것을 정의하는지 알아본다. 이후에는 이러한 요구 사항을 측정하고 처리하는 방법을 살펴본다.
3장에서는 위험 평가와 관리(risk assessment and management)를 알아본다. 위험의 기초적인 측면을 설명하고 난 후 시스템 및 데이터베이스 엔지니어링에 위험 평가를 접목시키기 위한 실전 프로세스를 살펴본다. 또한 함정과 복잡성도 살펴본다.
4장에서는 운영 가시성(operational visibility)을 다룬다. 지표(metric)와 이벤트를 이야기하고 이를 측정하기 위한 계획을 어떻게 세우는지, 시간이 지남에 따른 반복 작업은 어떤 게 있는지 알아본다. 그리고 모니터링 시스템의 구성 요소와 이를 사용하는 클라이언트를 파헤친다.
5장과 6장에서는 인프라의 엔지니어링과 관리(infrastructure engineering and management)를 자세히 살펴본다. 데이터 스토어를 위한 호스트 구축 원칙을 설명하고 가상화와 컨테이너, 환경설정 관리, 자동화와 오케스트레이션(orchestration)을 살펴본다. 이는 데이터를 저장하고 접근하는 시스템을 구축하고자 구동되는 모든 부분을 이해할 수 있게 도와준다.
7장에서는 백업과 복구(backup and recovery)를 다룬다. DBE를 마스터로 향하게 하는 가장 중요한 부분일 것이다. 데이터는 유실하게 되면 게임 끝이다. 서비스 수준 요구 사항에서 출발해 적절한 백업과 복구 방법을 평가하고, 어떻게 확장하는지 그리고 어떻게 이처럼 중요한 부분과 자주 간과하기 쉬운 운영 측면을 테스트하는지 평가한다.
8장에서는 릴리스 관리(release management)를 살펴본다. 데이터 스토어에 대한 변경 사항을 어떻게 테스트(test), 빌드(build), 배포(deploy)하는지와 데이터 접근 코드나 SQL에 대한 내용도 살펴본다.
9장에서는 보안(security)을 다룬다. 데이터 보안은 기업의 생존에 매우 중요하다. 끊임없이 발전하는 데이터 인프라에서 보안을 계획하고 관리하는 방법에 대한 전략을 다룬다.
10장에서는 데이터 스토리지와 인덱스 그리고 복제(data storage, indexing, and replication)를 다룬다. 관계형 데이터가 저장되는 방법을 설명한 후 이를 문자열 정렬과 로그 구조의 병합 트리(log structured merge tree)를 비교한다. 인덱스의 다양성을 살펴보고 난 후 데이터 복제 토폴로지를 살펴본다.
11장은 데이터 스토어의 필드 가이드(datastore field guide)다. 여기서는 여러분이 평가하고 운영해야 할 데이터 스토어에서 찾을 수 있는 수많은 다양한 속성을 살펴본다.
12장에서는 분산 데이터베이스에 사용되는 좀 더 일반적인 설계 패턴과 연관된 파이프라인을 살펴본다. 먼저 데이터베이스 생태계(ecosystem)에 전통적으로 자리 잡고 있는 아키텍처 구성 요소를 살펴보는 것부터 시작해서 이들이 가진 이점, 복합성, 일반적인 사용법 등을 살펴본다.
13장에서는 여러분 조직에서 데이터베이스 신뢰성 엔지니어링의 문화를 형성하는 방법을 다룬다. 그리고 오늘날의 조직에서 관리자(administrator)에서 엔지니어로서 DBRE의 역할로 전환할 수 있는 다양한 방법을 살펴본다.

◈ 옮긴이의 말 ◈

과거 데이터베이스는 스페셜리스트만의 전유물이었다. 설치는 어려웠고 튜닝은 복잡했으며 쿼리 작성에 조금만 신경을 못 써도 서비스에 영향을 미치게 되는 두려운 존재였다. 데이터베이스는 아주 예쁜 유리병과도 같았고 이를 잘 다루려면 오랜 시간 동안 숙련된 장인의 손길이 필요할 것만 같았다. 하지만 최근 클라우드 컴퓨팅, MSA 아키텍처, 자동화 시스템 등의 기술 발달로 현대의 데이터베이스는 더이상 그들만의 전유물이 아니게 됐다. 필요하면 누구나 쉽게 접근할 수 있게 진입장벽이 낮아졌으며, 또한 어느 정도까지는 서비스도 가능할 정도로 표준화됐다.
이러한 시대의 변화는 자연스럽게 데이터베이스를 바라보는 관점의 변화를 만들었으며 이에 따른 데이터베이스 관리자의 역할도 적지 않게 바뀌었다. 이로 인해 DBRE라는 새로운 관점의 데이터베이스 관리가 필요하게 됐고 그에 맞는 요구 사항들이 생겨나기 시작했다. 그렇다면 DBRE의 개념은 무엇이며 그동안 데이터베이스 관리자의 역할과 어떤 점이 다른지 필연적으로 궁금증이 발생할 것이다.
이 책은 이러한 궁금증에 대한 답을 제시한다. 서비스, 아키텍처, 인프라 등 다양한 관점에서 데이터베이스를 바라보고 데이터베이스 관리자의 역할을 재정의해 어떤 배경지식이 필요한지 설명한다. 특히 데이터베이스 신뢰성이라는 관점으로 데이터베이스 관리를 지향하고 있으며 이를 위해 반복적인 관리 포인트를 줄이고 아키텍처나 퍼포먼스에 집중하고자 프레임워크를 만들고 수행 방안을 전개한다. 현대의 데이터베이스가 누구나 사용 가능하다고 해서 모두가 데이터베이스를 능숙하게 다룰 수 있는 것은 분명 아닐 것이다. 근본적으로 데이터베이스 관리자는 내부 구조, 아키텍처, 동작 원리를 학습해 기본기가 바탕이 돼야 함은 DBRE의 관점에서도 변함이 없다.
항상 새로운 기술이 나타나고 변화함에 따라 이에 맞는 도전 과제들을 수행하기 위해서 우리는 배워야 할 게 너무나 많은 세상을 살고 있다. 많은 데이터베이스 관리자는 DBRE라는 용어를 들어보지만 않았을 뿐 이미 이러한 변화를 피부로 느끼며 현업에서 데이터베이스 신뢰성 향상을 위해 노력하고 있을 것이다.
이 책이 최근 시대의 환경 변화로 인해 데이터베이스 관리자의 역할이 어디까지인지 고민하고 있던 사람에게 조금이나마 도움이 되기를 바란다. 이 책을 통해 다양한 관점에서 데이터베이스를 생각해볼 수 있으며 나아가 우리가 책임지고 있는 데이터베이스의 신뢰성을 좀 더 성숙하게 발전시킬 수 있는 전환점이 될 수 있기를 기대한다.

목차

01장. 데이터베이스 신뢰성 엔지니어링 소개
__DBRE의 원칙
____데이터 보호
____확장을 위한 셀프 서비스
____잡일 제거
____데이터베이스는 더 이상 특별한 스노우플레이크가 아니다
____소프트웨어와 운영 사이의 장벽 제거
__운영 핵심 개요
__욕구 단계
____생존과 안전
____사랑과 소속
____존중
____자아실현
__정리

02장. 서비스 수준 관리
__서비스 수준 목표가 필요한 이유
__서비스 수준 지표(SLI)
____대기시간
____가용성
____처리량
____내구성
____비용과 효율성
__서비스 목표 정의
____대기시간 지표
____가용성 지표
______가용성에서의 회복 탄력성(resiliency)과 강건성(robustness)
______다운타임을 허용하는 설계
____처리량 지표
______비용 효과적인 지표
______고려 사항
__SLO 관점의 모니터링과 리포팅
____가용성 모니터링
____대기시간 모니터링
____처리량 모니터링
____비용과 효율성 모니터링
__정리

03장. 위험 관리
__위험 고려 사항
____알 수 없는 요인과 복잡성
____리소스 가용성
____인적 요인
____그룹 요인
__해야 할 것
__하지 말아야 할 것
__작업 프로세스: 부트스트래핑
____서비스 위험 평가
____아키텍처 인벤토리
____우선순위 지정
______심각한 영향(즉각적인 SLO 위반)
______중대한 영향(SLO 위반에 임박)
______보통의 영향
______사소한 영향
______통제와 의사결정
______식별
______평가
______완화와 제어
______구현
__지속적인 반복
__정리

04장. 운영 가시성
__운영 가시성의 새로운 규칙
____BI 시스템처럼 OpViz 시스템 처리
____표준에 따른 분산 임시 환경의 트렌드
____주요 지표의 고해상도 저장
____간소화 아키텍처 유지
__OpViz 프레임워크
__데이터 입력
____텔레메트리(telemetry)/지표
____이벤트
____로그
__데이터 출력
__모니터링 부트스트래핑
____데이터가 안전한가?
____서비스가 실행 중인가?
____소비자가 불편을 겪고 있는가?
__애플리케이션 계측
____분산 추적
____이벤트와 로그
__서버와 인스턴스 계측
____이벤트와 로그
__데이터 스토어 계측
__데이터 스토어 커넥션 계층
____활용도
____포화도
____오류
__내부 데이터베이스 가시성
____처리량과 대기시간 지표
____커밋, 리두, 저널링
____복제 상태
____메모리 구조
____잠금과 동시성
__데이터베이스 객체
__데이터베이스 쿼리
__데이터베이스 어썰트와 이벤트
__정리

05장. 인프라 엔지니어링
__호스트
____물리 서버
____시스템과 커널 운영
______사용자 리소스 제한
______I/O 스케줄러
______메모리 할당과 파편화
______스와핑
______불균일 메모리 접근
______네트워크
______스토리지
______스토리지 용량
______스토리지 처리량
______스토리지 대기시간
______스토리지 가용성
______내구성
____스토리지 전용 네트워크
____물리 서버의 장점
____물리 서버의 단점
__가상화
____하이퍼바이저
____동시성
____스토리지
____활용 사례
__컨테이너
__서비스형 데이터베이스
____서비스형 데이터베이스의 과제
____DBRE와 DBaaS
__정리

06장. 인프라 관리
__버전 관리
__환경설정 정의
__환경설정에서의 구축
__환경설정 유지 보수
____환경설정 정의 시행
____설정 동기화
____컴포넌트 재배포
__인프라 정의와 오케스트레이션
____모놀리식 인프라 정의
____수직 분할
____계층 분할(수평적 정의)
__테스트와 컴플라이언스 승인
__서비스 카탈로그
__종합 시나리오
__개발 환경
__정리

07장. 백업과 복구
__핵심 개념
____물리적과 논리적
____온라인과 오프라인
____전체, 증분, 차등
__복구할 때 고려 사항
__복구 시나리오
____계획된 복구 시나리오
______새로운 프로덕션(production) 노드와 클러스터
______다른 환경 구축
______데이터 스토어 다운스트림용 ETL과 파이프라인 프로세스
______운영 작업 테스트
____계획되지 않은 시나리오
______사용자 오류
______애플리케이션 오류
______인프라 서비스 오류
______운영체제 및 하드웨어 오류
______하드웨어 장애
______데이터 센터 장애
____시나리오 범위
____시나리오 영향도
__복구 전략 구조
____블록 쌓기 1: 탐지
______사용자 오류
______애플리케이션 오류
______인프라 서비스
______운영체제와 하드웨어 오류
______하드웨어와 데이터 센터 장애
____블록 쌓기 2: 스토리지 계층화
______온라인, 고성능 스토리지
______온라인, 저성능 스토리지
______오프라인 스토리지
______객체 스토리지
____블록 쌓기 3: 다양한 도구 상자
______전체 물리 백업
______증분 물리 백업
______전체 및 증분 논리 백업
______객체 스토어
____블록 쌓기 4: 테스트
__복구 전략 정의
__온라인, 전체 및 증분 백업과 빠른 스토리지
____사용 사례
____검출
____계층형 스토리지
____도구 상자
____테스트
__온라인, 전체 및 증분 백업과 느린 스토리지
____사용 사례
____검출
____계층형 스토리지
____도구 상자
____테스트
__오프라인 스토리지
____사용 사례
____검출
____계층 스토리지
____도구 상자
____테스트
__객체 스토리지
____사용 사례
____검출
____테스트
__정리

08장. 릴리스 관리
__교육과 협업
____대외 활동
____대화 조성
____도메인 특화 지식
______아키텍처
______데이터 모델
______모범 사례와 표준
______도구
____협업
__통합
____전제 조건
______버전 관리 시스템
______데이터베이스 구축 자동화
______테스트 데이터
______데이터베이스 마이그레이션과 패키징
______CI 서버와 테스트 프레임워크
__테스트
____테스트 친화적인 개발 예제
______추상화와 캡슐화
______효율화
____사후 커밋 테스트
______사전 빌드
______빌드
______사후 빌드
____전체 데이터 세트 테스트
____다운스트림 테스트
____운영 테스트
__배포
____마이그레이션과 버전 관리
____영향도 분석
______객체 잠금
______리소스 포화점
______데이터 무결성 이슈
______복제 지연
____마이그레이션 패턴
______패턴: 잠금을 발생시키는 작업
______패턴: 높은 리소스를 발생시키는 작업
______패턴: 롤링 마이그레이션
______마이그레이션 테스트
______롤백 테스트
____수동과 자동화
__정리

09장. 보안
__보안의 목적
____침입자로부터 데이터 보호
____의도적 피해에서 보호
____사고에 의한 피해에서 보호
____노출에서의 데이터 보호
____컴플라이언스와 감사 표준
__함수형 데이터베이스 보안
____교육과 협업
____셀프 서비스
____통합과 테스트
____운영 가시성
______애플리케이션 계층 계측
______데이터베이스 계층 측정
______OS 계층 측정
__취약점과 악용
____STRIDE
____DREAD
____기본 예방책
____서비스 거부
______완화
______리소스 관리와 부하 차단
______데이터베이스 액세스와 작업 부하의 지속적인 개선
______로깅과 모니터링
____SQL 인젝션
______완화
______프리페어드 스테이트먼트
______입력 유효성 검사
______피해 감소
______모니터링
__네트워크와 인증 프로토콜
__데이터 암호화
____재무 데이터
____개인 건강 데이터
____사생활 개인 데이터
____군사 및 정부 데이터
____기밀/민감한 비즈니스 데이터
____전송 데이터
______암호 스위트의 해부
______네트워크 내부 통신
______네트워크 외부 통신
______안전한 데이터 연결 설정
____데이터베이스 데이터
______애플리케이션 수준의 보안
______데이터베이스 플러그인 암호화
______투명한 데이터베이스 암호화
______쿼리 성능 고려 사항
____파일 시스템 데이터
______파일 시스템에서의 데이터 암호화
______파일 시스템 암호화
______장비 수준의 암호화
__정리

10장. 데이터 스토리지, 인덱싱, 복제
__데이터 구조 스토리지
____데이터베이스 행 스토리지
______B-트리 구조
____문자로 정렬된 테이블과 구조화된 로그 머지 트리
______블룸 필터
______구현
____인덱싱
______해시 인덱스
______비트맵 인덱스
______B-트리 순열
____로그와 데이터베이스
__데이터 복제
____싱글 리더
______복제 모델
______복제 로그 형식
______싱글 리더 복제 사용
______단일 리더 복제의 도전 과제
______단일 리더 복제 모니터링
____멀티리더 복제
______멀티리더 사용 사례
______기존의 다방면 복제의 충돌 해결 방안
__정리

11장. 데이터 스토어 필드 가이드
__데이터 스토어의 개념적 속성
____데이터 모델
______관계형 모델
______키-값 모델
______문서 모델
______내비게이션 모델
____트랜잭션
______ACID
______원자성
______일관성
______격리성
______내구성
____BASE
__데이터 스토어의 내부 속성
____스토리지
____유비쿼터스 CAP 정리
______일관성
______가용성
______파티션 허용
____일관성과 대기시간의 트레이드오프
____가용성
__정리

12장. 데이터 아키텍처 표본
__아키텍처 구성 요소
____프론트엔드 데이터 스토어
____데이터 접근 계층
____데이터베이스 프록시
______가용성
______데이터 무결성
______확장성
______대기시간
____이벤트와 메시지 시스템
______가용성
______데이터 무결성
______확장성
______대기시간
____캐시와 메모리 스토어
______가용성
______데이터 무결성
______확장성
______대기시간
__데이터 아키텍처
____람다와 카파
______람다 아키텍처
______카파 아키텍처
____이벤트 소싱
____CQRS
__정리

13장. DBRE 사례 만들기
__데이터베이스 신뢰성 문화
____장벽 파괴
______아키텍처 프로세스
______데이터베이스 개발
______프로덕션 마이그레이션
______인프라 설계와 배포
____데이터 기반 의사결정
____데이터 무결성과 회복성
__정리

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.