서비스 메시 마스터 [Istio, Linkerd, Consul을 활용한 마이크로서비스의 효과적인 관리]
- 원서명Mastering Service Mesh: Enhance, secure, and observe cloud-native applications with Istio, Linkerd, and Consul (ISBN 9781789615791)
- 지은이안잘리 카트리(Anjali Khatri), 비크람 카트리(Vikram Khatri)
- 옮긴이양준기, 지은정
- 감수자최지희
- ISBN : 9791161756561
- 45,000원
- 2022년 06월 28일 펴냄
- 페이퍼백 | 720쪽 | 188*235mm
- 시리즈 : 소프트웨어 아키텍처
책 소개
요약
마이크로서비스 아키텍처를 더 잘 활용할 수 있는 서비스 메시 아키텍처를 소개한다. 서비스 메시 아키텍처를 구현하면 마이크로서비스가 가지고 있는 복잡성, 테스트의 어려움과 같은 문제를 조금 더 쉽게 해결할 수 있다. 서비스 메시의 주요 오픈소스인 Istio, Linkerd, Consul에 대한 개념을 설명하고, 이를 실제 구현할 수 있도록 실습을 제공한다. 또한 서비스 메시로 트래픽 관리, 보안, 텔레메트리를 효과적으로 관리하는 방법을 배울 수 있다.
추천의 글
“트래픽 관리, 텔레메트리, 그리고 보안 솔루션을 구축하지 않고도 애플리케이션을 구축할 수 있는 모던 서비스 메시 프로바이더에 대한 이해를 돕는다. 클라우드 네이티브 폴리글랏 애플리케이션 개발자는 비즈니스 로직에만 집중하면 된다. 서비스 메시는 애플리케이션 변경 없이 자동화로 DevOps 작업을 처리한다. 이러한 새로운 기술을 쉽게 이해할 수 있는 실습 예제를 제공한 저자들에게 감사한다.”
― 디네시 니르말(Dinesh Nirmal)/ 부사장, IBM 차세대 분석 플랫폼 및 빅데이터 솔루션 개발, 미국 캘리포니아주 산호세, 실리콘 밸리 랩
“비즈니스 세계에서 마이크로서비스를 적용하는 것은 새로운 서비스를 훨씬 더 빠르게 배포하고 지속적인 가용성으로 기존 서비스를 빠르게 조정할 수 있다는 점에서 매우 중요하다. 마이크로서비스 플랫폼은 급격하게 변화하고 있으며 엔지니어는 기술이 노후되지 않도록 대응해야 한다. 이 책은 높은 수준의 개념을 다루고 있으며 엔지니어가 이러한 시스템을 설계, 배포, 운영하기 위해 수행해야 하는 실제 작업과 매핑한다.”
― 하미드 프라에시(Hamid Pirahesh)/ IBM 펠로우, ACM 펠로우
“이 책은 서비스 메시의 개념을 심층적으로 이해하고, 현재 활용 가능한 다양한 서비스 메시 제품에 대한 자세한 통찰력을 얻을 수 있다. 구체적인 예제와 함께 제공되는 샘플은 이러한 주제에 초점을 맞추고 실제 개념을 보여준다. 클라우드 네이티브 애플리케이션을 지원하는 클라우드 네이티브 프로덕션 환경을 만들고 발전시키고 운영하는 데 참여하는 모두의 라이브러리에 추가할 만한 필수품이다.”
― 에릭 하네스(Eric Herness)/ IBM 펠로우, 클라우드 인게이지먼트 허브 CTO
이 책에서 다루는 내용
◆ Istio, Linkerd 및 Consul의 기능 비교
◆ 서비스 메시 제어와 데이터 플레인 개념
◆ 실습 예제를 통한 서비스 메시 아키텍처 이해
◆ 트래픽 관리, 보안, 정책 및 관측 가능성에 대한 실습
◆ 서비스 메시를 사용한 마이크로서비스 보안 통신 설정
◆ 트래픽 관리, 서비스 검색 및 복원력과 같은 서비스 메시 기능
이 책의 대상 독자
DevOps의 운영 부분을 다루고 있으므로 마이크로서비스 기반 애플리케이션 관리를 담당하는 운영 전문가에게 가장 적합하다. 운영 전문가로 경력을 쌓는 데 관심이 있는 사람은 이 책을 읽으면 도움이 될 것이다. 운영 관점에서 프로덕션 환경의 마이크로서비스 애플리케이션을 관리하는 방법을 설명한다. 쿠버네티스와 도커에 대한 지식은 사전에 알아야 하지만 SOA와 ESB를 심도 있게 알 필요는 없다.
이 책의 구성
1장, ‘모놀리식 vs 마이크로서비스’는 모놀리식 대 마이크로서비스 기반 애플리케이션에 대한 상위 수준의 개요를 제공한다.
2장, ‘클라우드 네이티브 애플리케이션’에서는 독립적으로 확장할 수 있는 서비스로 빌드되는 애플리케이션을 개발하기 위해 컨테이너 기반 환경의 클라우드 네이티브 애플리케이션을 빌드하는 방법에 대한 개요를 제공한다. 이 장에서는 컨테이너화를 통해 폴리글랏 앱을 사용한 Development(Dev)의 용이성과 서비스 분리로 인한 Operations(Ops)의 추가적인 책임 부여에 대해 설명한다.
3장, ‘서비스 메시 아키텍처’에서는 서비스 메시라는 용어의 발전과 기원을 다룬다. Dev(프로바이더)와 Ops(소비자) 간의 분리 에이전트로서 서비스 메시에 대한 개요를 제공하고 스마트 엔드 포인트를 통한 기본/고급 서비스 통신과 마이크로서비스 간의 트러스트를 설명한다.
4장, ‘서비스 메시 프로바이더’에서는 Istio, Linkerd, Consul의 세 가지 오픈 소스 서비스 메시 프로바이더의 개요를 제공한다.
5장, ‘서비스 메시 인터페이스와 SPIFFE’에서는 진화하는 서비스 메시 인터페이스 스펙을 소개한다.
6장, ‘나만의 쿠버네티스 환경 만들기’에서는 책 전체에서 다루는 세 가지 프로바이더와 서비스 메시를 배우기 위해 필수적인 개발 환경을 갖추는 방법을 설명한다. 이 장에서는 예제를 실습할 수 있도록 단일 노드 쿠버네티스 환경을 구축하는 간단한 방법을 제공한다.
7장, ‘Istio 서비스 메시 이해’에서는 Istio 컨트롤 플레인 아키텍처의 특징과 기능을 보여준다.
8장, ‘데모 애플리케이션 설치’에서는 Istio용 데모 애플리케이션을 설치하는 방법을 보여준다.
9장, ‘Istio 설치’에서는 서비스 메시의 최종 목표에 맞게 각각 다른 프로필을 사용해 Istio를 설치하는 다양한 방법을 보여준다.
10장, ‘Istio 트래픽 관리 살펴보기’에서는 카나리아 테스트, A/B 테스트, 트래픽 분할, 셰이핑(shaping), 조건부 라우팅의 관점에서 Istio의 트래픽 라우팅 기능을 보여준다.
11장, ‘Istio 보안 기능 살펴보기’에서는 mTLS, 보안 게이트웨이 및 Istio 시타델(Citadel)을 인증 기관으로 사용해 서비스 간 통신을 보호하는 방법을 살펴본다.
12장, ‘Istio 정책 제어 활성화’에서는 애플리케이션을 변경하지 않고도 네트워크 제어, 속도 제한, 쿼터 적용을 활성화하는 방법을 살펴본다.
13장, ‘Istio 텔레메트리 기능 살펴보기’에서는 Prometheus, Grafana, Kiali의 관찰 기능을 사용해 수집한 지표와 서비스 간 통신을 표시하는 방법을 살펴본다.
14장, ‘Linkerd 서비스 메시 이해’에서는 컨트롤 플레인 관점에서 Linkerd의 아키텍처를 보여주며, 특징과 기능을 살펴본다.
15장, ‘Linkerd 설치’에서는 쿠버네티스에 Linkerd를 설치하는 방법, Linkerd 데모 이모지 애플리케이션을 설정하는 방법 및 사이드카 프록시를 주입하는 방법을 살펴본다.
16장, ‘Linkerd의 신뢰성 기능 살펴보기’에서는 Linkerd 트래픽 신뢰성 기능을 알아보고 로드 밸런싱, 재시도, 트래픽 분할, 타임아웃 서킷 브레이크, 동적 요청 라우팅을 다룬다.
17장, ‘Linkerd의 보안 기능 살펴보기’에서는 기본적인 구성 없이 mTLS를 설정하고 인증서 생성 프로세스와 관련해 점진적으로 설치하는 프로세스를 설명한다.
18장, ‘Linkerd의 관찰성 기능 살펴보기’에서는 Linkerd 대시보드와 CLI에 대해 자세히 설명한다.
19장, ‘Consul 서비스 메시 이해’에서는 컨트롤 플레인 관점에서 Consul의 아키텍처를 보여주며, 그 특징과 기능을 살펴본다.
20장, ‘Consul 설치’에서는 쿠버네티스와 VM/베어 메탈 머신에 Consul을 설치하는 방법을 알아본다.
21장, ‘Consul의 서비스 디스커버리 기능 살펴보기’에서는 Consul 서비스 디스커버리, 키-값 저장소, ACL, 인텐션, 모니터링/메트릭 수집을 설명하는 데모 애플리케이션을 보여준다. 쿠버네티스가 아닌 환경에서 실행되는 외부 서비스의 통합 프로세스를 설명한다.
22장, ‘Consul의 트래픽 관리 기능 살펴보기’에서는 오픈 소스 프로젝트 Ambassador를 사용해 Consul을 통합하는 방법을 보여준다. 속도 제한, 셀프 서비스 라우팅, 테스트, 엔보이 사이드카 프록시 사용을 통한 엔드투엔드 TLS 활성화와 같은 트래픽 관리 기능을 보여준다.
목차
목차
- 1부. 클라우드 네이티브 애플리케이션 관리
- 1장. 모놀리식 vs 마이크로서비스
- 2장. 클라우드 네이티브 애플리케이션
- 2부. 아키텍처
- 3장. 서비스 메시 아키텍처
- 4장. 서비스 메시 프로바이더
- 5장. 서비스 메시 인터페이스와 SPIFFE
- 3부. 쿠버네티스 환경 만들기
- 6장. 나만의 쿠버네티스 환경 만들기
- 4부. 예제를 통한 Istio 학습
- 7장. Istio 서비스 메시 이해
- 8장. 데모 애플리케이션 설치
- 9장. Istio 설치
- 10장. Istio 트래픽 관리 살펴보기
- 11장. Istio 보안 기능 살펴보기
- 12장. Istio 정책 제어 활성화
- 13장. Istio 텔레메트리 기능 살펴보기
- 5부. 예제를 통해 Linkerd를 알아보기
- 14장. Linkerd 서비스 메시 이해
- 15장. Linkerd 설치
- 16장. Linkerd의 신뢰성 기능 살펴보기
- 17장. Linkerd의 보안 기능 살펴보기
- 18장. Linkerd의 관찰성 기능 살펴보기
- 6부. 예제를 통한 Consul 학습
- 19장. Consul 서비스 메시 이해
- 20장. Consul 설치
- 21장. Consul의 서비스 디스커버리 기능 살펴보기
- 22장. Consul의 트래픽 관리 기능 살펴보기