Top

마이크로서비스 구축과 운영 [표준화 시스템 구축으로 서비스 생산과 운영 준비하기]

  • 원서명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장, ‘문서화와 이해’까지 각 장의 마지막 절 ‘마이크로서비스 평가’에서 나온 질문을 모아놓은 것이다.

저자/역자 소개

지은이의 말

마이크로서비스 아키텍처를 도입한 조직이 갖는 가장 큰 문제 중 하나는 구조적, 운영적 관점에서 조직적으로 표준화를 진행하지 않는다는 것이다. 모놀리식 애플리케이션을 분리하거나 처음부터 마이크로서비스 생태계를 구축한 후, 많은 엔지니어들은 다음에 해야 할 일에 의문을 품는다. 실용 목적의 이 책은 마이크로서비스 기준을 상세하게 제안하고, 우버에서 수천 개의 마이크로서비스를 표준화한 경험을 풀어 낸다. 독자는 마이크로서비스를 안정적이고 신뢰할 수 있고 확장할 수 있고 내결함성이 있고 성능이 좋고 모니터링이 잘 되고 문서화되고 재난에 대비할 수 있도록 설계하는 방법을 알 수 있다.

지은이 소개

수잔 파울러(Susan Fowler)

우버 테크놀로지스의 사이트 안정 엔지니어다. 모든 마이크로서비스의 생산 준비를 계획하고 주요 사업 담당 팀에 합류해 서비스를 생산 준비 상태로 이끄는 데 시간을 바쳤다. 우버에 입사하기 전에는 여러 소규모 스타트업에서 애플리케이션 플랫폼 및 인프라 업무를 담당했다. 그전에는 펜실베이니아대학교에서 입자 물리학을 배웠고 초대칭성을 탐구했으며ATLAS 및 CMS 탐지기에 대한 하드웨어를 설계했다.

옮긴이의 말

외부의 빠른 변화와 요구 사항을 수용하고 이에 부응하는 서비스를 재빠르게 안정적으로 사용자에게 제공해야 하는 기업에 있어서 마이크로서비스 아키텍처 도입은 최근 몇 년간 최고의 선택으로 여겨졌다. 하지만 조직의 규모가 클수록 마이크로서비스 아키텍처를 성공적으로 도입하고 마이크로서비스 생태계를 구축해 지속적으로 원활하게 운영하는 일은 그리 호락호락하지만은 않다. 따라서 마이크로서비스 아키텍처를 도입한 대부분의 기업에서 수많은 마이크로서비스의 변경 사항을 하루가 멀다 하게 처리하고 신뢰성 있는 전개와 서비스 운영을 안정적으로 유지하기 위해 데브옵스와 사이트 안정 엔지니어링의 중요성이 날로 더해지고 있는 것이 사실이다.
이 책은 저자 수잔 파울러가 여러 소규모 스타트업 회사와 차량 서비스 플랫폼 회사로 유명한 우버에서 사이트 안정 엔지니어SRE, site reliability engineer로서 축적한 마이크로서비스 생태계 구축 및 운영에 필요한 원칙과 마이크로서비스의 생산 준비 기준을 다루고 있다. 이에 앞서 마이크로서비스 아키텍처에 대한 기초적인 개념을 소개하고 마이크로서비스 아키텍처 도입으로 비롯되는 조직적, 운영적 측면의 문제를 폭넓게 다루고 있다. 만약 이 책을 아직 접하지 않았거나 관련 경험과 통찰력 없이 마이크로서비스 아키텍처 도입을 시도한다면 진행 과정에서 으레 부딪히거나 시행착오를 충분히 겪을 만한 것들이라 할 수 있다. 이 책에는 저자가 수많은 개발 팀과 협업하면서 마이크로서비스가 갖춰야 하는 기준을 개발 팀에 이해시키고 적용하는 과정에서 겪은 경험으로부터 나온 조언들이 곳곳에 스며들어 있다. 또한 마이크로서비스가 안정성, 신뢰성, 확장성, 내결함성, 성능, 모니터링, 문서화, 재난 대비성을 갖추기 위해 확인해야 하는 세세한 요구 사항과 마이크로서비스 점검 목록이 모든 회사에 공통으로 적용할 수 있을 만큼 잘 정리돼 있다.
독자의 궁극적인 목표는 생산 준비 기준을 충족한 마이크로서비스 아키텍처 기반의 서비스를 출시하고 운영하는 것이다. 독자는 이 책을 통해 고가용성 시스템을 구축해 이것을 지속적으로 운용할 수 있고 자동화할 수 있는 표준화된 절차를 회사의 조직에 정착시킬 수 있는 통찰력을 얻을 수 있을 것이라 확신한다. 마이크로서비스에 생산 준비 기준을 적용하고 각각의 기준을 만족하기 위해 무엇을 해야 하는지를 알 수 있을 뿐 아니라 서비스에 문제를 일으킬 만한 위험 요소를 사전에 적절히 제거하고 향후 발생 가능한 재난에 능숙하게 대비하는 데 좋은 지침이 되리라 생각한다. 마이크로서비스 생태계를 처음 접하는 독자라 하더라도 마이크로서비스 개발에 관한 개발 절차, 개발 환경, 전체적인 흐름을 파악하고 마이크로서비스 아키텍처를 도입해 무엇을 해야 하고 마이크로서비스 생태계를 어떻게 운영해야 하는지에 대한 방향을 잡을 수 있을 것이다.

옮긴이 소개

서영일

2006년부터 삼성전자 종합기술원 연구원, LG전자 소프트웨어 엔지니어로 근무했다. 소프트웨어 연구 개발 경험이 풍부하고 소프트웨어 아키텍처, 알고리즘, 데이터 분석, 성능 최적화 등에 관심이 많다. 소프트웨어 개발자로서 새로운 분야의 기술을 공부하는 것을 즐기며 자신만의 오픈 소스 프레임워크를 만들어보는 것이 꿈이다.

목차

목차
  • 1장. 마이크로서비스
    • 모놀리스에서 마이크로서비스로
    • 마이크로서비스 아키텍처
    • 마이크로서비스 생태계
      • 계층 1: 하드웨어
      • 계층 2: 통신
      • 계층 3: 애플리케이션 플랫폼
      • 계층 4: 마이크로서비스
    • 조직이 직면하는 문제
      • 역콘웨이의 법칙
      • 기술적 스프롤 현상
      • 좀 더 많은 장애 발생 조건
      • 자원 경쟁

  • 2장. 생산 준비 기준 갖추기
    • 마이크로서비스 표준화 과제
    • 가용성: 표준화의 목표
    • 생산 준비 기준
      • 안정성
      • 신뢰성
      • 확장성
      • 내결함성과 재난 대비
      • 성능
      • 모니터링
      • 문서화
    • 생산 준비 실행

  • 3장. 안정성과 신뢰성
    • 안정적이고 신뢰할 수 있는 마이크로서비스 구축 원칙
    • 개발 사이클
    • 전개 파이프라인
      • 스테이징
      • 카나리아
      • 생산
      • 안정적이고 신뢰할 수 있는 전개의 실행
    • 종속성
    • 서비스 라우팅과 서비스 디스커버리
    • 미사용 권고와 폐기
    • 마이크로서비스 평가
      • 개발 사이클
      • 소프트웨어 전개 파이프라인
      • 종속성
      • 서비스 라우팅과 서비스 디스커버리
      • 미사용 권고와 폐기

  • 4장. 확장성과 성능
    • 마이크로서비스의 확장성과 성능을 지키는 원칙
    • 성장 규모 파악
      • 질적 성장 규모
      • 양적 성장 규모
    • 자원의 효율적인 사용
    • 자원 인식
      • 자원 요구 사항
      • 자원 병목 현상
    • 용량 계획
    • 종속성 확장
    • 트래픽 관리
    • 작업 취급과 처리
      • 프로그래밍 언어 제약 사항
      • 요청과 작업을 효율적으로 처리하기
    • 확장 가능한 데이터 저장소
      • 마이크로서비스 생태계에서의 데이터베이스 선택
      • 마이크로서비스 아키텍처에서의 데이터베이스 문제
    • 마이크로서비스 평가
      • 성장 규모 알기
      • 자원의 효율적인 사용
      • 자원 인식
      • 용량 계획
      • 종속성 확장
      • 트래픽 관리
      • 작업 취급과 처리
      • 확장 가능한 데이터 저장소

  • 5장. 내결함성과 재난 대비
    • 내결함성이 있는 마이크로서비스를 구축하는 원칙
    • 단일 장애 지점 방지하기
    • 재난과 장애 시나리오
      • 생태계 전반에서 흔히 발생하는 장애
      • 하드웨어 장애
      • 통신 계층 및 애플리케이션 플랫폼 계층의 장애
      • 종속성 장애
      • 마이크로서비스 내부 장애
    • 복원력 테스트
      • 코드 테스트
      • 부하 테스트
      • 카오스 테스트
    • 장애 감지 및 복구
    • 사고 및 가동 중단
      • 적절한 분류
      • 사고에 대응하는 다섯 단계
    • 마이크로서비스 평가
      • 단일 장애 지점 방지하기
      • 재난과 장애 시나리오
      • 복원력 테스트
      • 장애 감지 및 복구

  • 6장. 모니터링
    • 마이크로서비스 모니터링 원칙
    • 주요 지표
    • 로깅
    • 대시보드
    • 경고 알림
      • 효과적인 경고 알림 설정
      • 경고 대응
    • 비상 대기 순환 근무
    • 마이크로서비스 평가
      • 주요 지표
      • 로깅
      • 대시보드
      • 경고 알림
      • 비상 대기 순환 근무

  • 7장. 문서화와 이해
    • 마이크로서비스 문서화와 이해의 원칙
    • 마이크로서비스 문서화
      • 설명
      • 아키텍처 다이어그램
      • 연락처와 비상 대기 근무 정보
      • 링크
      • 온보딩과 개발 안내서
      • 요청 흐름, 엔드포인트, 종속성
      • 비상 대기 근무 설명서
      • 자주 묻는 질문
    • 마이크로서비스의 이해
      • 아키텍처 검토
      • 생산 준비 검사
      • 생산 준비 로드맵
      • 생산 준비 자동화
    • 마이크로서비스 평가
      • 마이크로서비스 문서화
      • 마이크로서비스의 이해

  • 부록 A. 생산 준비 점검표

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안