Top

서비스 메시 마스터 [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 활성화와 같은 트래픽 관리 기능을 보여준다.

저자/역자 소개

지은이 소개

안잘리 카트리(Anjali Khatri)

DivvyCloud의 엔터프라이즈 클라우드 아키텍트다. AWS, GCP, Azure 및 기타 클라우드 프로바이더에서 실행되는 리소스의 보안과 규정 준수를 유지하도록 지원해 회사의 클라우드 네이티브 성장을 돕고 있다. DivvyCloud 역량을 확장하는 기술 리더로, 제품 및 엔지니어링 담당자와 협력해 기능 요구 아키텍처, 사례 연구, 계정 계획, 지속적인 솔루션 딜리버리 분야에서 고객을 위해 노력하고 있다.
DivvyCloud 이전에는 IBM과 Merlin에서 근무했다. 소프트웨어 개발을 위한 프로그램 관리, 오픈 소스 분석 판매 및 애플리케이션 성능 컨설팅 분야에서 9년 이상의 전문 경력이 있다.

비크람 카트리(Vikram Khatri)

IBM 데이터 시스템을 지원하는 Cloud Pak의 수석 아키텍트다. 20년 동안 영향력이 높고 동급 최강의 기술 솔루션을 제공하기 위한 고성능, 크로스펑셔널 팀을 이끌고 멘토링한 경험이 있다. 데이터와 AI를 포함해 모놀리식에서부터 클라우드 네이티브 애플리케이션에 이르는 대규모 혁신 솔루션을 설계하는 데 선구적인 사고적(thought) 리더다. 깊은 기술 전문 지식을 활용해 솔루션을 개발한 실적이 있는 업계 최고의 기술 전문가로 14년 동안 10억 달러 이상의 매출을 올렸으며, 산업 컨퍼런스와 트레이드 쇼에서 자주 연설하는 클라우드 네이티브 기술의 기술 주제 전문가이기도 하다.

옮긴이의 말

클라우드는 이제 새로운 기술이 아니다. 시스템을 설계하거나 서비스를 개발할 때 당연히 클라우드를 먼저 고려한다. 아니, 클라우드에서 설계하거나 개발하지 못하는 이유를 설명하는 시대가 됐다.
최근 몇 년간 단순히 클라우드에서 서비스를 하는 것을 넘어 클라우드의 특성을 잘 살려서 사용할 수 있는 클라우드 네이티브에 관심이 많아지고 있다. 클라우드 네이티브는 기술 기반에 따라 인프라스트럭처, 플랫폼, 애플리케이션으로 구분된다. 개발자 중 상당수가 클라우드 네이티브 애플리케이션에 관심이 있으며, 이는 결국 마이크로서비스 아키텍처에 대한 관심으로 귀결된다. 아마존과 넷플릭스에서 적용해 기업의 혁신을 이끌어냈다고 회자되면서 많은 사람들의 주목을 받았고 지금도 현재진행형이다.
마이크로서비스 아키텍처는 비즈니스 민첩성과 빠른 배포를 위해 많은 기업에서 앞다투어 적용하려고 한다. 다만 서비스를 작게 만들어 개발하고 운영하는 것 그 이상을 생각해야 한다. 이를 위해 많은 플랫폼과 오픈소스가 필요하며, 때로는 마이크로서비스 패턴을 자신의 코드 안에 넣어야 할지도 모른다. 이런 어려움을 다 해결해주진 못하지만 상당 부분 도움을 주는 기술이 서비스 메시다. 서비스 메시는 마이크로서비스 아키텍처의 적용을 넘어 장점을 더 잘 드러나게 하는 기술이다.
마이크로서비스와 더불어 비즈니스 민첩성과 빠른 배포를 위한 IT 조직의 문화와 프로세스, 시스템의 혁신을 강조하는 데브옵스에서도 서비스 메시가 재능을 발휘할 수 있다. 개발자는 서비스 개발에 초점을 맞추고, 운영자는 운영에 초점을 맞춰야 하는 것은 당연함에도, 운영에 필요한 코드가 서비스 개발에 들어가 있는 경우는 흔히 볼 수 있다. 서비스 메시는 운영에 필요한 코드를 분리해냄으로써 이를 완벽하게 지원한다.
쿠버네티스는 마이크로서비스 아키텍처와 잘 어울리는 플랫폼으로서 국내에서 많은 사례와 개발자 운영자를 보유하고 있다. 대표적인 서비스 메시 기술인 Istio는 개발 초기부터 쿠버네티스와의 결합을 염두에 두고 시작했기 때문에, 쉽게 적용할 수 있다.
쿠버네티스가 훌륭한 플랫폼임에도 능숙하게 활용하기에는 시간이 걸리듯 서비스 메시 기술도 능숙하게 적용하기에는 쉽지 않다. 이 책은 그런 고민에 훌륭한 해답을 제시한다. 다만 대표적인 세 가지 서비스 메시 기술을 모두 담기에는 부족한 지면과 서비스 메시가 빠르게 변화하고 진화한다는 점은 이 책의 한계다. 저자가 이 책을 쓴 당시와 지금은 많이 다른 측면이 있다. 버전도 많이 올라가 있으며, 대표적인 세 가지 서비스 메시 기술도 초기와는 다르게 서로 비슷하게 발전해 나가고 있다. 그럼에도 저자는 업데이트 된 버전을 온라인으로 지속해서 제시하고 있으므로 독자에게는 다행이라 할 수 있다.
아직까지도 서비스 메시와 관련된 책이 많지 않은 상황에서, 이 책으로 서비스 메시 아키텍처를 조금 더 잘 이해하고, 더 나은 시스템을 만들기를 기대한다.
이 책은 서비스 메시로 마이크로서비스 플랫폼을 조금 더 나은 플랫폼으로 진화시키고자 노력하는 사람을 대상으로 하며, 쿠버네티스와 같은 플랫폼에 대해 기본적으로 이해가 있는 독자를 대상으로 하는 만큼 어려울 수 있다. 모르는 내용이 있을 경우 관련 책을 읽거나 교육을 받기를 권한다. 이 책을 읽고 AWS와 Azure, GCP와 같은 Public Cloud에서 서비스 메시를 실습하고 테스트하는 것은 아주 좋은 방법이다. 특히 각 공급자마다 특성이 있기 때문에 이를 잘 비교해 선택한다면 서비스 메시는 여러분의 일을 많이 도와줄 것이다.
양준기

현재 많은 기업이 기존 모놀리식 아키텍처의 한계를 극복하고 클라우드 환경에서의 시스템 운영 이점을 극대화하고자 마이크로서비스 아키텍처를 채택하고 있다. 그러나 마이크로서비스 아키텍처는 서비스 간 복잡한 연결 구조 때문에 장애 추적이 어렵고, 장애가 발생한 서비스로 인한 장애 전파 현상이 나타나게 된다. 이러한 서비스 간 통신을 추상화해서 안전하고 빠르고 신뢰할 수 있게 하기 위한 마이크로서비스 간 커뮤니케이션 인프라가 바로 서비스 메시 아키텍처다.
기존의 서비스 아키텍처에서의 호출이 직접 호출 방식이었다면, 서비스 메시에서의 호출은 자체 인프라 계층의 프록시로 이루어지게 된다. 이는 서비스의 트래픽을 네트워크단에서 통제할 수 있게 한다. 서비스 메시 없이 동작하는 마이크로서비스는 서비스 간 커뮤니케이션을 통제하는 로직으로 코딩해야 하기 때문에 개발자들이 비즈니스 로직에 집중하지 못하게 된다. 그러나 서비스 메시를 활용하면 개발자들이 비즈니스 가치를 추구하는 일에 좀 더 집중할 수 있고, 가시적인 인프라 계층을 제공하므로 문제를 손쉽게 인식하고 진단할 수 있다.
클라우드에 관심이 많은 사람으로서 이 책은 서비스 메시의 개념을 이해하고, 대표적인 서비스 메시 기술을 접할 수 있는 좋은 책이라고 생각한다. 이미 마이크로서비스에 대한 지식을 기본적으로 갖춘 사람이라면 실습을 통해 이 책을 충분히 이해하고 따라갈 수 있을 것이다. 독자들이 서비스 메시를 더 잘 이해하고 즐겁게 사용할 수 있기를 바란다.
지은정

옮긴이 소개

양준기

15년 이상 소프트웨어 아키텍트로서 많은 대규모 IT시스템을 구축 및 리딩했다. 현재 SK주식회사 C&C에서 SK 주요 멤버사의 클라우드 시스템을 구축 또는 전환하는 사업에서 기술 리딩을 맡고 있다. 특히 클라우드 네이티브 애플리케이션 개발과 이를 위한 플랫폼에 관심이 많으며, 최근에는 AI/Data 영역을 공부하고 있다.

지은정

정보통계학 학사 및 정보산업공학 석사 학위를 취득했으며, LG전자 생산기술원에 입사해 데이터 분석가로 7년간 근무하면서 다양한 제조 데이터 처리 및 분석 업무를 경험했다.
2020년부터는 SK주식회사 C&C에서 사업개발 업무를 수행하면서 퍼블릭 클라우드 구축 사업과 반도체 개발 정보를 통합 관리하기 위한 하이브리드 클라우드 기반 서비스 플랫폼 구축 사업에 참여하고 있다. 특히 클라우드 기반의 데이터 엔지니어링 및 AI 기술에 관심이 많다.

감수자 소개

최지희

SK 주식회사 C&C에서 SK 주요 멤버사의 클라우드 시스템을 클라우드 네이티브 기반으로 설계, 구축하는 클라우드 아키텍트 역할을 하고 있다. 특히 클라우드 전략을 포함해 마이그레이션, MSA 구축까지 전 영역에서 기술 지원과 프로젝트 수행을 하고 있다. Azure, AWS, GCP, Naver Cloud 등 주요 CSP의 아키텍트 자격증을 보유하고 있으며, 최근에는 GCP AI/Data 프로젝트를 진행하면서 데이터, AI/ML 서비스 기술에도 관심을 갖고 있다.

목차

목차
  • 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의 트래픽 관리 기능 살펴보기

도서 오류 신고

도서 오류 신고

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

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

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