마이크로서비스 구축과 운영 [표준화 시스템 구축으로 서비스 생산과 운영 준비하기]
- 원서명Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization (ISBN 9781491965979)
- 지은이수잔 파울러(Susan Fowler)
- 옮긴이서영일
- ISBN : 9791161753102
- 20,000원
- 2019년 05월 31일 펴냄
- 페이퍼백 | 220쪽 | 188*235mm
- 시리즈 : 소프트웨어 아키텍처
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
저자가 여러 소규모 스타트업과 차량 서비스 플랫폼 회사로 유명한 우버에서 사이트 안정 엔지니어로 일하면서 축적한 마이크로서비스 생태계 구축과 운영에 필요한 원칙을 다룬다. 이 책을 통해 수많은 마이크로서비스로 구성된 서비스를 고가용성 시스템으로 끌어내기 위한 원칙을 이해하고 표준화된 시스템을 통해 생산 준비된 마이크로서비스 구축에 필요한 요구 사항을 꼼꼼하게 확인할 수 있다. 처음부터 마이크로서비스 아키텍처를 도입하거나 모놀리스 애플리케이션을 마이크로서비스로 분리할 때 조직적, 운영적, 개발 절차 측면에서 고려할 사항을 파악할 수 있다.
이 책에서 다루는 내용
■ 안정성과 신뢰성: 마이크로서비스의 개발, 배포, 도입, 미사용 권고, 종속성 장애 대응 방법
■ 확장성과 성능: 마이크로서비스의 효율성을 더 높일 수 있는 기본적인 요소 이해
■ 내결함성과 재난 대비: 마이크로서비스에 관해 실시간으로 문제를 유발하고 대비책을 세워 가용성 보증
■ 모니터링: 모니터링, 로깅, 주요 지표 표시 방법 및 경고 알림과 비상 대기 근무 절차 수립
■ 문서화와 이해: 마이크로서비스 도입으로 비롯된 조직적인 스프롤 현상과 기술적 부채 등의 트레이드오프 완화
이 책의 대상 독자
모놀리스 애플리케이션을 분리하고 “다음에 무엇을 하지?”라고 궁금해하거나 처음부터 마이크로서비스를 구축하고 안정적이고 신뢰할 수 있고 확장성이 있고 내결함성이 있고 성능이 좋은 마이크로서비스를 설계하고 싶은 소프트웨어 엔지니어 및 사이트 안정 엔지니어를 대상으로 썼다.
그러나 이 책에 나와 있는 원칙이 앞서 언급한 주요 독자에게만 유용한 것은 아니다. 훌륭한 모니터링부터 성공적인 애플리케이션 확장에 이르는 많은 원칙을 적용함으로써 모든 조직에서 규모나 아키텍처에 상관없이 서비스 및 애플리케이션을 개선할 수 있다. 엔지니어, 기술 조직 관리자, 제품 관리자, 회사의 고위급 경영진은 이 책을 애플리케이션에 대한 기준 결정, 아키텍처 결정에서 비롯된 조직 구조의 변경 사항 파악, 기술 조직에 대해 구조 및 운영 측면의 방향을 밝히고 추진하는 데 유용하게 활용할 수 있다.
독자가 마이크로서비스의 기본 개념, 마이크로서비스 아키텍처, 최신 분산 시스템의 기본 원칙에 정통하다고 가정한다. 이러한 개념을 잘 이해하고 있는 독자는 이 책을 최대한 활용할 수 있을 것이다. 1장, ‘마이크로서비스’에서는 이러한 주제에 익숙하지 않은 독자에게 마이크로서비스 아키텍처, 마이크로서비스 생태계, 마이크로서비스에 수반되는 조직적 과제, 모놀리식 애플리케이션을 여러 마이크로서비스로 분리하는 것의 핵심에 관해 간단한 개관을 다뤘다.
이 책의 구성
1장, ‘마이크로서비스’에서는 마이크로서비스를 소개한다. 마이크로서비스 아키텍처의 기초와 모놀리스를 여러 마이크로서비스로 분리하는 것에 대한 일부 세부 사항을 다루고 마이크로서비스 생태계의 네 개 계층을 소개하며 마이크로서비스 아키텍처 도입으로 비롯된 조직적인 문제와 트레이드오프 사항을 나타낸 절로 결론을 맺는다.
2장, ‘생산 준비 기준 갖추기’에서는 마이크로서비스 표준화 과제를 제시하고 마이크로서비스 가용성 확보에 따른 여덟 가지 생산 준비 기준을 소개한다.
3장, ‘안정성과 신뢰성’에서는 마이크로서비스를 안정적이고 신뢰할 수 있게 구축하기 위한 원칙에 대해 알아본다. 개발 사이클, 전개 파이프라인, 종속성의 취급, 서비스 라우팅 및 서비스 디스커버리, 안정적이고 신뢰할 수 있게 마이크로서비스를 사용하지 않도록 권고하거나 폐기하는 방법에 대해 다룬다.
4장, ‘확장성과 성능’에서는 마이크로서비스의 성장 규모 파악, 자원의 효율적인 사용, 자원 파악, 용량 계획, 종속성 확장, 트래픽 관리, 작업 처리, 확장 가능한 데이터 저장소를 비롯해 확장 가능하고 성능 좋은 마이크로서비스를 구축하기 위한 요구 사항을 다룬다.
5장, ‘내결함성 및 재난 대비’에서는 흔히 발생하는 재난 및 장애 시나리오, 장애 탐지 및 대응 전략, 복원력 테스트에 대한 상세 내용, 사고 및 가동 중단 대응 방법을 포함해 모든 재난에 대비하는, 내결함성이 있는 마이크로서비스를 구축하기 위한 원칙을 다룬다.
6장, ‘모니터링’에서는 마이크로서비스 모니터링에 대한 핵심적인 세부 사항과 표준화를 통해 마이크로서비스 모니터링의 복잡성을 피하는 방법에 대해 알아본다. 또한 로깅, 유용한 대시 보드 생성, 경고 알림의 적절한 처리를 다룬다.
7장, ‘문서화와 이해’는 적절한 마이크로서비스의 문서화와 개발 팀 및 조직 전체에서 구조적이고 운영적인 방법을 다룬다. 이에는 기술 조직 전체에 생산 준비 기준을 이행하기 위한 실질적인 전략도 포함된다.
이 책의 끝부분에는 두 개의 부록이 있다. 부록 A, ‘생산 준비 점검표’는 7장, ‘문서화와 이해’의 끝부분에 설명한 점검표이며 이 책의 곳곳에서 언급한 모든 생산 준비 기준과 해당 요구 사항을 간략하게 요약한 것이다. 부록 B, ‘마이크로서비스 평가’는 3장, ‘안정성과 신뢰성’부터 7장, ‘문서화와 이해’까지 각 장의 마지막 절 ‘마이크로서비스 평가’에서 나온 질문을 모아놓은 것이다.
목차
목차
- 1장. 마이크로서비스
- 모놀리스에서 마이크로서비스로
- 마이크로서비스 아키텍처
- 마이크로서비스 생태계
- 계층 1: 하드웨어
- 계층 2: 통신
- 계층 3: 애플리케이션 플랫폼
- 계층 4: 마이크로서비스
- 조직이 직면하는 문제
- 역콘웨이의 법칙
- 기술적 스프롤 현상
- 좀 더 많은 장애 발생 조건
- 자원 경쟁
- 2장. 생산 준비 기준 갖추기
- 마이크로서비스 표준화 과제
- 가용성: 표준화의 목표
- 생산 준비 기준
- 안정성
- 신뢰성
- 확장성
- 내결함성과 재난 대비
- 성능
- 모니터링
- 문서화
- 생산 준비 실행
- 3장. 안정성과 신뢰성
- 안정적이고 신뢰할 수 있는 마이크로서비스 구축 원칙
- 개발 사이클
- 전개 파이프라인
- 스테이징
- 카나리아
- 생산
- 안정적이고 신뢰할 수 있는 전개의 실행
- 종속성
- 서비스 라우팅과 서비스 디스커버리
- 미사용 권고와 폐기
- 마이크로서비스 평가
- 개발 사이클
- 소프트웨어 전개 파이프라인
- 종속성
- 서비스 라우팅과 서비스 디스커버리
- 미사용 권고와 폐기
- 4장. 확장성과 성능
- 마이크로서비스의 확장성과 성능을 지키는 원칙
- 성장 규모 파악
- 질적 성장 규모
- 양적 성장 규모
- 자원의 효율적인 사용
- 자원 인식
- 자원 요구 사항
- 자원 병목 현상
- 용량 계획
- 종속성 확장
- 트래픽 관리
- 작업 취급과 처리
- 프로그래밍 언어 제약 사항
- 요청과 작업을 효율적으로 처리하기
- 확장 가능한 데이터 저장소
- 마이크로서비스 생태계에서의 데이터베이스 선택
- 마이크로서비스 아키텍처에서의 데이터베이스 문제
- 마이크로서비스 평가
- 성장 규모 알기
- 자원의 효율적인 사용
- 자원 인식
- 용량 계획
- 종속성 확장
- 트래픽 관리
- 작업 취급과 처리
- 확장 가능한 데이터 저장소
- 5장. 내결함성과 재난 대비
- 내결함성이 있는 마이크로서비스를 구축하는 원칙
- 단일 장애 지점 방지하기
- 재난과 장애 시나리오
- 생태계 전반에서 흔히 발생하는 장애
- 하드웨어 장애
- 통신 계층 및 애플리케이션 플랫폼 계층의 장애
- 종속성 장애
- 마이크로서비스 내부 장애
- 복원력 테스트
- 코드 테스트
- 부하 테스트
- 카오스 테스트
- 장애 감지 및 복구
- 사고 및 가동 중단
- 적절한 분류
- 사고에 대응하는 다섯 단계
- 마이크로서비스 평가
- 단일 장애 지점 방지하기
- 재난과 장애 시나리오
- 복원력 테스트
- 장애 감지 및 복구
- 6장. 모니터링
- 마이크로서비스 모니터링 원칙
- 주요 지표
- 로깅
- 대시보드
- 경고 알림
- 효과적인 경고 알림 설정
- 경고 대응
- 비상 대기 순환 근무
- 마이크로서비스 평가
- 주요 지표
- 로깅
- 대시보드
- 경고 알림
- 비상 대기 순환 근무
- 7장. 문서화와 이해
- 마이크로서비스 문서화와 이해의 원칙
- 마이크로서비스 문서화
- 설명
- 아키텍처 다이어그램
- 연락처와 비상 대기 근무 정보
- 링크
- 온보딩과 개발 안내서
- 요청 흐름, 엔드포인트, 종속성
- 비상 대기 근무 설명서
- 자주 묻는 질문
- 마이크로서비스의 이해
- 아키텍처 검토
- 생산 준비 검사
- 생산 준비 로드맵
- 생산 준비 자동화
- 마이크로서비스 평가
- 마이크로서비스 문서화
- 마이크로서비스의 이해
- 부록 A. 생산 준비 점검표