한빛출판네트워크

IT/모바일

클라우드 시스템을 관리하는 기술

한빛미디어

번역서

절판

클라우드 시스템을 관리하는 기술
좋아요: 24
  • 저자 : 토머스 리몬첼리 , 스트래터 체일럽 , 크리스티나 호건
  • 역자 : 류광
  • 출간일 : 2016-02-25
  • 페이지 : 656쪽
  • ISBN : 9788968482618
  • 물류코드 :2261

합계 : 32,400

  • 클라우드 규모 서비스를 실현하는 이론과 실전 노하우를 정리한 지침서

    이 책은 대규모 클라우드 인프라와 서비스의 구조와 설계 패턴, 그리고 이를 운영하는 방법까지, 시스템과 팀이 유기적으로 움직이는 비법을 제시한다.

    저자들의 구글, 엣시(Etsy), 트위터, 페이스북, 넷플릭스, 아마존 등 거대 기업에서의 사례와 경험에서 시기를 타지 않는 근본적인 원리(principle)와 관행(practice), 특정 제품이나 시스템을 선택할 때 독자가 반드시 살펴봐야 할 품질 요소들을 이 책에 담았다. 이러한 접근법 덕분에 시간이 흘러 기술이 변해도 독자는 이 업계에서 여전히 준비된 전문가로 남게 될 것이다.

     

    이제 클라우드다!
    웹 규모 IT(Web-scale IT) 시대가 도래하였다. 앱과 서비스 시장에서 국경이 사라지면서 이제 지구 상의 모든 이가 잠재 고객이고 모든 시간대에 고객이 깨어 있다. 한시도 예측하기 어려워진 이러한 환경에서 성공적인 IT 비즈니스를 위해서는 서비스의 신뢰성(reliability)과 규모가변성(scalability)은 필수가 되었다. 그리고 이를 위해서는 각 구성요소들이 분산되고 느슨하게 결합되어야 한다. 거스를 수 없는 이 흐름은 서비스와 인프라의 설계와 구축은 물론, 운영 방식에까지 근본적인 변화를 요구한다.

    이 책은 ‘분산’과 ‘클라우드’에 중점을 두어, 개발운영(DevOps)과 사이트 신뢰성 공학(SRE)을 대규모 시스템 관리에 적용하는 방법을 소개하여, 여러분을 새로운 시대에 맞는 전문가의 길로 인도할 것이다.

     

     

    【대상 독자】
    이 책은 시스템 관리자(system administrator)와 그들을 관리하는 관리자(manager)를 위한 책이다. 독자가 컴퓨터 과학에 대한 배경 지식을 갖추고 있다고 가정하지는 않지만, UNIX/Linux 시스템 관리와 네트워킹에 관한 경험이 있고 운영 시스템 개념들에 익숙하다고 가정한다.

     

    【주요 내용】
    설계 : 현대적 웹 규모 분산 시스템을 구축한다.

    • 대규모 시스템 설계의 기본
    • 클라우드 관리를 위한 새로운 소프트웨어 엔지니어링 이해
    • 장애 탄력성을 갖추고 동적으로 확장/성장하는 시스템 구축
    • 개발운영 원칙과 문화 심기
    • IaaS/PaaS/SaaS와 가상 플랫폼 선택하기

     

    운영 : 개발운영과 사이트 신뢰성 공학 전략을 녹여 운영한다.

    • 비가동시간 없이 활성 시스템 업그레이드하기
    • 자동화, 무엇을 어떻게 할 것인가?
    • 가동시간 향상을 위한 당직대기 모범 사례
    • 분산 시스템 관리가 근본적으로 다른 이유
    • 탄력성 문제를 사전에 식별하고 해결하는 방법

     

    평가와 개선 : 운영 효과를 평가하고 개선한다.

    • 지속적 개선을 위한 과학적 관리 방법
    • 바로 활용할 수 있는 평가 체계 수록
  • [저자] 토머스 리몬첼리

    국제적으로 유명한 저자이자 강연자, 시스템 관리자이다. 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년 체스 올림피아드에 아일랜드 대표로 참가했다. 현재 스위스에서 살고 있다.

    [역자] 류광

    25년 이상의 번역 경력을 가진 전문 번역가로, 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈와 『UNIX 고급 프로그래밍』(Advanced Programming in UNIX Environment ) 제2판 및 제3판, 『인공지능: 현대적 접근방식』(Artificial Intelligence: A Modern Approach) 제3판 및 제4판, 『Game Programming Gems』 시리즈를 비롯해 80권 이상의 다양한 IT 전문서를 번역했다. 본서와 관련이 깊은 번역서로는 『유연한 소프트웨어를 만드는 설계 원칙』(한빛미디어, 2020)이 있다.

     

    개인 웹사이트 류광의 번역 이야기(https://occamsrazr.net)와 게임 개발 웹사이트 Gpg Study(https://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 읽을거리 추천

  •  

    • 책 내용은 웹 프로그래머인 제게 어려웠습니다. 하지만 그건 타당한 어려움이었던 게, 이 책은 서문에서 밝히듯이 "시기를 타지 않는 근본적인 원리(principle)들과 관행(practice:실천사항)들"을 다루는 책이기 때문이라고 생각합니다.

      또한 "종종 이상주의적인 태도를 취하는데, 이는 의도적인 것이다. 이 책은 독자가 추구해야 할 더 나은 상황을 제시한다. 이 책에서 우리 저자들은 기준을 높이고자 했다."고 밝히고 있듯이 도달해야 할 높은 지점을 제시합니다. 그러니 관련 지식이 부족한 제게 어려웠던 건 이상한 일은 아닙니다.



      상세 목차를 보고 놀라기도 했고 어렵겠구나 예상도 했습니다. 지식을 생각보다 훨씬 더 폭넓게 다루고 있기 때문이었습니다. 한 번쯤 들어보긴 했는데 뭘까 싶은 것에서 부터 처음 들어보는 것 까지 - "의사소통 매커니즘", "개발운영 문화", KPI까지 다루고 있습니다.



      특히 기대했던 것은 "개발운영 문화"였습니다. 잘못 이해하고 있던 부분을 풀어준 챕터이기도 합니다.



      그래서 읽고 나니, 이 책은 클라우드 시스템을 구축하고 운영하는 데 필요한 지식을 모두 통합한 책이라고 생각하게 되었습니다.



      시스템 관리자가 아닌 웹 프로그래머가 읽어서 그래겠지만, 여러 분야의 지식과 단어를 알게 되어 좋았습니다.



      그리고 이 책은 부록에 문서 양식과 예제 문서가 있어서 어떻게 문서를 쓸 지 고민을 줄이고 바로 가져다 쓸 수 있을 것도 마음에 들었고요.



      굳이 아쉬운 점을 꼽자면 부록 E의 참고 문헌이 본문의 어느 부분과 연결되는 지 표시가 있었다면 시스템 엔지니어가 아닌 사람도 참고 문헌을 좀 더 쉽게 볼 수 있었을 것 같습니다.



      그래서 제가 생각하는 이 책을 추천하고 싶은 대상은 이렇습니다.

      - "시스템 관리자(system administrator)들과 그들을 관리하는 관리자(manager)" : 책에서 밝힌 대상 독자

      - "클라우드를 구성하는 서비스를 구축하고 운영하는 방법"을 알고 싶은 사람 : 클라우드 기반 서비스 사용법이 아니다!

      - 호기심 많은 프로그래머 : 클라우드 시스템 구축/운영은 어떤 점이 어렵고 어떻게 돌파해나가는지 궁금한 사람

    • Disclaimer: 먼저 한빛 리더스에 선정해 되었고, 의무적으로 해야만 하는 리뷰이지만,

      최대한 공정하고 객관적으로 그리고 능동적으로 리뷰를 진행하겠습니다.

      책을 무료로 배송 받긴 하였지만, 저는 필자와 출판사쪽과는 아무 커넥션이

      없음을 알려 드립니다.

      Background:

      먼저 전공은 Computer Science 학사,

      필드에서 일을 한지는 6년차,

      학부때 코딩 경험까지 포함하면 12년 정도이며,

      현재는 기술 기반 스타트업을 운영하고 있습니다.

      필드에서 프리랜서 혹은 A.A. 정도의 role 을 수행하였음을 밝혀 둡니다.





      Pros: 분산형 서버 운용이라는 터프한 환경을 살아가는 DevOps 에게 필요한 유용한 정보들이 많았다.

      개인적으로 이러한 경험을 직접적 혹은 간접적으로 느낄 수 있는 기회가 흔치 않아,

      목이 마르던(?) 차에 정말 좋은 책을 만나게 되서 기뻤다.

      먼저 첫번째 파트는 내가 설계해 보았던 몇가지 large-scale systems 의 아키텍쳐나 디자인 패턴들에 적용할 수 있는 가장 좋은 해결책들에 대한 힌트를 얻을 수 있었다.

      물론 코드는 나오지 않지만 아키텍쳐 구조나 디자인 패턴에 대한 조언을 얻기가 쉽지 않은 현실에 비춰볼때 분명 유용한 내용이다.

      두번째 파트는 클라우드 시스템등! modern operations 에 대한 여러 자동화에 대한 얘기와 목표 같은 주로 devOps 에게 요구 될 수 있는 업무 role 에 대한 best practices 로 이루어져 있다.

      이러한 조언도 생각보다 얻기가 어려웠기 때문에 분명 유용한 내용이다.





      Cons: 사실 별로 없다.

      너무 아카데믹 하다는 생각도 들었다.

      클라우드에 대한 내용이 사실 적다. 그도 그럴것이 원서가 2014년 판인지라 그 때 상황에서는 어쩔 수 없었던게 아닐까 생각한다.

      좀 더 고급주제의 책도 출간이 되면 좋겠다는 바람이 이루어진 것 같아 기쁘게 리뷰를 마치겠습니다.

    • 개요



      서문 중



      이 책은 시기를 타지 않는 근본적인 원리(principle)들과 관행(practice: 실천 사항)들을 다룬다. 따라서 특정 제품이나 기술을 사용하라고 독자에게 권하지는 않는다.

      ... 중략 ...

      이러한 접근방식은 시간이 흘러서 기술들이 변해도 독자가 이 업계에서 여전히 준비된 전문가로 남게 하기 위한 것이다.

      최종 작업수행자에게 중요하다고 할 수 있는 ”설정”보다



      방법론에 대해서 시사 하는 바가 크다고 볼 수 있다고 예상 했었는데

      책을 다 읽고난 지금 예상한 바가 맞았다.



      전산학개론, 시스템분석과설계 처럼 이론서에 가까운 내용과 편집 이면서

      저자 및 그외 인물들의 경험이 같이 실려 있는 형태라고 볼 수 있다.







      대상 독자



      상당히 정확하게 책의 서문 에서 소개 하고 있다.



      시스템 관리자

      시스템 관리자를 관리 하는 관리자



      UNIX/Linux 시스템 관리와 네트워킹에 관한 경험이 있고 운영 시스템 개념들에 익숙하다고 가정 한다.

      역시 책을 읽고 난 뒤의 내 생각도 틀리지 않다.

      입문서가 아니면서 이론서 이기 때문에 어느정도 경험이 있는 실무자에게 알맞겠다.



      서문 처럼 익숙한지는 모르겠지만.. 그럭저럭 내가 해당 하긴 한다.







      특징 장/단점



      클라우드에 특화 되었는가?



      사실 그렇지는 않아 보인다.

      시스템운영론을 경험과 함께 집필한 책에

      최근 주목받는 ”클라우드”요소를 포함한 듯 보인다.



      실제로 원서가 이러한 개정이 있었는지는 모르지만



      시스템운영론의 일부 내용에 클라우드에 대한 내용이 있다고 보면 될듯 하다.



      이것이 나쁘다는 얘기는 아니다. 이 책은 aws콘솔 사용법을 소개하는 책이 아니니까…







      연습문제



      각 장마다 10문항 가량의 연습문제를 출제 하고 있다.

      장점이라기 보다는 책의 편집 측면의 특징 이겠으나



      거의 전공서적에 가까운 기술이론서 형식을 띄는 책이기 대문에

      이론을 주욱~ 읽은 뒤

      문제를 통해 활용(해보는 듯한…) 형태로 복기를 해본다고 할까??



      뭐 이런 식으로 곱씹어 볼 수 있기 때문에 개인적으로 좋은 평가를 주고 싶은 구성이다.



      단, 각 장의 내용을 외우거나 제대로 이해하지 못하면 문제를 풀 수 없다.

      뭔 학과 시험 문제 같기도 하고.. ㅋ







      경험의 소개



      어떤 상황 에서

      어떤 문제가 발견 되어

      어떤 방식으로 해결(개선) 했다



      는 형태로 필자(및 그외)의 경험담이 들어 있다.



      단지, ”XXX로 하세요” 라고만 설명하게 되면 무미 건조한 내용을

      경험의 소개를 통해 좀더 마음에 와닿도록 해준다고 생각한다.







      단점



      사실 이걸 단점이라고 적기에는 좀 무리가 있으나…

      책이 좀 어렵다.

      (그래서 단기간에 뭔가를 습득하는 류의 책은 아니다.)

      어려워서 읽기가 좀 힘들었다. (적어도 나 한테는… )







      마무리



      시스템 엔지니어를 직업으로 삼고 싶은 사람이 있다면…

      다른 직업을 찾아라!!! (다시 얘기 하지만 힘들어도 너무 힘들어 ㅋ)



      는 농담 아니고… 그냥 다른것을… 해봐..;;;

      그럼 에도 불구하고 한번 해보고 싶다면



      이 책은 언젠가 한번 읽어야할 책



      책 내용 자체가 무척이나 어렵게 느껴지고 단시간에 휙~ 읽어 지는 성격이 아니기 때문에

      두고서 제대로 시간을 내어 읽어 보면 좋겠지만… 쉽지는 않을걸…

  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?