카오스 공학 (견고한 시스템을 만드는 카오스 공학의 이론과 실제)

카오스 공학 (견고한 시스템을 만드는 카오스 공학의 이론과 실제)

$20.83
Description
카오스 공학의 기본 개념부터 카오스 실험을 구성하고 자동화하는 방법, 나아가 협업을 통해 지속적인 카오스 공학을 실현하는 방식까지 종합적인 내용을 다루는 실무서다. 가장 먼저, 카오스 공학을 쉽게 이해하기 위한 핵심 원칙을 제시한다. 배경 이론을 갖춘 다음에는 카오스 실험을 계획하고 이를 실행하는 과정에서 필요한 실질적인 고려사항을 사례 중심으로 설명한다. 마지막으로 지속적인 카오스를 통해 자동화와 운영, 협업 관점에서 카오스 공학의 진화 방향을 소개한다.
저자

러스마일스

RussMiles
무료오픈소스카오스툴킷의공동창립자이자ChaosIQ프로젝트를담당하는회사의최고경영자다.지난3년동안스타트업과기업을도와서취약점을발견하고학습하는활동을통해그들이가진시스템의복원력을향상시켜왔다.

목차

1부.카오스공학의핵심

1장.카오스공학의정수
카오스공학의정의
__카오스공학은전체사회공학시스템을해결한다
__어두운부채의위치
카오스공학프로세스
카오스공학관행
__샌드박스/스테이징또는운영환경?
카오스공학과관찰가능성
‘카오스엔지니어’가있는가?
요약

2장.가설백로그작성
실험으로시작할것인가?
가설수집
__사건분석
__시스템스케치
__“무엇이잘못될수있을까?”포착
가능성과영향소개
__가능성-영향지도작성
__고려항목추가
가설백로그만들기
요약

3장.수동게임데이계획과실행
게임데이란?
게임데이계획
__가설선택
__게임데이스타일선택
__참여자와관찰자결정
__장소선택
__실행시점과지속시간결정
__게임데이실험설명
__승인받기
게임데이실행
__안전모니터고려
요약

2부.카오스공학자동화

4장.자동화된카오스공학용도구확보
파이썬3설치
카오스툴킷커맨드라인인터페이스설치
요약

5장.첫번째자동화된카오스실험작성과실행
샘플대상시스템구축
__샘플시스템둘러보기
취약점의증거탐색과발견
__실험실행
__chaosrun의표면아래
__‘개선기회’를나타낼수있는정상상태편차
시스템개선
개선검증
요약

6장.카오스공학의시작부터종료까지
대상시스템
__플랫폼:세개의워커노드로구성된쿠버네티스클러스터
__애플리케이션:단일서비스,세번복제
__사람:애플리케이션팀과클러스터관리자
취약점사냥
__실험이름지정
__정상상태에대한가설정의
__실험방법에혼란스런상황주입
__카오스툴킷쿠버네티스드라이버설치
__실험방법에서쿠버네티스드라이버사용
롤백과함께좋은시민되기
모든내용을통합하고실험실행
__취약점극복:중단예산적용
요약

7장.카오스협업
실험정의공유
__구성값이동
__구성속성을환경변수로지정
__시크릿의외부화
__시크릿의범위지정
기여모델지정
사람이읽을수있는카오스실험보고서생성과공유
__단일실험의실행보고서생성
__다중실험의실행보고서생성과공유
요약

8장.사용자정의카오스드라이버생성
코드수정없이사용자정의드라이버생성
__HTTP호출로조사항목과동작구현
__프로세스호출을통한조사항목과동작구현
파이썬으로자신만의사용자정의카오스드라이버생성
__카오스툴킷확장프로젝트용신규파이썬모듈생성
__조사항목추가
요약

3부.카오스공학운영

9장.카오스와운영
실험‘제어’
컨트롤활성화
__실험에서인라인으로컨트롤활성화
__전역으로컨트롤활성화
요약

10장.카오스공학의관찰가능성구현
카오스실험에로깅추가
__중앙집중식카오스로깅수행
카오스실험추적
__OpenTracing소개
__OpenTracing컨트롤적용
요약

11장.카오스실험자동화에서사람의개입
컨트롤을위한신규카오스툴킷확장생성
사람과상호작용하는(매우)간단한컨트롤추가
실험활동건너뛰기또는실행
요약

12장.지속적인카오스
지속적인카오스란무엇인가?
cron을사용해지속적인카오스계획
__카오스테스트실행을위한스크립트생성
__cron에카오스테스트스크립트추가
젠킨스로지속적인카오스계획
__젠킨스복사본가져오기
__젠킨스빌드에카오스테스트추가
빌드트리거를사용해젠킨스에서카오스테스트계획
요약

부록A.카오스툴킷참조
부록B.카오스툴킷커뮤니티플레이그라운드

출판사 서평

★이책에서다루는내용★

■카오스엔지니어처럼생각하는방법
■시스템에서무엇이잘못될수있는지결정하기위한가설백로그작성
■가설을발전시켜게임데이의카오스공학실험으로작성
■오픈소스카오스툴킷을사용해자동화된카오스실험작성과실행및학습
■카오스실험을테스트로전환해발견한취약점을극복했는지확인
■실행중인자동화된카오스실험의관찰과제어

★이책의대상독자★

운영환경에서어떤식으로든자신의코드를책임지는사람들을위한책이다.즉,개발자,운영자,데브옵스담당자를의미할수있다.‘어떤식으로든책임지는’의의미는실행중인시스템의가용성,안정성,전반적인견고성을책임진다는말이다.그리고시스템이중단됐을때만들어지는협업그룹의일부가될수있다는의미다.
여러분은담당하는시스템의안정성을개선하려는사이트신뢰성엔지니어일수있다.또한코드의소유권을갖지못한채운영환경에서데브옵스를수행하는팀에서일할수도있다.여러분의책임수준이어느정도든간에운영환경에서코드가실행되는방식과조직에서운영환경을잘관리하는큰그림에관심이있다면이책이그러한과제를해결하는데도움이될것이다.

★이책의구성★

무료오픈소스도구,특히카오스툴킷(‘예제설명’절참고)을사용해카오스공학을수행하기위한실용적인가이드다.오픈소스커뮤니티의샘플을통해실무자에게필요한사고방식,프로세스,예제,일부도구를소개한다.실무자가직접작성했기때문에성공적인카오스공학실험을계획하고실행하는방법을배울수있다(3장과5장참고).
카오스공학은과학적방법을따른다.1부에서는카오스공학과학자처럼생각하는방법(1장참고),카오스실험을위해준비된가설백로그를만드는방법을배운다(2장참고).마지막으로소중한가설을완전한카오스공학실험으로발전시키는방법,게임데이를배운다(3장참고).2부에서는카오스공학실험을자동화하는방법을다루고,카오스공학을어떻게반복학습하는지구현하는방법을탐구한다.3부에서는카오스공학에서의협력및운영상의문제를다룬다(9장참고).
위와같은학습경로를통해이책은지금바로전체조직에서카오스공학을안전하고신중하게도입하고자필요한모든것을여러분과동료에게제공하는것을목표로한다.

★옮긴이의말★

언제어디서튀어나올지모르는시스템에러때문에걱정이많았을것이다.뛰어난센스로복잡한에러를해결하더라도더큰산이연이어버티고있다.클라우드전환의소용돌이속에서점점작아지고분리되는소프트웨어모듈,그에반해시스템의취약점은더욱깊이숨어들고그에따른영향력은커져만간다.또한이러한문제는시스템에국한되지않는다.소프트웨어에서시작해플랫폼,인프라,프로세스,나아가사람과조직에이르기까지취약점의종류와내용도매우다양해지고있다.
그렇다면과학과응용공학이결합된체계적인접근방식으로이모든취약점을완벽하게해결할수없을까?그리고가능하다면취약점을미리파악하고,조치를신속하게취하고,철저하게검증하는방식으로실패의위험을사전에차단할수없을까?이미눈치챘겠지만100%완벽한사전준비란결코존재하지않는다.다만완벽에가까이다가가려는노력이있을뿐이다.카오스공학은그러한노력중단연최고라할수있다.
꾸준한연습과실전경험이최고를만드는것처럼카오스공학은카오스실험을체계적으로계획하고,이를반복적으로운영환경의시스템에적용하는과정에서취약점을찾아개선함으로써최고의시스템과엔지니어를만들어낸다.이책은카오스공학이왜필요한지구체적으로설명하며,카오스실험을어떻게계획하고,자동화를통해반복하는방법과효과등을상세히기술한다.이론에이어카오스실험을정의하고수행하는예제와코드설명으로곧바로실전에나설수있도록돕는다.따라서최고의카오스엔지니어가되기위한입문서로안성맞춤이다.
사실카오스공학은국내소프트웨어환경에서도입이쉽지않다.기능요건의우선순위에밀려소프트웨어품질개선및코드/시스템의유지보수활동이등한시되고있기때문이다.소프트웨어외주제작문화와소프트웨어공학성숙도의저하는이런문제를더욱키워왔다.하지만소프트웨어세상의패러다임이급격히변화하고있다.클라우드와빅데이터,인공지능으로대표되는디지털트랜스포메이션에의해기존방식은점점존재가치를잃어가고있다.누구나클라우드전환을통해인공지능기술을접목하는지금이순간부터카오스공학은적정기술을넘어필수기술로자리매김할수있을것이다.