이미 소장하고 있다면 판매해 보세요.
|
1장. 마이크로서비스의 사례
__모노리스에서 마이크로서비스 아키텍처로 ____모놀리식 애플리케이션 ____SOA와 ESB ____API들 __마이크로서비스는 무엇인가? ____비즈니스 기능 지향 ____자율성: 개발, 배포, 확장의 독립성 ____중앙 ESB 부재: 스마트 엔드포인트와 멍청한 파이프 ____실패 내결함성 ____분산화된 데이터 관리 ____서비스 거버넌스 ____관찰 가능성 __마이크로서비스: 장점과 단점 ____장점 ____단점 __마이크로서비스의 적용 방법과 적용 시기 __요약 2장. 마이크로서비스 디자인 __도메인 주도 설계 ____바운디드 컨텍스트 ____컨텍스트 맵 ____관계형 패턴 __설계 원리 ____높은 응집도와 느슨한 결합 ____복원력 ____관찰 가능성 ____자동화 __12 팩터 앱 ____코드베이스 ____종속성 ____설정 ____백엔드 서비스 ____빌드, 릴리스, 실행 ____프로세스 ____무공유 아키텍처 ____포트 바인딩 ____동시성 ____폐기 가능 ____개발/프로덕션 환경 일치 ____로그 ____어드민 프로세스 ____12 팩터 앱을 넘어서 __요약 3장. 서비스 간 통신 __마이크로서비스 통신의 기초 __동기식 통신 ____REST ____gRPC ____GraphQL ____웹소켓 ____스리프트 __비동기식 통신 ____단일 수신자 ____다중 수신자 __동기식 통신 대 비동기식 통신 ____메시지 포맷/타입 ____JSON과 XML ____프로토콜 버퍼 ____에이브로 __서비스 정의 및 계약 __요약 4장. 서비스 개발 __개발자 도구와 프레임워크 ____넷플릭스 OSS ____스프링 부트 ____이스티오 ____드롭위저드 ____Vert.x ____Lagom __스프링 부트 시작하기 ____Hello World! ____스프링 부트 액추에이터 ____구성 서버 ____구성 소비하기 ____서비스 간 통신 __gRPC 시작하기 ____gRPC 서비스 구축 ____gRPC 클라이언트 구축 __카프카를 이용한 이벤트 기반 마이크로서비스 ____카프카 메시지 브로커 설정 ____게시자(이벤트 소스) 구축하기 ____소비자 구축하기(이벤트 싱크) __GraphQL 서비스 구축 __요약 5장. 데이터 관리 __모놀리식 애플리케이션과 공유 데이터베이스 __마이크로서비스당 데이터베이스 __마이크로서비스 간 데이터 공유 ____공유 테이블 제거 ____공유 데이터 ____데이터 조합 __마이크로서비스의 트랜잭션 ____2단계 커밋을 통한 분산 트랜잭션 피하기 ____로컬 트랜잭션을 사용한 이벤트 개시 ____데이터베이스 로그 마이닝 ____이벤트 소싱 ____사가 __폴리글랏 지속성 __캐싱 __요약 6장. 마이크로서비스 거버넌스 __왜 마이크로서비스 거버넌스인가? __마이크로서비스 거버넌스 측면 ____서비스 정의 ____서비스 레지스트리 및 검색 ____서비스 수명 주기 관리 ____서비스 품질 ____서비스 관찰 가능성 __마이크로서비스 거버넌스 구현 ____서비스 레지스트리 및 검색 ____개발 수명 주기 관리 ____API 관리/API 게이트웨이 ____관찰 가능성 __서비스 레지스트리 및 검색 ____컨설 ____유레카 ____etcd ____쿠버네티스를 통한 서비스 검색 __요약 7장. 마이크로서비스 통합 __마이크로서비스를 통합해야 하는 이유 __스마트 엔드포인트와 멍청한 파이프 __마이크로서비스 통합의 안티 패턴 ____마이크로서비스 통합을 위한 모놀리식 API 게이트웨이 ____ESB와 마이크로서비스 통합 ____모든 마이크로서비스 구축에 동종 기술 사용 __마이크로서비스 구성하기 ____핵심 서비스 ____통합 서비스 ____API 서비스 __마이크로서비스 통합 패턴 ____능동형 조합 또는 오케스트레이션 ____반응성 조합 또는 코레오그래피 ____능동형 조합과 반응형 조합의 하이브리드 ____손상 방지 계층 ____스트랭글러 파사드 __통합 서비스의 주요 요구 사항 ____네트워크 통신 추상화 ____복원력 패턴 ____능동형 또는 반응형 조합 ____데이터 형식 ____컨테이너 네이티브 및 데브옵스 지원 ____통합 서비스 거버넌스 ____상태 없음, 상태 저장, 또는 장기 실행 서비스 __통합 서비스 구축을 위한 기술 ____스프링 부트 ____드롭위저드 ____아파치 카멜과 스프링 통합 ____Vert.x ____아카 ____Node, Go, 러스트, 파이썬 ____발레리나 ____워크플로 엔진 솔루션 __서비스 메시의 시작 __요약 8장. 마이크로서비스의 배포 및 실행 __컨테이너와 마이크로서비스 ____도커 소개 ____도커를 사용해 마이크로서비스 배포 ____도커 컴포즈 __컨테이너 오케스트레이션 ____쿠버네티스 소개 ____쿠버네티스 핵심 개념 ____쿠버네티스 환경에서 마이크로서비스 배포 __마이크로서비스 배포 패턴 ____호스트당 다중 서비스 ____호스트당 서비스 ____가상 머신당 서비스 ____컨테이너당 서비스 __컨테이너 네이티브 마이크로서비스 프레임워크 ____Metaparticle __지속적인 통합, 전달, 배포 ____지속적인 통합 ____지속적인 전달 ____지속적인 배포 __요약 9장. 서비스 메시 __왜 서비스 메시인가? __서비스 메시란 무엇인가? ____비즈니스 로직 ____기본 네트워크 기능 ____애플리케이션 네트워크 기능 ____컨트롤 플레인 __서비스 메시의 기능 ____서비스 간 통신을 위한 복원력 ____서비스 검색 ____라우팅 ____관찰 가능성 ____보안 ____배포 ____서비스 간 통신 프로토콜 __이스티오 ____이스티오 아키텍처 ____이스티오 사용 __링커디 __서비스 메시를 사용해야 할까? ____장점 ____단점 __요약 10장. API, 이벤트, 스트림 __API와 API 관리 ____API 게시자/API 수명 주기 관리자 ____API 게이트웨이 ____API 저장소/개발자 포털 ____API 분석/관찰 가능성 ____API QoS ____API 수익 창출 ____OpenAPI를 사용한 API 정의 ____API 쿼리 언어: GraphQL ____API 관리와 서비스 메시 ____API 관리 구현 __이벤트 ____이벤트 알림 ____이벤트-전달 상태 전이 ____이벤트 소싱 ____명령 질의 책임 분리 __스트림 ____스트림 처리 __API, 이벤트, 스트림이 포함된 마이크로서비스 아키텍처 __요약 11장. 마이크로서비스 보안의 기본 사항 __모놀리스 대 마이크로서비스 __서비스 간 통신 보호 ____JSON 웹 토큰 ____TLS 상호 인증 __에지 보안 ____OAuth 2.0 __접근 제어 ____XACML ____내장형 PDP __보안 사이드카 __요약 12장. 마이크로서비스 보안 __OAuth 2.0으로 마이크로서비스 보안 ____TLS 사용 ____OAuth 2.0 인가 서버 설정 ____OAuth 2.0으로 마이크로서비스 보호 __자체 포함 액세스 토큰(JWT)으로 마이크로서비스 보안 ____JWT를 발행하도록 인가 서버 설정 ____JWT로 마이크로서비스 보호 __마이크로서비스에 대한 접근 제어 ____범위 기반 접근 제어 ____역할 기반 접근 제어 __서비스 간 통신 보호 ____JWT로 보호된 서비스 간 통신 ____TLS 상호 인증으로 보호된 서비스 간 통신 __액추에이터 엔드포인트 보안 __요약 13장. 관찰 가능성 __관찰 가능성의 세 기둥 __스프링 클라우드를 사용한 분산 추적 ____스프링 클라우드 슬루스 ____스프링 부트 마이크로서비스에 스프링 클라우드 슬루스 사용 ____스프링 클라우드 슬루스를 사용해 여러 마이크로서비스 간의 메시지 추적 __집킨을 통한 데이터 시각화와 상관관계 ____이벤트 기반 로그 집계 아키텍처 __오픈 트레이싱 소개 ____스프링 부트 마이크로서비스와 집킨을 사용한 오픈 트레이싱으로 분산 추적 ____스프링 부트 마이크로서비스와 예거를 사용한 오픈 트레이싱으로 분산 추적 __프로메테우스가 포함된 메트릭 ____스프링 부트 마이크로서비스 메트릭 노출하기 ____프로메테우스 설정 ____프로메테우스를 사용한 그래프 작성 __그라파나를 사용한 분석과 모니터링 ____그라파나로 대시보드 구축 ____그라파나로 경고 생성 __도커와 함께 Fluentd 로그 수집기 사용 ____도커 컨테이너로 Fluentd 시작 ____도커 컨테이너에서 실행되는 마이크로서비스에서 Fluentd에 로그 게시 ____작동 원리 ____마이크로서비스 배포에서 Fluentd 사용하기 __요약 |
Kasun Indrasiri
카순 인드라시리의 다른 상품
Prabath Siriwardena
프라바스 시리와데나의 다른 상품
이상근의 다른 상품
|
★ 이 책에서 다루는 내용 ★
■ 자신 있게 마이크로서비스 아키텍처를 설계하고 개발하기 ■ 현대적인 메시징 기술 적용하기 ■ 서비스 메시 패턴을 적용해 서비스 간 통신 문제 극복하기 ■ 실전 테스트를 거친 마이크로서비스 보안 패턴을 적용해 실제 시나리오 해결하기 ■ API 관리, 분산 데이터 관리, 관찰 가능성 처리하기 ★ 이 책의 구성 ★ 이 책을 통해 엔터프라이즈 애플리케이션 환경에서 마이크로서비스를 구축하는 것을 둘러싼 주요 과제와 솔루션을 이해할 수 있도록 구성했다. 이 책은 마이크로서비스 아키텍처의 원칙과 실제 시나리오에서 마이크로서비스를 사용하는 방법을 포괄적으로 설명한다 서비스 통합 및 API 관리와 함께 마이크로서비스를 사용하는 아키텍처 문제가 제시되고, 복합/통합 마이크로서비스를 사용해 ESB(Enterprise Service Bus)와 같은 중앙 집중식 통합 제품을 사용하지 않는 방법을 배운다. 각 개념은 사용 사례와 함께 설명하며, 대부분의 사용자는 비즈니스 중단을 최소화하면서 레거시 애플리케이션과 함께 마이크로서비스를 구현해야 하는 ‘브라운필드(brownfield)’ 환경에서 구현하고 있다는 사실을 강조한다. 마이크로서비스 메시징, 서비스 개발 및 설명, 서비스 발견, 거버넌스, 데이터 관리 기술에 관한 최신 기술을 다루고 마이크로서비스 디자인 프로세스를 안내한다. 또한 핵심 대 원자, 복합 대 통합, API 대 에지(edge)로 서비스를 구성하는 것의 중요성과 이러한 조직이 중앙 ESB의 사용을 제거하고 API 게이트웨이를 통해 서비스를 노출하는 데 도움될 방법도 알려준다. ★ 지은이의 말 ★ 마이크로서비스 아키텍처 원칙을 포괄적으로 설명하고, 실제 시나리오에서 이러한 개념을 사용하는 방법을 논의한다. 또한 특정 기술이나 프레임워크에 한정하지 않고 마이크로서비스 아키텍처의 특정 측면에 가장 적합한 광범위한 기술과 프레임워크를 다룬다. 서비스 간 통신, 중앙 집중식 엔터프라이즈 서비스 버스(Enterprise Service Bus(ESB))를 사용하지 않는 서비스 통합, 중앙 집중식 API 게이트웨이 없이 API로 마이크로서비스 노출, 마이크로서비스의 범위와 크기 결정, 마이크로서비스 보안 패턴 활용 등 엔터프라이즈 아키텍처 환경에서 마이크로서비스를 구축하는 동안에 고려해야 할 근본적인 문제를 다루는 것도 차별화된 특징이다. 이 책에서 설명하는 모든 개념은 사용 사례와 함께 설명하며 독자가 시도할 수 있는 샘플과 통합된다. 이러한 사용 사례의 대부분은 넷플릭스(Netflix)와 구글 같은 기존 마이크로서비스 구현과 샌프란시스코 베이 에어리어의 다양한 밋업과 콘퍼런스에 참여했던 경험에서 영감을 얻었다. ★ 옮긴이의 말 ★ 2018년 말에 처음으로 마이크로서비스 아키텍처 프로젝트에 참여하게 됐을 때는 크리스 리처드슨의 저서 『마이크로서비스 패턴』을 통해 마이크로서비스 아키텍처의 개념적인 측면을 이해할 수 있었다. 그러나 마이크로서비스를 실제로 어떻게 구현할지는 흩어져 있는 여러 자료를 찾아보고 코드를 구현해보면서 조금씩 배워나갈 수밖에 없었다. 2019년 7월 무렵, 이 책의 번역을 시작한 후 전체적인 내용을 살펴봤을 때는 뒤통수를 세게 얻어맞은 느낌이 들었다. 내가 그동안 고민해왔던 내용과 앞으로 좀 더 알아보고자 했었던 내용이 이 책에 충실히 담겨 있을 뿐 아니라, 2018년 말 즈음에 이미 출간됐었다는 사실이 인상적이었기 때문이다. 개인적으로는 ‘프로젝트를 시작할 즈음에 이 책의 내용을 접했으면 어땠을까.’라는 아쉬움도 남았다. 책이 출간되고 나서 한참 후에야 번역을 시작한 만큼, 최대한 빠른 시간 내에 번역을 마치고 독자들이 영어의 압박에서 벗어나 이 책을 좀 더 편하게 읽을 수 있도록 하는 것이 목표였다. 비록 출간을 앞두고 냉정히 평가했을 때 그 목표가 제대로 달성되지 못한 것 같아 아쉽지만, 이 책에서 다루는 내용이 한국어판이 출간되는 시점에도 여전히 유효하다는 점에서 위안을 얻는다. 개념이나 디자인 패턴 등과 같은 고수준에서만 본다면, 마이크로서비스 아키텍처는 기존의 서비스 지향 구조 등과 크게 달라 보이지 않는다. 그러나 마이크로서비스 아키텍처를 구현하기 위해 구체적인 기술을 자세히 살펴보면 그 차이를 체감할 수 있다. 이러한 차이를 체감하고 체득하는 데는 많은 노력이 필요하지만, 이 책을 통해 그 기반을 단단히 다질 수 있을 것이다. 이 책은 마이크로서비스 아키텍처의 기본 개념을 기존의 서비스지향 구조, ESB 등과 비교해서 잘 설명하고 있다. 나아가 개념을 실제 구현에 어떻게 적용하고 어떤 오픈소스를 사용할 수 있는지도 자세히 알려준다. 마이크로서비스 아키텍처는 어렵다. 알아야 할 기술이 너무 많기 때문이다. 이 책은 국내에서 마이크로서비스 아키텍처를 구현하는 데 사용되는 거의 모든 오픈소스를 다루며, 비록 국내에서는 생소하지만 국외에서는 잘 알려진 오픈소스도 소개한다. 이 책에서 설명하는 오픈소스의 개요만 파악해도, 추후 마이크로서비스를 실무에 적용할 때 큰 도움이 될 것이다. 책을 번역하는 과정에서 깃허브에 공개된 예제가 일부 누락된 것을 발견하고, 출판사를 통해 저자들과 소통할 기회가 있었다. 비록 저자들이 너무 바쁘고 소스 코드를 찾지 못한 탓에 완벽하게 업로드해주지는 못했지만, 보완하기 위해 최대한 노력해준 저자들의 노고에 감사한다. 소스 코드가 완전하지 않은 부분에 대해서는 저자들을 대신해 양해를 구하고 싶다. 그러나 책의 내용을 끝까지 살펴보면, 저자들이 실제 개발에 도움이 되는 소스를 제공하고자 최선을 다했다는 점을 깨닫게 될 것이다. 이 책을 모두 읽고 나면, 400페이지 남짓한 원서에 많은 내용을 담아낸 저자들의 노력뿐 아니라 남다른 안목과 식견에도 감탄하게 될 것이다. 따라서 다소 힘들더라도 이 책의 모든 내용을 끝까지 한 번은 읽어볼 것을 권한다. |