HOME > Detail View

Detail View

사이트 신뢰성 엔지니어링 : 구글이 공개하는 서비스 개발과 운영 노하우 (Loan 6 times)

Material type
단행본
Personal Author
Beyer, Betsy, 저 Jones, Chris, 저 Petoff, Jennifer, 저 Murphy, Niall Richard, 저 장현희, 역
Title Statement
사이트 신뢰성 엔지니어링 : 구글이 공개하는 서비스 개발과 운영 노하우 / 벳시 베이어 [외]지음 ; 장현희 옮김
Publication, Distribution, etc
파주 :   제이펍,   2018  
Physical Medium
xxx, 594 p. : 삽화, 도표 ; 25 cm
Varied Title
Site reliability engineering : how Google runs production systems
ISBN
9791188621088
General Note
공저자: 크리스 존스, 제니퍼 펫오프, 니얼 리처드 머피  
부록: 가용성표, 운영 서비스를 위한 권장 사례 모음, 장애 상태 문서의 예 외  
Bibliography, Etc. Note
참고문헌(p. 573-583)과 색인수록
Subject Added Entry-Topical Term
Reliability (Engineering) Internet industry --United States --Management
000 00000cam c2200205 c 4500
001 000045930232
005 20180212105341
007 ta
008 180208s2018 ggkad b 001c kor
020 ▼a 9791188621088 ▼g 93560
035 ▼a (KERIS)BIB000014703187
040 ▼a 242002 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 620.00452 ▼2 23
085 ▼a 620.00452 ▼2 DDCK
090 ▼a 620.00452 ▼b 2018
245 0 0 ▼a 사이트 신뢰성 엔지니어링 : ▼b 구글이 공개하는 서비스 개발과 운영 노하우 / ▼d 벳시 베이어 [외]지음 ; ▼e 장현희 옮김
246 1 9 ▼a Site reliability engineering : ▼b how Google runs production systems
260 ▼a 파주 : ▼b 제이펍, ▼c 2018
300 ▼a xxx, 594 p. : ▼b 삽화, 도표 ; ▼c 25 cm
500 ▼a 공저자: 크리스 존스, 제니퍼 펫오프, 니얼 리처드 머피
500 ▼a 부록: 가용성표, 운영 서비스를 위한 권장 사례 모음, 장애 상태 문서의 예 외
504 ▼a 참고문헌(p. 573-583)과 색인수록
610 0 ▼a Google (Firm) ▼x Management
650 0 ▼a Reliability (Engineering)
650 0 ▼a Internet industry ▼z United States ▼x Management
700 1 ▼a Beyer, Betsy, ▼e▼0 AUTH(211009)54102
700 1 ▼a Jones, Chris, ▼e▼0 AUTH(211009)99993
700 1 ▼a Petoff, Jennifer, ▼e▼0 AUTH(211009)14998
700 1 ▼a Murphy, Niall Richard, ▼e
700 1 ▼a 장현희, ▼e▼0 AUTH(211009)122041
900 1 0 ▼a 베이어, 벳시, ▼e
900 1 0 ▼a 존스, 크리스, ▼e
900 1 0 ▼a 펫오프, 제니퍼, ▼e
900 1 0 ▼a 머피, 니얼 리처드, ▼e
945 ▼a KLPA

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(4F)/ Call Number 620.00452 2018 Accession No. 111786063 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 620.00452 2018 Accession No. 121247539 Availability Available Due Date Make a Reservation Service B M
No. 3 Location Sejong Academic Information Center/Science & Technology/ Call Number 620.00452 2018 Accession No. 151340126 Availability Available Due Date Make a Reservation Service M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(4F)/ Call Number 620.00452 2018 Accession No. 111786063 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 620.00452 2018 Accession No. 121247539 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 620.00452 2018 Accession No. 151340126 Availability Available Due Date Make a Reservation Service M

Contents information

Book Introduction

구글의 사이트 신뢰성 엔지니어링팀의 핵심 구성원들이 소프트웨어의 전체 생명주기에 집중함으로써 세계에서 가장 거대한 소프트웨어 시스템을 구현하고, 배포하고, 관측하며, 유지하는 방법과 그 이유를 다양한 에세이와 사설을 통해 소개한다. 이를 통해 구글 엔지니어들이 더 확장 가능하고, 신뢰할 수 있으며, 효과적인 시스템을 구축할 수 있었던 원리와 사례를 여러분의 조직에도 적용할 수 있게 될 것이다.

다음 단계로 성장하기 위한 영감으로 가득한 책!
실제로 동작하는 코드가 가장 중요하다고 여기는 구글의 원칙을 체험한다!


소프트웨어 시스템의 수명은 보통 디자인이나 구현 단계가 아니라 실제로 사용되는 기간에 좌우된다. 그렇다면 어째서 소프트웨어 엔지니어는 대용량 컴퓨팅 시스템을 디자인하고 구현하는 과정을 가장 중요하게 생각해 온 것일까?

이 책에서는 구글의 사이트 신뢰성 엔지니어링팀의 핵심 구성원들이 소프트웨어의 전체 생명주기에 집중함으로써 세계에서 가장 거대한 소프트웨어 시스템을 구현하고, 배포하고, 관측하며, 유지하는 방법과 그 이유를 다양한 에세이와 사설을 통해 소개한다. 이를 통해 구글 엔지니어들이 더 확장 가능하고, 신뢰할 수 있으며, 효과적인 시스템을 구축할 수 있었던 원리와 사례를 여러분의 조직에도 적용할 수 있게 될 것이다.

이 책의 주요 내용
■ 소개: 사이트 신뢰성 엔지니어링이 무엇인지, 그리고 기존 IT 분야의 사례와는 어떻게 다른지를 소개한다.
■ 원리: 패턴과 행동 양식, 그리고 사이트 신뢰성 엔지니어의 작업에 영향을 미치는 여러 사안을 소개한다.
■ 사례 연구: SRE의 일과인 대용량 분산 컴퓨팅 시스템을 구축하고 운영하기 위한 이론과 사례들을 학습한다.
■ 관리: 구글이 권장하는 신규 입사자에 대한 교육, 의사소통, 회의 진행 방식 등을 자신의 조직에 적용하기 위한 방법들을 살펴본다.


Information Provided By: : Aladin

Author Introduction

니얼 리처드 머피(지은이)

구글 아일랜드에서 광고 플랫폼의 사이트 신뢰성 엔지니어링팀을 이끌고 있다. 인터넷 분야에서 21년째 경력을 쌓고 있으며, 아일랜드의 협력 허브인 INEX의 의장이기도 하다. 오라일리의 《IPv6 Network Administration》을 비롯한 다수의 기술 서적 및 논문의 공동 저자인 그는 여러 RFC 문서 작성에도 기여한 바 있다. 현재 아일랜드의 인터넷 역사를 공동 집필 중이며, 컴퓨터 공학, 수학 및 (다소 생뚱맞지만) 문학 학위를 소지하고 있다. 현재 아내와 두 아들과 함께 더블린에 거주하고 있다.

크리스 존스(지은이)

룩아웃, 시만텍, 본투를 포함한 여러 회사에서 제품팀을 구축하고 이끄는 데 25년 이상을 보냈다. 여러 특허를 보유하고 있기도 한 그는 소비자 및 기업 모바일, 웹, 데이터 및 플랫폼 서비스에서 새로운 제품을 발견하고 개발했으며, SVPG에 합류한 후에는 신생 기업부터 《포춘》 500대 기업에 이르는 100개 이상의 다양한 기업과 협력 업무를 맡고 있다.

벳시 베이어(지은이)

구글 뉴욕 오피스에 근무하며 사이트 신뢰성 엔지니어링에 특화된 테크니컬 라이터(technical writer) 이다. 벳시는 『사이트 신뢰성 엔지니어링』(제이펍, 2018 ) 및 『The Site Reliability Workbook』(O’Reilly, 2018)의 공동 저자이기도 하다. 현재 업무를 담당하기 전에는 국제 외교와 영문학을 전공했으며 스탠퍼드(Stanford)와 툴레인(Tulane) 대학교에서 학위를 마쳤다.

제니퍼 펫오프(지은이)

아일랜드 더블린에 거주하고 있는 구글의 사이트 신뢰성 엔지니어링팀의 프로그램 관리자다. 예전에는 과학 논문, 엔지니어링, 인적 자원 및 광고 운영 등 광범위한 분야에 걸친 글로벌 프로젝트를 관리했었다. 구글에 합류하기 전에는 화학 분야에 8년간 종사하기도 했었다. 스탠퍼드 대학교에서 화학 박사 학위를 받았으며, 로체스터 대학교에서 화학 학사와 심리학 석사 학위를 받았다.

장현희(옮긴이)

캐나다 켈로나에 있는 QHR Technologies에서 시니어 소프트웨어 엔지니어로 근무 중이다. 21년째 개발자로 활동하며 25종에 이르는 프로그래밍 전문서를 집필 및 번역해 왔다. 한국 개발자 커뮤니티에 조금이나마 기여하기 위해 원서 내용에 충실하면서도 읽기 쉬운 번역에 공들이고 있다. 대표적인 역서로는 《러스트 프로그래밍 공식 가이드》(2019), 《사이트 신뢰성 엔지니어링》(2018), 《협업의 기술》(2013) 등이 있다.

Information Provided By: : Aladin

Table of Contents

PART I 소개 
CHAPTER 01 소개 _ 3 
서비스 관리를 위해 시스템 관리자를 활용하는 방법 _ 3 
서비스 관리에 대한 구글의 해법: 사이트 신뢰성 엔지니어링 _ 5 
SRE의 신조 _ 8 
마무리하며 _ 14 

CHAPTER 02 SRE 관점에서 바라본 구글의 프로덕션 환경 15 
하드웨어 _ 15 
하드웨어를 ‘조율하는’ 시스템 소프트웨어 _ 17 
기타 시스템 소프트웨어 _ 21 
소프트웨어 인프라스트럭처 _ 22 
개발 환경 _ 23 
셰익스피어: 예제 서비스 _ 24 

PART II 원리와 원칙들 
CHAPTER 03 위험 요소 수용하기 _ 30 
위험 요소 관리하기 _ 31 
서비스 위험 측정하기 _ 32 
서비스의 위험 수용도 _ 34 
에러 예산 활용해보기 _ 40 

CHAPTER 04 서비스 수준 목표 _ 44 
서비스 수준 관련 용어 _ 45 
지표 설정 _ 48 
목표 설정에 대한 실습 _ 51 
협약에 대한 실습 _ 56 

CHAPTER 05 삽질은 이제 그만! _ 57 
삽질의 정의 _ 58 
삽질이 줄어들면 좋은 이유 _ 60 
엔지니어링에 해당하는 업무는? _ 61 
삽질은 무조건 나쁜 것일까? _ 62 
결론 _ 63 

CHAPTER 06 분산 시스템 모니터링 _ 64 
정의 _ 64 
왜 모니터링해야 하는가? _ 66 
모니터링에 대한 적절한 기대치 설정하기 _ 67 
증상과 원인 _ 68 
블랙박스와 화이트박스 _ 69 
네 가지 결정적인 지표 _ 70 
마지막 요청(혹은 실행과 성능)에 대한 고려 _ 72 
적당한 측정 방법 선택하기 _ 72 
더욱 단순하게가 아니라 최대한 단순하게 _ 73 
지금까지 살펴본 원리들을 결합하기 _ 74 
장기적 모니터링 _ 76 
결론 _ 78 

CHAPTER 07 구글의 발전된 자동화 _ 80 
자동화의 가치 _ 81 
구글 SRE의 가치 _ 83 
자동화의 사례 _ 85 
스스로를 이롭게 하라: 몽땅 자동화하자! _ 88 
신의 한 수: 클러스터 턴업의 자동화 _ 91 
보그: 창고 크기 컴퓨터의 탄생 _ 98 
신뢰성은 근본적인 기능이다 _ 101 
추천 사항 _ 101 

CHAPTER 08 릴리즈 엔지니어링 _ 103 
릴리즈 엔지니어의 역할 _ 104 
릴리즈 엔지니어링의 철학 _ 104 
지속적 빌드와 배포 _ 106 
설정 관리 기법 _ 111 
결론 _ 112 

CHAPTER 09 간결함 _ 114 
시스템의 안정성 vs. 신속함 _ 115 
지루함의 미덕 _ 115 
내 코드는 절대 포기하지 않을 거야! _ 116 
‘부정적 영향을 미치는 코드’의 지표 _ 116 
최소한의 API _ 117 
모듈화 _ 117 
릴리즈의 간소화 _ 118 
간결한 결론 _ 119 

PART III 사례 
CHAPTER 10 시계열 데이터에 대한 실용적인 알림 _ 127 
보그몬의 탄생 _ 128 
애플리케이션의 조작 _ 130 
내보낸 데이터의 수집 _ 131 
시계열 데이터를 위한 저장소 _ 132 
규칙의 평가 _ 135 
알림 _ 140 
모니터링 토폴로지의 샤딩 _ 141 
블랙박스 모니터링 _ 142 
설정의 유지보수 _ 143 
지난 10년 간 … _ 145 

CHAPTER 11 비상 대기 _ 146 
소개 _ 146 
비상 대기 엔지니어의 삶 _ 147 
비상 대기 업무의 균형 맞추기 _ 148 
안전에 대해 고려하기 _ 150 
부적절한 운영 부하에서 벗어나기 _ 153 
결론 _ 155 

CHAPTER 12 효과적인 장애 조치 _ 156 
이론 _ 157 
실전에 들어가보자 _ 159 
부정적인 결과의 마법 _ 168 
사례 연구 _ 171 
조금 더 수월하게 장애를 조치하기 _ 175 
결론 _ 176 

CHAPTER 13 긴급 대응 _ 177 
시스템에 문제가 생기면 어떻게 해야 할까? _ 178 
테스트로 인한 장애 _ 178 
변경으로 인한 장애 _ 180 
절차에 의한 장애 _ 183 
모든 문제가 해결되었다 _ 186 
지난 일로부터 배우기. 그리고 반복하지 않기 _ 186 
결론 _ 188 

CHAPTER 14 장애 관리하기 _ 189 
미흡한 장애 관리 _ 190 
미흡한 장애 처리에 대한 자세한 분석 _ 191 
장애 관리 절차의 기본 요소들 _ 191 
적절하게 관리한 장애 조치 _ 194 
언제 장애를 선언할 것인가? _ 195 
요약 _ 196 

CHAPTER 15 포스트모텀 문화: 실패로부터 배우기 _ 197 
구글의 포스트모텀 철학 _ 198 
협업과 지식의 공유 _ 200 
포스트모텀 문화 도입하기 _ 201 
결론 및 지속적인 개선 _ 204 

CHAPTER 16 시스템 중단 추적하기 _ 205 
에스컬레이터 _ 206 
아우터레이터 _ 206 

CHAPTER 17 신뢰성을 위한 테스트 _ 212 
소프트웨어 테스트의 종류 _ 214 
테스트 및 빌드 환경 구성하기 _ 221 
대규모 환경에서의 테스트 _ 223 
결론 _ 237 

CHAPTER 18 SRE 조직의 소프트웨어 엔지니어링 _ 238 
SRE 조직의 소프트웨어 엔지니어링 역량이 중요한 이유 _ 239 
Auxon 사례 연구: 프로젝트 배경 및 문제가 발생한 부분 _ 240 
의도 기반 수용량 계획 _ 244 
SRE 조직에서 소프트웨어 엔지니어링을 육성하는 방법 _ 254 
결론 _ 259 

CHAPTER 19 프런트엔드의 로드밸런싱 _ 260 
모든 일을 힘으로만 해결할 수는 없는 법 _ 260 
DNS를 이용한 로드밸런싱 _ 262 
가상 IP 주소를 이용한 로드밸런싱 _ 265 

CHAPTER 20 데이터센터의 로드밸런싱 _ 268 
이상적인 사례 _ 269 
양호하지 않은 태스크 구별하기: 흐름 제어와 레임덕 _ 271 
서브셋을 이용한 연결 풀 제한하기 _ 273 
로드밸런싱 정책 _ 280 

CHAPTER 21 과부하 처리하기 _ 287 
‘초당 쿼리 수’의 함정 _ 288 
사용자별 제한 _ 289 
클라이언트 측에서의 사용량 제한 _ 290 
중요도 _ 292 
활용도에 대한 신호들 _ 294 
과부하 오류 처리하기 _ 295 
연결에 대한 부하 _ 299 
결론 _ 300 

CHAPTER 22 연속적 장애 다루기 _ 302 
연속적 장애의 원인과 그 대책 _ 303 
서버 과부하 방지하기 _ 309 
느긋한 시작과 콜드 캐싱 _ 320 
연속적 장애의 발생 요인 _ 323 
연속적 장애 테스트하기 _ 325 
연속적 장애를 처리하기 위한 즉각적인 대처 _ 328 
마무리하며 _ 331 

CHAPTER 23 치명적인 상태 관리하기: 신뢰성을 위한 분산에 대한 합의 _ 332 
합의는 왜 필요할까: 분산 시스템 간 협업의 실패 _ 335 
분산에 대한 합의가 동작하는 방식 _ 337 
분산 합의를 위한 시스템 아키텍처 패턴 _ 339 
분산 합의의 성능 _ 345 
분산 합의 기반 시스템의 배포 _ 354 
분산 합의 시스템 모니터링 _ 364 
결론 _ 365 

CHAPTER 24 크론을 이용한 분산된 주기적 스케줄링 _ 366 
크론 _ 367 
크론 작업과 멱등성 _ 368 
대용량 시스템 내에서의 크론 _ 369 
구글에서 구현한 크론 서비스 _ 371 
요약 _ 379 

CHAPTER 25 데이터 처리 파이프라인 _ 380 
파이프라인 디자인 패턴의 기원 _ 380 
단순한 파이프라인 패턴을 적용한 빅데이터의 기본적인 효과 _ 381 
정기적 파이프라인 패턴의 과제 _ 381 
작업의 불균형 분산으로 인해 발생하는 문제 _ 382 
분산 환경에서 정기적 파이프라인의 단점 _ 383 
구글 워크플로우 소개 _ 387 
워크플로우의 실행 단계들 _ 389 
비즈니스의 지속성 보장하기 _ 391 
요약 _ 392 

CHAPTER 26 데이터 무결성: 내가 기록한 그대로 읽을 수 있어야 한다 _ 394 
데이터 무결성의 중요한 조건 _ 395 
데이터 무결성과 가용성을 유지하기 위한 구글 SRE의 목표 _ 401 
구글이 데이터 무결성의 문제를 해결하는 방법 _ 406 
사례 연구 _ 419 
데이터 무결성과 관련된 SRE의 일반 원리들 _ 427 
결론 _ 429 

CHAPTER 27 대용량 환경에서의 신뢰할 수 있는 제품 출시 _ 430 
출시 조율 엔지니어링 _ 432 
출시 절차 마련하기 _ 434 
출시 확인목록 개발하기 _ 438 
안정적인 출시를 위한 기법들 _ 443 
LCE의 개발 역량 _ 448 
결론 _ 452 

PART IV 관리 
CHAPTER 28 비상 대기를 넘어 SRE의 성장을 촉진하기 _ 456 
새 SRE를 고용했다. 이제 뭘 해야 하지? _ 456 
최초의 학습 경험: 혼란을 방지하기 위한 구조의 사례 _ 459 
스타 리버스 엔지니어와 즉흥적 사상가로 키워내기 _ 463 
포부가 큰 비상 대기 엔지니어를 위한 다섯 가지 원칙 _ 467 
비상 대기를 넘어서: 통과 의례와 지속적 학습의 관례 _ 473 
마무리하며 _ 474 

CHAPTER 29 방해 요소에 대한 대처 _ 475 
운영 업무 부하 관리하기 _ 476 
방해 요소의 관리 방법을 결정하기 위한 요소들 _ 477 
불완전한 머신 _ 478 

CHAPTER 30 SRE를 이용해 운영 업무의 부담에서 벗어나기 _ 486 
1단계: 서비스에 대해 배우고 컨텍스트를 이해하기 _ 487 
2단계: 컨텍스트의 공유 _ 489 
3단계: 변화를 주도하기 _ 491 
결론 _ 494 

CHAPTER 31 SRE의 의사소통과 협업 _ 495 
의사소통: 운영 환경 회의 _ 497 
SRE와의 협업 _ 501 
SRE의 협업에 대한 사례 연구: Viceroy _ 503 
SRE 외 조직과의 협업 _ 509 
사례 연구: DFP의 F1으로의 이전 _ 510 
결론 _ 512 

CHAPTER 32 SRE 참여 모델의 개선 _ 513 
SRE의 도입: 의미와 방법, 그리고 이유 _ 513 
PRR 모델 _ 514 
SRE 도입 모델 _ 515 
운영 환경 준비 검토: 간단한 PRR 모델 _ 517 
간단한 PRR 모델의 발전: 조기 참여 _ 521 
서비스 개발의 개선: 프레임워크와 SRE 플랫폼 _ 524 
결론 _ 529 

PART V 마무리하며 
CHAPTER 33 다른 업계로부터의 교훈 _ 533 
업계 전문가에 대한 소개 _ 534 
준비와 재난 테스트 _ 536 
포스트모텀 문화 _ 540 
반복적인 업무와 운영 오버헤드를 자동화된 방식으로 제거하기 _ 542 
구조화되고 합리적인 의사 결정 _ 544 
결론 _ 546 

CHAPTER 34 마치며 _ 547 

APPENDIX. 부록 
APPENDIX A 가용성 표 _ 551 
APPENDIX B 운영 서비스를 위한 권장 사례 모음 _ 553 
APPENDIX C 장애 상태 문서의 예 _ 559 
APPENDIX D 포스트모텀의 예 _ 561 
APPENDIX E 출시 조율 확인목록 _ 566 
APPENDIX F 제품 회의의 예 _ 569 

참고문헌 _ 573 
찾아보기 _ 584

New Arrivals Books in Related Fields