나에게 필요한 지식과 기술을 검색해 보세요.

Release의 모든 것

대규모 웹 분산 시스템을 위한 운영 고려 설계

지은이

마이클 나이가드

옮긴이

박성철

출간일

2023.11.29

레벨

중급

평점

5(32명)

정가

36,000

판매가

32,400

총 결제 금액

10%

32,400

적립 예정

1,620P

쪽수

468P

ISBN

9791169211710

브랜드

한빛미디어

* 이 도서는 『Release It 릴리스 잇』(위키북스, 2007)의 2판입니다

 

아마존 소프트웨어 공학 분야 베스트셀러! 아키텍트, 설계자, 개발자를 위한 소프트웨어 엔지니어링 필독서

 

"이 책은 소프트웨어 출시 전, 필수 체크리스트 같은 책이다"

 

"이걸 왜 해야 할까? 귀찮게 여겼던 일들에 답을 주는 책이다"

 

35년 경력 전문가의 경험이 담긴 소프트웨어 엔지니어링 베스트셀러로, 소프트웨어를 문제 없이 빠르

게 출시할 수 있는 설계 방법에 초점을 맞춘 책입니다. 특히 사례 연구를 기반으로 최신 데브옵스 관행,

마이크로서비스, 클라우드 아키텍처를 포함한 대규모 웹 분산 시스템의 설계/구축/운영 방법을 자세히

설명합니다. 또한 매출, 시간, 평판의 손실을 최소화하는 실용적이고 현실적인 노하우까지 제공합니다.

 

출시 때마다 걱정에 휩싸여 있나요? 바로 이 책이 실패 없는 출시로 가는 길을 안내해줄 것입니다.

 

<< 주요 내용 >>

운영 환경에서의 안정성 패턴과 안티 패턴

운영 고려 설계와 배치 고려 설계

시스템 아키텍처(진화적 아키텍처)와 정보 아키텍처

 

상세이미지_700_Release의 모든 것.jpg

출판사 리뷰

자신 있는 출시를 위한 소프트웨어 설계 방법과 운영 노하우

 

이 책은 ‘운영 고려 설계’에 초점을 맞춰 문제 없이 잘 작동하는 프로그램을 만드는 방법을 설명합니다. 운영 상황에서 마주할 수 있는 문제들을 고려한 설계 방법을 자세히 알려줄 뿐만 아니라 경험해보지 않으면 알 수 없는 현장의 노하우와 전략도 제공합니다. 

또한 여러분이 정성스럽게 만든 프로그램이 얼마나 위태로운 환경에서 운영되는지 깨달을 수 있도록 여러 가지 현실적인 예를 들어 알기 쉽게 설명합니다. 

추가로 최신 클라우드 환경과 시스템 아키텍처, 카오스 공학까지 다루고 있어 실무자와 관리자 모두의 현장 능력을 한 단계 끌어올려줄 것입니다.

현장에서 자주, 그리고 오래도록 참고할 수 있는 엔지니어링 필독서를 찾고 있다면 반드시 읽어보세요!

저자

목차

[1부 안정성 구축]

 

1장 운영 환경의 현실

_1.1 올바른 목표 설정

_1.2 도전의 범위

_1.3 여기도 백만 달러, 저기도 백만 달러

_1.4 ‘포스’를 사용하라

_1.5 실용주의 아키텍처

_마치며

 

2장 사례 연구: 항공사를 멈추게 한 예외

_2.1 변경 시간대

_2.2 작동 중단

_2.3 장애의 영향

_2.4 사후 분석

_2.5 단서 수색

_2.6 결정적 단서

_2.7 외양간 고치기?

 

3장 시스템 안정화

_3.1 안정성 정의

_3.2 수명 연장

_3.3 장애 모드

_3.4 균열 확산 차단

_3.5 장애 사슬

_마치며

 

4장 안정성 안티 패턴

_4.1 통합 지점

__4.1.1 소켓 기반 프로토콜

__4.1.2 오전 5시 문제

__4.1.3 HTTP 프로토콜

__4.1.4 업체 제공 API 라이브러리

__4.1.5 통합 지점 문제 대응책

__요점 정리

_4.2 연쇄 반응

__요점 정리

_4.3 연계 장애

__요점 정리

_4.4 사용자

__4.4.1 트래픽

___힙 메모리

___힙 외부 메모리, 호스트 외부 메모리

___소켓

___닫힌 소켓

__4.4.2 지나친 서비스 비용

__4.4.3 불쾌한 사용자

__4.4.4 해로운 사용자

__요점 정리

_4.5 블록된 스레드

__4.5.1 블록 지점 파악

__4.5.2 라이브러리

__요점 정리

_4.6 자기 부정 공격

__4.6.1 자기 부정 회피

__요점 정리

_4.7 척도 효과

__4.7.1 지점 간 통신

__4.7.2 공유 자원

__요점 정리

_4.8 처리 능력 불균형

__4.8.1 처리 능력 테스트

__요점 정리

_4.9 도그파일

__요점 정리

_4.10 지렛대 원리

__4.10.1 전면 장애 증폭

__4.10.2 제어와 안전 장치

__요점 정리

_4.11 응답 지연

__요점 정리

_4.12 제한 없는 결과

__4.12.1 검은 월요일

__요점 정리

_마치며

 

5장 안정성 패턴

_5.1 시간 제한

__요점 정리

_5.2 회로 차단기

__요점 정리

_5.3 격벽

__요점 정리

_5.4 정상 상태

__5.4.1 데이터 정리

__5.4.2 로그 파일

__5.4.3 메모리 전용 캐시

__요점 정리

_5.5 빠른 실패

__요점 정리

_5.6 파손 방치

__5.6.1 크기 제한

__5.6.2 교체 속도

__5.6.3 감독

__5.6.4 재통합

__요점 정리

_5.7 핸드셰이킹

__요점 정리

_5.8 테스트 하네스

__요점 정리

_5.9 결합 분리 미들웨어

__요점 정리

_5.10 부하 제한

__요점 정리

_5.11 배압 생성

__요점 정리

_5.12 조속기

__요점 정리

_마치며

 

[2부 운영 고려 설계]


6장 사례 연구: 램프 속 우주의 힘

_6.1 첫 번째 크리스마스

_6.2 맥박 확인

_6.3 추수감사절

_6.4 블랙 프라이데이

_6.5 생명 징후

_6.6 진단 테스트

_6.7 전문가 호출

_6.8 처치 방안 비교

_6.9 처치 결과

_6.10 휴식 시간

 

7장 기반

_7.1 데이터 센터와 클라우드의 네트워크

__7.1.1 네트워크 인터페이스와 이름

__7.1.2 다중 네트워크 프로그래밍

_7.2 물리 호스트, 가상 머신, 컨테이너

__7.2.1 물리 호스트

__7.2.2 데이터 센터의 가상 머신

__7.2.3 데이터 센터의 컨테이너

__7.2.4 클라우드 내 가상 머신

__7.2.5 클라우드 내 컨테이너

_마치며

 

8장 프로세스

_8.1 코드

__8.1.1 코드 빌드

__8.1.2 불변 폐기 가능 인프라

_8.2 구성

__8.2.1 구성 파일

__8.2.2 폐기 가능 인프라의 구성

_8.3 투명성

__8.3.1 투명성을 위한 설계

__8.3.2 투명성 기술

__8.3.3 로그 기록

___로그 위치

___로그 수준

___인간적 요인

___주술적 운영

___로그에 관한 최종 메모

__8.3.4 인스턴스 측정값

__8.3.5 상태 점검

_마치며 

 

9장 상호 연결

_9.1 규모에 맞는 해법

_9.2 DNS

__9.2.1 DNS를 사용한 서비스 발견

__9.2.2 DNS를 사용한 부하 분산

__9.2.3 DNS를 사용한 글로벌 서버 부하 분산

__9.2.4 DNS의 가용성

__요점 정리

_9.3 부하 분산

__9.3.1 소프트웨어 부하 분산

__9.3.2 하드웨어 부하 분산

__9.3.3 상태 점검

__9.3.4 고정 연결

__9.3.5 요청 유형별 분할

__요점 정리

_9.4 수요 제어

__9.4.1 시스템에 장애가 나는 이유

__9.4.2 장애 예방

__요점 정리

_9.5 네트워크 경로

_9.6 서비스 발견

_9.7 표류성 가상 IP 주소

_마치며

 

10장 제어 평면

_10.1 적합도 평가

_10.2 기계적 확대율

__10.2.1 사람의 실수가 아닌 시스템 장애

__10.2.2 자동화 진행 속도

_10.3 플랫폼과 생태계

_10.4 운영 수준 개발 환경

_10.5 시스템 전반의 투명성

__10.5.1 실사용자 모니터링

__10.5.2 경제적 가치

__10.5.3 파편화의 위험

__10.5.4 로그와 통계

__10.5.5 수집 대상 측정값 선정

_10.6 구성 서비스

_10.7 프로비저닝과 배치 서비스

_10.8 명령과 제어

__10.8.1 제어 항목

__10.8.2 명령 전달 방법

__10.8.3 스크립트 기능 인터페이스

__요점 정리

_10.9 플랫폼 제품

_10.10 점검 목록

_마치며 

 

11장 보안

_11.1 OWASP 상위 10개

__11.1.1 삽입

__11.1.2 취약한 인증과 세션 관리

__11.1.3 사이트 간 스크립팅

__11.1.4 취약한 접근 제어

___조사 가치 경감

___허가된 접근

__11.1.5 보안 구성 오류

__11.1.6 민감 데이터 노출

__11.1.7 부실한 공격 방어

__11.1.8 사이트 간 요청 위조

__11.1.9 취약점이 밝혀진 구성 요소 사용

__11.1.10 보호되는 않는 API

_11.2 최소 권한의 원칙

__11.2.1 컨테이너와 최소 권한

_11.3 비밀번호 관리

_11.4 상시 업무 절차로서의 보안

_마치며

 

[3부 시스템 전달]


12장 사례 연구: 고도를 기다리며


13장 배치 고려 설계

_13.1 반려 동물과 가축

_13.2 시스템 점검 시간이라는 오류

_13.3 자동 배치

_13.4 지속적 배치

_13.5 배치의 여러 단계

__13.5.1 관계형 데이터베이스 스키마

__13.5.2 스키마 없는 데이터베이스

__13.5.3 웹 자산 파일

__13.5.4 적용

__13.5.5 정리

_13.6 전문가의 배치

_마치며

 

14장 버전 관리

_14.1 다른 서비스를 고려한 버전 관리

__14.1.1 호환되는 API 변경

__14.1.2 호환성을 깨는 API 변경

_14.2 다른 서비스의 버전 관리

_마치며

 

[4부 체계적 문제 해결]

 

15장 사례 연구: 고객에게 짓밟히다

_15.1 최종 점검과 출시

_15.2 QA 지향

_15.3 부하 테스트

_15.4 대중에 의한 살인

_15.5 테스트 간극

_15.6 후유증

 

16장 적응

_16.1 볼록 곡선 수익률

_16.2 절차와 조직

__16.2.1 플랫폼 팀

__16.2.2 고통 없는 출시

__16.2.3 서비스 멸종

__16.2.4 팀 규모 자율성

__16.2.5 효율성 주의

_16.3 시스템 아키텍처

__16.3.1 진화적 아키텍처

__16.3.2 느슨한 클러스터

__16.3.3 명시적 맥락

__16.3.4 선택 가능성

___분할

___대체

___강화와 배제

___역전

___이식

__요점 정리

_16.4 정보 아키텍처

__16.4.1 메시지, 이벤트, 명령

__16.4.2 자체 ID 제어 서비스

__16.4.3 URL 이원론

__16.4.4 복수성 수용

__16.4.5 개념 누수 방지

__요점 정리

_마치며

 

17장 카오스 공학

_17.1 개선을 위한 파괴

_17.2 카오스 공학의 선구자

_17.3 유인원 부대

__17.3.1 선택적 참여? 선택적 탈퇴?

_17.4 나만의 원숭이 입양

__17.4.1 사전 조건

__17.4.2 실험 설계

__17.4.3 혼돈 주입

__17.4.4 카오스 대상 선정

__17.4.5 자동화와 반복

_17.5 재해 시뮬레이션

_마치며

리뷰

전체 평점

5

오탈자

  • 종이책54P1

    표기 오류

    두 번째 단락의 첫 번째 줄

    2024-01-12
  • 종이책42P1

    표기 오류

    두 번째 문단

    2023-12-22
  • 종이책88P1

    표기 오류

    마지막 줄

    2023-12-16

36,000

10%

32,400