클라우드 시스템을 관리하는 기술
이 책의 이벤트
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자(글) 토머스 리몬첼리
저자 토머스 리몬첼리는 국제적으로 유명한 저자이자 강연자, 시스템 관리자이다. Google NYC에서 7년간 재직하면서 구글 블로그 검색(Google Blog Search)이나 Ganeti 같은 프로젝트들과 구글 내부의 여러 전사적 IT 서비스들을 위한 SRE(사이트 신뢰성 기술자)로 일했다. 현재 ServerFault.com과 StackOverflow.com의 모회사인 Stack Exchange, Inc.에서 SRE로 일하고 있다. 1987년 Drew University 재학 중에 처음으로 시스템 관리 일을 한 이후 AT&T/Lucent Bell Labs를 비롯한 크고 작은 회사들에서 일했다. 대표적인 저서로는 『Time Management for System Administrators』(O’Reilly)와 『The Practice of System and Network Administration 제2판』(Addison-Wesley)가 있다. 여가 시간에는 풀뿌리 운동(grassroots activism)에도 참여하는데, 그의 노력은 미국 전역에 알려졌다. 현재 미국 뉴저지에서 살고 있다.
저자(글) 스트래터 체일럽
저자 스트래터 체일럽은 수년간 복잡한 IT 프로젝트들을 지휘, 관리하면서 프로젝트 관리자에서 운영 책임자에 이르기까지 다양한 역할을 수행했다. 스트래터는 팀 관리와 협동에 관한 수많은 글을 썼으며, 자신의 관리 능력을 BayLISA와 SAGE를 비롯한 여러 자원봉사 단체에 적용했다. 1983년 보스턴의 MIT에서 VAX Ultrix와 Unisys UNIX의 관리를 시작했으며, 닷컴 시절에는 실리콘 밸리에서 iPlanet과 Palm 같은 고객사들을 위해 인터넷 서비스를 구축했다. 2007년에는 톰과 크리스티나와 함께 『The Practice of System and Network Administration 제2판』(Addison-Wesley)을 저술했다. 취미로는 Arduino와 여러 2차원 CAD/CAM 장치들을 비롯한 새로운 기술들을 배우는 것과 원예전문가가 되는 것을 들 수 있다. 현재 미국 캘리포니아의 산타클라라 카운티에 살고 있다.
저자(글) 크리스티나 호건
저자 크리스티나 호건은 실리콘 밸리와 이탈리아, 스위스에서 20년 간 시스템 관리와 네트워크 관리를 수행한 경력이 있다. 작은 신생기업은 물론 중간 크기의 기술 기업과 다국적 대기업들에서 경험을 쌓았다. 수년간 보안 컨설턴트로 일했는데, 고객사로는 eBay, Silicon Graphics, SystemExperts 등이 있다. 2005년에 저서 『The Practice of System and Network Administration』(Addison-Wesley)으로 SAGE Outstanding Achievement Award를 수상했다. 수학 학사 학위와 컴퓨터 과학 석사 학위, 항공공학 박사 학위를 가지고 있으며, 법학 과정도 졸업했다. 또한 6년간 포뮬러 1 레이싱 팀에서 공기역학자로 일했으며, 1988년 체스 올림피아드에 아일랜드 대표로 참가했다. 현재 스위스에서 살고 있다.
역자 류광은 1996년부터 활동해 온 프로그래밍 서적 전문 번역가로, Game Programming Gems 시리즈와 컴퓨터 프로그래밍의 예술(The Art of Computer Programming) 제1~4A권, UNIX 고급 프로그래밍(Advanced Programming in UNIX Environment) 제2판과 제3판, Effective Modern C++을 포함해 60여 권의 다양한 IT 전문서를 번역했다. 번역과 프로그래밍 외에 소프트웨어 문서화에도 많은 관심이 있으며, 수많은 오픈소스 프로젝트들의 표준 문서 형식으로 쓰이는 DocBook의 국내 사용자 모임인 닥북 한국(http://docbook.kr)의 일원이다. 현재 번역서 정보 사이트 occam’s Razor(http://occamsrazr.net)와 게임 개발 및 개발서 관련 사이트 GpgStudy(http://www.gpgstudy.com)를 운영하고 있다.
목차
- 소개
_ 사업 목표
_ 이상적인 시스템 구조
_ 이상적인 릴리스 과정
_ 이상적인 운영
= 1부 설계: 시스템 만들기 =
CHAPTER 1 분산 세계에서의 설계
1.1 대규모 시스템의 가시성
1.2 단순함의 중요성
1.3 조합
1.3.1 부하 분산기와 다수의 뒷단 복제본들
1.3.2 서버와 다수의 뒷단들
1.3.3 서버 트리
1.4 상태의 분산
1.5 CAP 원리
1.5.1 일관성
1.5.2 가용성
1.5.3 분리 저항
1.6 느슨히 결합된 시스템
1.7 속도
1.8 요약
연습문제
CHAPTER 2 운영을 위한 설계
2.1 운영상의 요구사항
2.1.1 구성
2.1.2 시동과 종료
2.1.3 대기열 배출
2.1.4 소프트웨어 업그레이드
2.1.5 백업과 복구
2.1.6 중복성(redundancy)
2.1.7 복제된 데이터베이스
2.1.8 즉석 교체
2.1.9 개별 기능 켜고 끄기
2.1.10 우아한 강등
2.1.11 접근 제어와 속도 제한
2.1.12 자료 도입 제어
2.1.13 감시
2.1.14 감사
2.1.15 디버깅 계장(instrumentation)
2.1.16 예외 수집
2.1.17 운영을 위한 문서화
2.2 운영을 위한 설계의 구현
2.2.1 기능을 처음부터 구축
2.2.2 필요성을 발견한 후 개발팀에 요청
2.2.3 운영팀이 기능을 직접 작성
2.2.4 서드파티 공급업체와 협력
2.3 모형의 개선
2.4 요약
연습문제
CHAPTER 3 서비스 플랫폼 선택
3.1 서비스 추상 수준
3.1.1 IaaS(서비스로서의 기반구조)
3.1.2 PaaS(서비스로서의 플랫폼)
3.1.3 SaaS(서비스로서의 소프트웨어)
3.2 기계의 종류
3.2.1 물리적 기계
3.2.2 가상 기계
3.2.3 컨테이너
3.3 자원 공유 수준
3.3.1 법규 준수
3.3.2 개인정보
3.3.3 비용
3.3.4 제어권
3.4 코로케이션
3.5 선택 전략
3.6 요약
연습문제
CHAPTER 4 응용 프로그램 구조
4.1 단일 기계 웹 서버
4.2 3층 웹 서비스
4.2.1 부하 분산기의 종류
4.2.2 부하 분산 방법
4.2.3 공유 상태가 있는 부하 분산
4.2.4 사용자 신원
4.2.5 규모 변화
4.3 4층 웹 서비스
4.3.1 앞단
4.3.2 응용 프로그램 서버
4.3.3 구성 옵션
4.4 역 프록시 서비스
4.5 클라우드 규모 서비스
4.5.1 전역 부하 분산기
4.5.2 전역 부하 분산 방법
4.5.3 사용자 고유 자료에 근거한 전역 부하 분산
4.5.4 내부 기간망
4.6 메시지 버스 구조
4.6.1 메시지 버스의 설계
4.6.2 메시지 버스의 신뢰성
4.6.3 예제 1: 링크 단축 사이트
4.6.4 예제 2: 직원 인적자원 자료 갱신
4.7 서비스 지향 구조
4.7.1 유연성
4.7.2 지원
4.7.3 모범 관행
4.8 요약
연습문제
CHAPTER 5 규모 변화를 위한 설계 패턴
5.1 일반 전략
5.1.1 병목 식별
5.1.2 구성요소들의 재공학
5.1.3 결과의 측정
5.1.4 능동적 대처
5.2 규모 확장
5.3 AKF 규모 변화 입방체
5.3.1 x축: 수평 중복
5.3.2 y축: 기능 또는 서비스별 분할
5.3.3 z축: 조회 지향적 분할
5.3.4 조합
5.4 캐싱
5.4.1 캐시 효율성
5.4.2 캐시 위치
5.4.3 캐시 영속성
5.4.4 캐시 교체 알고리즘
5.4.5 캐시 항목 무효화
5.4.6 캐시 크기
5.5 자료 파편화
5.6 스레드 적용
5.7 대기열 적용
5.7.1 장점
5.7.2 변형들
5.8 CDN
5.9 요약
연습문제
CHAPTER 6 탄력성을 위한 설계 패턴
6.1 하드웨어 탄력성보다 중요한 소프트웨어 탄력성
6.2 모든 것은 결국에는 고장난다
6.2.1 분산 시스템의 MTBF
6.2.2 전통적인 접근방식
6.2.3 분산 컴퓨팅 접근방식
6.3 예비 수용량을 이용한 탄력성 확보
6.3.1 예비 수용량 결정
6.3.2 부하 공유 대 즉석 예비
6.4 장애 영역
6.5 소프트웨어 장애
6.5.1 소프트웨어 충돌
6.5.2 소프트웨어 멈춤
6.5.3 죽음의 질의
6.6 물리적 장애
6.6.1 부품과 구성요소
6.6.2 기계
6.6.3 부하 분산기
6.6.4 랙
6.6.5 데이터센터
6.7 과부하 장애
6.7.1 소통량 급증
6.7.2 DoS 및 DDoS 공격
6.7.3 스크레이핑 공격
6.8 사람의 실수
6.9 요약
연습문제
= 2부 운영: 시스템 실행하기 =
CHAPTER 7 분산 세계에서의 운영
7.1 분산 시스템의 운영
7.1.1 SRE팀 대 전통적인 전사적 IT 부서
7.1.2 변화 대 안정성
7.1.3 SRE의 정의
7.1.4 대규모 운영
7.2 서비스의 수명 주기
7.2.1 서비스 개시
7.2.2 서비스 폐지
7.3 운영팀을 위한 조직화 전략
7.3.1 팀원의 업무일 구분
7.3.2 기타 전략들
7.4 가상 사무실
7.4.1 의사소통 메커니즘
7.4.2 의사소통 방침
7.5 요약
연습문제
CHAPTER 8 개발운영 문화
8.1 개발운영이란?
8.1.1 전통적인 접근방식
8.1.2 개발운영 접근방식
8.2 개발운영의 3대 방법
8.2.1 제1 방법: 작업흐름
8.2.2 제2 방법: 피드백 개선
8.2.3 제3 방법: 끊임없는 실험과 학습
8.2.4 작은 일괄 단위들이 더 낫다
8.2.5 전략의 적용
8.3 개발운영의 역사
8.3.1 진화
8.3.2 사이트 신뢰성 공학
8.4 개발운영의 가치와 원리
8.4.1 관계
8.4.2 통합
8.4.3 자동화
8.4.4 지속적인 개선
8.4.5 흔한 비기술적 개발운영 관행
8.4.6 개발운영의 일반적인 기술적 관행들
8.4.7 릴리스 공학과 관련된 개발운영의 관행들
8.5 개발운영으로의 전환
8.5.1 첫걸음
8.5.2 사업 수준에서의 개발운영
8.6 애자일과 지속적 인도
8.6.1 애자일이란 무엇인가?
8.6.2 지속적 인도란 무엇인가?
8.7 요약
연습문제
CHAPTER 9 서비스 인도: 구축 국면
9.1 서비스 인도 전략
9.1.1 패턴: 현대적인 개발운영 방법론
9.1.2 반反패턴(안티패턴): 폭포수 방법론
9.2 품질의 선순환
9.3 구축 국면의 단계들
9.3.1 개발
9.3.2 커밋
9.3.3 구축
9.3.4 패키지
9.3.5 등록
9.4 구축 콘솔
9.5 지속적 통합
9.6 작업 이전 인터페이스로서의 패키지
9.7 요약
연습문제
CHAPTER 10 서비스 인도: 배치 국면
10.1 배치 국면의 단계들
10.1.1 승격
10.1.2 설치
10.1.3 구성
10.2 검사와 승인
10.2.1 검사
10.2.2 승인
10.3 운영 콘솔
10.4 기반구조 자동화 전략
10.4.1 물리적 기계 마련
10.4.2 가상 기계 마련
10.4.3 운영 체제와 서비스 설치
10.5 지속적 인도
10.6 코드로서의 기반구조
10.7 기타 플랫폼 서비스들
10.8 요약
연습문제
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.1.1 잔여물 원리를 따르는 자동화 접근방식
12.1.2 보충 원리를 따르는 자동화 접근방식
12.1.3 상보성 원리를 따르는 자동화 접근방식
12.1.4 시스템 관리자를 위한 자동화
12.1.5 경험에서 얻은 교훈들
12.2 도구 구축 대 자동화
12.2.1 예: 자동차 제조
12.2.2 예: 컴퓨터 구성
12.2.3 예: 계정 생성
12.2.4 도구는 좋다, 자동화는 더 좋다
12.3 자동화의 목표
12.4 자동화 작성
12.4.1 자동화 작성 시간 마련
12.4.2 고역 줄이기
12.4.3 첫 번째 자동화 대상 선정
12.5 자동화 방법
12.6 언어 도구들
12.6.1 셸 스크립팅 언어
12.6.2 스크립팅 언어
12.6.3 컴파일식 언어
12.6.4 구성 관리용 언어
12.7 소프트웨어 공학 도구들과 기법들
12.7.1 문제점 추적 시스템
12.7.2 버전 관리 시스템
12.7.3 소프트웨어 패키지 작성
12.7.4 스타일 지침
12.7.5 TDD
12.7.6 코드 검토
12.7.7 딱 필요한 만큼의 코드를 작성
12.8 다중 입주 시스템
12.9 요약
연습문제
CHAPTER 13 설계 문서
13.1 설계 문서의 개요
13.1.1 변경과 그 논거의 문서화
13.1.2 과거 의사결정들을 보관하는 문서화
13.2 설계 문서의 구성
13.3 문서 양식
13.4 문서 보관소
13.5 설계 문서 검토의 작업흐름
13.5.1 검토자와 승인자
13.5.2 결재
13.6 설계 문서 표준의 채용
13.7 요약
연습문제
CHAPTER 14 호출대기
14.1 호출대기의 설계
14.1.1 SLA로 시작
14.1.2 호출대기 명단
14.1.3 당직대기
14.1.4 호출대기 일정 설계
14.1.5 호출대기 일정표
14.1.6 호출대기의 빈도
14.1.7 통지의 종류
14.1.8 근무 시간 외 유지보수 조정
14.2 호출대기 수행
14.2.1 교대근무 전 임무
14.2.2 정규 호출대기 임무
14.2.3 경보 처리 임무
14.2.4 관찰, 지향, 결정, 실행: OODA 루프
14.2.5 호출대기 각본
14.2.6 서드파티 상부 보고
14.2.7 교대근무 마감 임무
14.3 다음 호출대기 교대근무까지의 작업
14.3.1 장기적 해결책
14.3.2 사후 분석
14.4 주기적인 경보 검토
14.5 경보 줄이기
14.6 요약
연습문제
CHAPTER 15 재난 대비
15.1 사고방식
15.1.1 반취약 시스템
15.1.2 위험 줄이기
15.2 개인 훈련: 불운의 바퀴
15.3 팀 훈련: 소방 훈련
15.3.1 서비스 검사
15.3.2 무작위 검사
15.4 조직 훈련: 게임 데이/DiRT
15.4.1 첫걸음
15.4.2 범위 확장
15.4.3 계획과 구현
15.4.4 DiRT 검사의 예
15.5 사고지휘체계
15.5.1 작동 방식: 공공 안전 분야
15.5.2 작동 방식: IT 운영 분야
15.5.3 사고 대응 활동 계획서
15.5.4 모범 관행
15.5.5 사고지휘체계의 예
15.6 요약
연습문제
CHAPTER 16 감시의 기초
16.1 개요
16.1.1 감시의 용도
16.1.2 서비스 관리
16.2 감시 정보의 소비자
16.3 감시 대상
16.4 감시 자료의 유지
16.5 메타 감시
16.6 로그
16.6.1 접근방식
16.6.2 타임스탬프
16.7 요약
연습문제
CHAPTER 17 감시 시스템의 구조와 관행
17.1 감지 및 측정
17.1.1 블랙박스 측정 대 화이트박스 측정
17.1.2 직접 측정 대 합성 측정
17.1.3 속도 측정 대 능력 측정
17.1.4 계측치 측정 대 카운터 측정
17.2 수집
17.2.1 밀기 대 당기기
17.2.2 프로토콜 선택
17.2.3 서버 자체 측정 대 에이전트 대 주기적 점검
17.2.4 중앙 수집기 대 지역별 수집기
17.3 분석 및 계산
17.4 경보 및 상부 보고 구성요소
17.4.1 경보, 상부 보고, 확인
17.4.2 소음 대 금지
17.5 시각화
17.5.1 백분위수
17.5.2 스택 랭킹
17.5.3 히스토그램
17.6 저장
17.7 구성
17.8 요약
연습문제
CHAPTER 18 수용량 계획 수립
18.1 표준 수용량 계획 수립
18.1.1 현재 사용량
18.1.2 정상 성장
18.1.3 계획된 성장
18.1.4 여유분
18.1.5 탄력성
18.1.6 시간표
18.2 고급 수용량 계획 수립
18.2.1 1차 자원의 식별
18.2.2 수용량 한계 파악
18.2.3 핵심 동인 식별
18.2.4 참여도 측정
18.2.5 자료의 분석
18.2.6 핵심지표 감시
18.2.7 수용량 계획 수립의 위임
18.3 자원 회귀
18.4 새 서비스 개시
18.5 조달 시간 줄이기
18.6 요약
연습문제
CHAPTER 19 KPI 작성
19.1 KPI란 무엇인가?
19.2 KPI 작성
19.2.1 단계 1: 이상적 상황을 상상한다
19.2.2 단계 2: 이상과의 거리를 재는 방법을 고안한다
19.2.3 단계 3: 사람들의 행동 변화를 예상한다
19.2.4 단계 4: 수정하고 선택한다
19.2.5 단계 5: KPI를 배치한다
19.3 KPI의 예: 가상 기계 할당
19.3.1 첫 번째 패스
19.3.2 두 번째 패스
19.3.3 KPI의 평가
19.4 사례 연구: 구글 오류 예산
19.4.1 목표 대립
19.4.2 통합된 목표
19.4.3 모두의 이익
19.5 요약
연습문제
CHAPTER 20 탁월한 운영
20.1 탁월한 운영은 어떤 모습인가?
20.2 훌륭함을 측정하는 방법
20.3 평가 방법론
20.3.1 주요 운영 책무
20.3.2 평가 수준
20.3.3 평가를 위한 질문과 징표
20.4 서비스 평가
20.4.1 평가 대상 식별
20.4.2 각 서비스의 평가
20.4.3 서비스 간 결과 비교
20.4.4 결과에 기초한 행동
20.4.5 평가와 프로젝트 계획 수립의 빈도
20.5 조직 차원의 평가
20.6 개선 수준
20.7 평가 체계의 도입과 적용
20.8 요약
연습문제
맺음말
= 3부 부록 =
부록 A 평가
부록 B 분산 컴퓨팅과 클라우드의 기원과 미래
부록 C 규모 변화 관련 용어 및 개념
부록 D 문서 양식과 예제 문서
부록 E 읽을거리 추천
출판사 서평
★ 이제 클라우드다!
웹 규모 IT(Web-scale IT) 시대가 도래하였다. 앱과 서비스 시장에서 국경이 사라지면서 이제 지구 상의 모든 이가 잠재 고객이고 모든 시간대에 고객이 깨어 있다. 한시도 예측하기 어려워진 이러한 환경에서 성공적인 IT 비즈니스를 위해서는 서비스의 신뢰성(reliability)과 규모가변성(scalability)은 필수가 되었다. 그리고 이를 위해서는 각 구성요소들이 분산되고 느슨하게 결합되어야 한다. 거스를 수 없는 이 흐름은 서비스와 인프라의 설계와 구축은 물론, 운영 방식에까지 근본적인 변화를 요구한다.
이 책은 ‘분산’과 ‘클라우드’에 중점을 두어, 개발운영(DevOps)과 사이트 신뢰성 공학(SRE)을 대규모 시스템 관리에 적용하는 방법을 소개하여, 여러분을 새로운 시대에 맞는 전문가의 길로 인도할 것이다.
★ 대상 독자
이 책은 시스템 관리자(system administrator)와 그들을 관리하는 관리자(manager)를 위한 책이다. 독자가 컴퓨터 과학에 대한 배경 지식을 갖추고 있다고 가정하지는 않지만, UNIX/Linux 시스템 관리와 네트워킹에 관한 경험이 있고 운영 시스템 개념들에 익숙하다고 가정한다.
★ 주요 내용
설계 : 현대적 웹 규모 분산 시스템을 구축한다.
_ 대규모 시스템 설계의 기본
_ 클라우드 관리를 위한 새로운 소프트웨어 엔지니어링 이해
_ 장애 탄력성을 갖추고 동적으로 확장/성장하는 시스템 구축
_ 개발운영 원칙과 문화 심기
_ IaaS/PaaS/SaaS와 가상 플랫폼 선택하기
운영 : 개발운영과 사이트 신뢰성 공학 전략을 녹여 운영한다.
_ 비가동시간 없이 활성 시스템 업그레이드하기
_ 자동화, 무엇을 어떻게 할 것인가?
_ 가동시간 향상을 위한 당직대기 모범 사례
_ 분산 시스템 관리가 근본적으로 다른 이유
_ 탄력성 문제를 사전에 식별하고 해결하는 방법
평가와 개선 : 운영 효과를 평가하고 개선한다.
_ 지속적 개선을 위한 과학적 관리 방법
_ 바로 활용할 수 있는 평가 체계 수록
기본정보
ISBN | 9788968482618 | ||
---|---|---|---|
발행(출시)일자 | 2016년 02월 25일 | ||
쪽수 | 656쪽 | ||
크기 |
183 * 235
* 26
mm
/ 1157 g
|
||
총권수 | 1권 | ||
원서(번역서)명/저자명 | The Practice of Cloud System Administration/Addison-Wesley Professional |
Klover 리뷰 (2)
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
클라우드 시스템을 관리하는 기술
- 클라우드 관리자가 알아야 할 웹 규모 분산 시스템 설계와 운영
최근에 있었던 알파고 이슈와 함께, 빅데이터라는 이슈가 요즘 많이 들리는 것 같아서
얼핏 그와 관련된 내용에 대해 알아보고 싶었습니다. 클라우드라는 이슈가 그런 빅데이터나
알파고나 머신 러닝과 같은 것들과 얼마나 관련 있는지는 알 수 없었지만,
이것 저것 다 모르니 얼마나 관련이 있는지 혹은 없는지 알 수 없었으므로,
이런 무지를 좀 더 개선해보기 위한 한 걸음으로, 이 책을 통해 클라우스 시스템에 대한
이해도늘 높여보기위해 이 책을 읽어보기로 했습니다.
클라우드 시스템을 관리하는 내용이 들어 있다는 것이 이 책에 제목이므로
시스템 관리자로서 경험이 있다면, 좀 더 좋았겠지만, 그런 경험이 없는 상태더라도
일단 도전에 의의를 두고 읽어 나갔습니다.
서문을 읽으면서, 책의 대상 독자에 대한 설명을 보니, 제가 읽어 나가기에는
어려움이 많을지도 모른다는 불길한(?) 예감이 들었고, 읽어 나가며, 그런 예감은
틀리지 않았다는 것을 확인하는 지난한 과정을 거쳤습니다.
서문에 나온 이 책의 대상 독자는
'시스템 관리자들과 그들을 관리하는 관리자들'이라고 되어 있고,
유닉스/리눅스 시스템 관리와 네트워킹에 관한 경험이 있고,
운영 시스템에 대한 개념들에 익숙하다는 가정으로 책을 써 나갔다고 되어 있습니다.
책은 크게 세 부분 1부, 2부, 부록으로 되어 있습니다.
1부 설계, 2부 운영, 이렇게 되어 있어서 그에 대한 내용이 나와 있지만,
각각의 내용은 제가 이전에 봤던 클라우드 혹은 운영 같은 책을 보면 나오던
특정 시스템을 설치하는 방법이나, 그런 시스템을 운영하는 방식에 대한
'구체적인' 이야기들은 거의 들을 수 없습니다.
책의 서문에 밝힌 것 처럼
'시기를 타지않은 근본적인 원리들과 관행들을 다룬다'는 말이 무엇인지
잘 알 수 있었습니다.
사례연구라고 특정한 내용이 중간중간에 나오는 것으로 제가 기대했던(?)
내용을 알려주는 방식을 취하고 있고, 그 외에는 원리와 관행을 말하는데
충실합니다.
또한, 여기서는 어느 순간 부터 '클라우드'라는 말대신에 '분산'컴퓨팅이라는
말을 사용하고 있습니다. 클라우드는 '사용하는 사람마다 뜻이 다른 마케팅
용어'이기 때문이라고 하는데요.
여기서 말하는 시스템이 무엇인지, 어떤 원리와 관행에 집중하고 있는지
새삼느낄 수 있었습니다.
어려운 혹은 구체적으로 알수 없는 이론과 같은 추상적인 내용이 주욱 나와있고,
장이 끝날때마다, 십여개의 연습문제가 있는 이 책을 보면
책의 형식이나 느낌이 대학교재 같은 느낌을 줍니다.
책의 내용은 어려우면서도, 시험은 봐야하고, 이른바 실제 필드에서
몇 년쯤 구르고 난 뒤에야 이해가 될 법한 이른바 '아카데믹'한 느낌의 책이라서
인터넷을 통해 이 책을 교재로 강의한 내용이 있지않을까라는 생각이 들면서,
실제 그런 강의를 찾아보고 싶은 느낌이 들기도 했습니다.
클라우드에 대한 대강의 이미지와 개념만 있는 상태에서 읽어나간 이 책은
서문에 나온 것과 같은 배경지식이 부족한 상태에서 보게 되면,
꽤나 읽기 어려운 책입니다.
또한, 특정 기술이나 제품에 대한 설명을 기대하게 되면, 실망할 수도 있습니다.
그러나, 클라우드 아니 분산 컴퓨팅에 대한 근본적인 원리들과 관행들이
무엇인지 확인해 보고 싶은 분들이라면, 좋은 선택이 되리라 생각합니다.
최대한 공정하고 객관적으로 그리고 능동적으로 리뷰를 진행하겠습니다.
책을 무료로 배송 받긴 하였지만, 저는 필자와 출판사쪽과는 아무 커넥션이
없음을 알려 드립니다.
Background:
먼저 전공은 Computer Science 학사,
필드에서 일을 한지는 6년차,
학부때 코딩 경험까지 포함하면 12년 정도이며,
현재는 기술 기반 스타트업을 운영하고 있습니다.
필드에서 프리랜서 혹은 A.A. 정도의 role 을 수행하였음을 밝혀 둡니다.
Pros: 분산형 서버 운용이라는 터프한 환경을 살아가는 DevOps 에게 필요한 유용한 정보들이 많았다.
개인적으로 이러한 경험을 직접적 혹은 간접적으로 느낄 수 있는 기회가 흔치 않아,
목이 마르던(?) 차에 정말 좋은 책을 만나게 되서 기뻤다.
먼저 첫번째 파트는 내가 설계해 보았던 몇가지 large-scale systems 의 아키텍쳐나 디자인 패턴들에 적용할 수 있는 가장 좋은 해결책들에 대한 힌트를 얻을 수 있었다.
물론 코드는 나오지 않지만 아키텍쳐 구조나 디자인 패턴에 대한 조언을 얻기가 쉽지 않은 현실에 비춰볼때 분명 유용한 내용이다.
두번째 파트는 클라우드 시스템등! modern operations 에 대한 여러 자동화에 대한 얘기와 목표 같은 주로 devOps 에게 요구 될 수 있는 업무 role 에 대한 best practices 로 이루어져 있다.
이러한 조언도 생각보다 얻기가 어려웠기 때문에 분명 유용한 내용이다.
Cons: 사실 별로 없다.
너무 아카데믹 하다는 생각도 들었다.
클라우드에 대한 내용이 사실 적다. 그도 그럴것이 원서가 2014년 판인지라 그 때 상황에서는 어쩔 수 없었던게 아닐까 생각한다.
좀 더 고급주제의 책도 출간이 되면 좋겠다는 바람이 이루어진 것 같아 기쁘게 리뷰를 마치겠습니다.