
데이터베이스 신뢰성 엔지니어링 [탄력적인 데이터베이스 시스템 설계와 관리]
- 원서명Database Reliability Engineering: Designing and Operating Resilient Database Systems (ISBN 9781491925942)
- 지은이레인 캠벨(Laine Campbell), 채리티 메이저스(Charity Majors)
- 옮긴이이설민
- ISBN : 9791161757261
- 35,000원
- 2023년 02월 28일 펴냄
- 페이퍼백 | 428쪽 | 188*235mm
- 시리즈 : 소프트웨어 아키텍처
책 소개
요약
과거 DBA의 역할이 DBRE(DataBase Reliability Engineering)라는 새로운 패러다임을 만나게 되면서 그 역할이 어떻게 변해야 하는지 설명한다. 먼저 DBRE의 개념을 소개하고 백업, 복구, 복제, 인덱스, 모니터링과 같은 데이터베이스 관리의 기초 영역에서부터 스토리지, 보안, 데이터 스토어 등 인프라 관점에서 데이터베이스 관리자의 역할을 살펴본다. 그리고 서비스 및 아키텍처 관점에서 서비스 수준 요구 사항, 위험 평가 관리, 배포 관리, 분산 데이터베이스 설계를 알아보고 마지막으로 DBRE 문화를 형성하는 방법과 DBA에서 DBRE의 역할로 전환할 수 있는 다양한 방법을 살펴본다.
추천의 글
우리는 전반적인 데이터베이스 산업에서 전례 없는 변화와 혼란의 시기를 목격하고 있다. 기술 채택의 생명주기는 새로운 도전과 기회와 함께 머리를 어지럽게 만드는 지점까지 가속화됐다.
아키텍처는 매우 빠르게 진화하고 있어서 지금까지 익숙해진 업무는 더 이상 필요하지 않게 됐으며 그렇게 많이 투자했던 제반 기술은 이제 거의 연관이 없다. 보안, 코드형 인프라, 클라우드의 수용력(예를 들어 서비스형 인프라와 데이터베이스)과 같은 새로운 혁신과 압박으로 인해 우리가 어떻게 구축하고 있는지 재고할 필요성을 느끼게 한다.
필연적으로 기존의 관리성 작업 부하에서 벗어나 아키텍처, 자동화, 소프트웨어 엔지니어링, 지속적인 통합 및 배포, 시스템 편성 기술 등을 강조하는 프로세스로 전환했다. 그동안 우리가 보호하고 관리해 온 데이터의 가치와 중요성은 그 규모만큼이나(혹은 그 이상으로) 증가했고 앞으로도 그 가치가 증가하지 않는 미래는 그려지지 않는다. 우리는 이와 같은 세상에서 무언가 의미 있고 중요한 차이를 만들어낼 수 있는 운이 좋은 위치에 있다.
한때 본인이 뛰어난 데이터베이스 관리자라고 의심 없이 생각했던 많은 사람은 시대의 흐름에 압박 받고 있으며 심지어 뒤처질 위험에 처해 있다. 동시에 이 분야에 뛰어든 새로운 사람들은 조직의 패러다임을 갈망한다. 이 두 가지 상황에 대한 답은 동일하다. 학습의 즐거움, 자기 계발, 긍정적, 열정 그리고 자신감이다. 이는 피할 수 없는 고난과 위험에도 어떤 업무를 맡아 그것을 끝까지 관철시키기 위함이다. 이 책은 데이터베이스 인프라 엔지니어링에 대한 새로운 사고방식을 소개하고 운영, 가이드북, 플레이북 등 우리가 수행하고 재구성했던 모든 것을 새로운 방향으로 이끈다는 점에서 주목할 만한 성과다. 즉, 이것이 바로 데이터베이스 신뢰성 엔지니어링이다.
— 폴 밸리(Paul Vallee)/
파이시안(Pythian)의 사장 겸 CEO
이 책에서 다루는 내용
◆ 서비스 레벨 요구사항과 위험 관리
◆ 운영 가시성을 위한 아키텍처 구축 및 진화
◆ 인프라 엔지니어링 및 관리
◆ 릴리스 프로세스를 원활하게 수행하는 방법
◆ 데이터 저장, 인덱싱, 복제
◆ 데이터 스토어의 특성 식별과 모범 사례
◆ 데이터 스토어 아키텍처의 구성 요소와 데이터 기반의 아키텍처
이 책의 대상 독자
데이터 스토어의 설계, 구축, 안정적인 운영에 흥미가 있는 모든 사람을 대상으로 한다. 독자는 데이터베이스의 지식을 넓히려고 하는 소프트웨어 엔지니어 혹은 같은 이유를 가진 시스템 엔지니어일 수도 있다. 스킬 향상을 원하는 데이터베이스 전문가라면 여기서 가치를 발견할 것이고, 이 업계에 새로 들어온 사람이라면 확실한 이해를 줄 수 있을 것이다.
이 책의 구성
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의 역할로 전환할 수 있는 다양한 방법을 살펴본다.