이미 소장하고 있다면 판매해 보세요.
|
1장. 개발자를 위한 쿠버네티스 소개
__기술 요구 사항 ____도커 설치 ____Kubectl 설치 ____Minikube 설치 ____코드 __간결한 쿠버네티스 ____쿠버네티스-컨테이너 오케스트레이션 플랫폼 ____쿠버네티스의 역사 ____쿠버네티스의 현재 __쿠버네티스 구조의 이해 ____컨트롤 플레인 ____데이터 플레인 __쿠버네티스와 마이크로서비스-완벽한 조합 ____마이크로서비스 패키징과 배포 ____마이크로서비스 노출과 디스커버리 ____마이크로서비스 보안 ____마이크로서비스 인증과 인가 ____마이크로서비스 업그레이드 __로컬 클러스터 생성 ____클러스터 확인 ____클러스터 사용하기 ____Helm 설치 __요약 __추가 자료 2장. 마이크로서비스 시작 __기술 요구 사항 ____macOS에 Homebrew로 Go 설치 ____다른 플랫폼에 Go 설치 ____코드 __마이크로 프로그래밍- 적을수록 더 좋다 __마이크로서비스 자율화 __인터페이스 및 계약 사용 __API로 서비스 노출 __클라이언트 라이브러리 사용 __종속성 관리 __마이크로서비스 코디네이팅 ____균일성과 유연성 절충 __소유권의 이점 활용 __콘웨이의 법칙 이해 ____수직 ____수평 ____메트릭스 __여러 서비스의 문제 해결 __공유 서비스 라이브러리 활용 __소스 제어 전략 선택 ____단일 저장소 ____여러 저장소 ____하이브리드 __데이터 전략 생성 ____마이크로서비스당 하나의 데이터 저장소 ____분산 쿼리 실행 ____사가를 사용해 여러 서비스 간의 트랜잭션 관리 __요약 __추가 자료 3장. Delinkcious-샘플 애플리케이션 __기술 요구 사항 ____비주얼 스튜디오 코드 ____GoLand ____LiteIDE ____기타 옵션 ____코드 __Delinkcious를 위한 Go 선택 __Go kit의 이해 ____Go kit으로 마이크로서비스 구조화 ____전송 ____엔드포인트 ____서비스 ____미들웨어 ____클라이언트 ____상용구 생성 __Delinkcious 디렉터리 구조 소개 ____cmd 하위 디렉터리 ____pkg 하위 디렉터리 ____svc 하위 디렉터리 __Delinkcious 마이크로서비스 소개 ____객체 모델 ____서비스 구현 ____지원 함수 구현 ____클라이언트 라이브러리로 API 호출 __데이터 저장 __요약 __추가 자료 4장. CI/CD 파이프라인 시작 __기술 요구 사항 ____코드 __CI/CD 파이프라인 이해 __Delinkcious CI/CD 파이프라인 선택 ____젠킨스 X ____스피너커 ____트래비스 CI와 CircleCI ____텍톤 ____Argo CD ____자체 솔루션 __GitOps __CircleCI로 이미지 생성 ____소스 트리 검토 ____CI 파이프라인 구성 ____build.sh 스크립트 이해 ____CircleCI UI ____향후 개선 고려 __Delinkcious에 대한 지속적인 배포 설정 ____분리형 마이크로서비스 배포 ____Argo CD 이해 ____Argo CD 시작하기 ____Argo CD 구성 ____Argo CD 탐색 __요약 __추가 자료 5장. 쿠버네티스로 마이크로서비스 구성 __기술 요구 사항 ____코드 __구성이란 무엇인가? ____구성과 시크릿 __옛날 방식 구성 관리 ____구성 협약 ____명령줄 플래그 ____환경변수 ____구성 파일 ____하이브리드 구성 및 기본값 ____12가지 애플리케이션 구성법 __동적으로 구성 관리 ____동적 구성 이해 ____원격 구성 저장소 ____원격 구성 서비스 __쿠버네티스로 마이크로서비스 구성 ____쿠버네티스 컨피그 맵 작업 ____쿠버네티스 사용자 정의 리소스 ____서비스 디스커버리 __요약 __추가 자료 6장. 쿠버네티스의 마이크로서비스 보안 __기술 요구 사항 ____코드 __건전한 보안 원칙 적용 __사용자 어카운트와 서비스 어카운트의 차별화 ____사용자 어카운트 ____서비스 어카운트 __쿠버네티스로 시크릿 관리 ____쿠버네티스 시크릿의 세 가지 유형 이해 ____시크릿 만들기 ____컨테이너로 시크릿 전달 ____안전한 포드 만들기 __역할 기반 액세스 제어 모델을 통한 권한 관리 __인증, 인가, 어드미션으로 액세스 제어 ____마이크로서비스 인증 ____마이크로서비스 인가 ____마이크로서비스 어드미션 __보안 모범 사례를 사용해 쿠버네티스 클러스터 강화 ____이미지 보안 ____네트워크 분할 정복 ____이미지 레지스트리 보호 ____필요에 따라 쿠버네티스 리소스의 액세스 권한 부여 ____쿼터를 사용해 피해 반경 최소화 ____보안 컨텍스트 구현 ____보안 정책으로 포드 강화 __툴 체인 강화 ____JWT 토큰으로 관리자 인증 ____RBAC로 인가 ____HTTPS로 안전한 통신 ____시크릿 및 자격증명 관리 ____감사 ____클러스터 RBAC __요약 __추가 자료 7장. 외부와 통신-API와 로드밸런서 __기술 요구 사항 ____코드 __쿠버네티스 서비스 익숙해지기 ____쿠버네티스의 서비스 유형 __East-west와 north-south 통신 비교 __인그레스와 로드밸런싱 이해 __공개 REST API 제공과 소비 ____파이썬 기반 API 게이트웨이 서비스 구축 ____인그레스 추가 ____API 게이트웨이가 클러스터 외부에서 사용 가능한지 확인 __내부 gRPC API 제공 및 소비 ____NewsManager 인터페이스 정의 ____뉴스 관리자 패키지 구현 ____gRPC 서비스로 NewsManager 노출 __메시지 대기열로 이벤트 전송 및 수신 ____NATS란? ____클러스터에 NATS 배포 ____NATS로 링크 이벤트 보내기 ____NATS의 링크 이벤트 구독 ____링크 이벤트 처리 __서비스 메시 이해 __요약 __추가 자료 8장. 스테이트풀 서비스 사용하기 __기술 요구 사항 ____코드 __스토리지 추상화 ____쿠버네티스 스토리지 모델 ____내부 및 외부 스토리지 플러그인 ____CSI 이해 __쿠버네티스 클러스터 외부에 데이터 저장 __스테이트풀 셋을 사용해 클러스터 내부에 데이터 저장 ____스테이트풀 셋 이해 ____언제 스테이트풀 셋을 사용해야 하나? ____대용량 스테이트풀 셋 예제 __로컬 스토리지로 고성능 달성 ____메모리에 데이터 저장 ____로컬 SSD에 데이터 저장 __쿠버네티스에서 관계형 데이터베이스 사용 ____데이터가 저장되는 위치 ____디플로이먼트 및 서비스 사용 ____스테이트풀 셋 사용 ____사용자 서비스가 스테이트풀 셋 포드를 찾는 데 도움 ____스키마 변경 관리 __쿠버네티스에서 비관계형 데이터 저장소 사용 ____레디스 소개 __요약 __추가 자료 9장. 쿠버네티스에서 서버리스 작업 실행 __기술 요구 사항 ____코드 __클라우드에서 서버리스 ____마이크로서비스와 서버리스 함수 ____쿠버네티스에서 서버리스 함수 모델링 ____서버리스 함수 빌드, 구성, 배포 ____서버리스 함수 호출 __Delinkcious의 링크 검증 __링크 점검 설계 ____링크 검증 구현 __Nuclio를 통한 서버리스 링크 검증 ____Nuclio 간단 소개 ____링크 검증 서버리스 함수 만들기 ____nuctl을 사용해 링크 검증 함수 배포 ____Nuclio 대시보드를 사용해 함수 배포 ____링크 검증 함수 직접 호출 ____LinkManager에서 링크 검증 시작 __다른 쿠버네티스 서버리스 프레임워크 ____쿠버네티스 잡과 크론잡 ____KNative ____Fission ____Kubeless ____OpenFaas __요약 __추가 자료 10장. 마이크로서비스 테스트 __기술 요구 사항 __단위 테스트 ____Go에서 단위 테스트 ____Ginkgo와 Gomega로 단위 테스트 ____Delinkcious 단위 테스트 ____멋진 모의 구현 ____모든 것을 테스트해야 하나? __통합 테스트 ____테스트 데이터베이스 초기화 ____서비스 실행 ____실제 테스트 실행 ____데이터베이스 테스트 헬퍼 구현 ____서비스 테스트 헬퍼 구현 __쿠버네티스로 로컬 테스트 ____스모크 테스트 작성 ____텔레프레즌스 ____라이브 디버깅을 위해 GoLand로 로컬 링크 서비스에 연결 __테스트 격리 ____테스트 클러스터 ____네임스페이스 테스트 ____크로스 네임스페이스/클러스터 __종단 간 테스트 ____승인 테스트 ____회귀 테스트 ____성능 시험 __테스트 데이터 관리 ____합성 데이터 ____수동 테스트 데이터 ____프로덕션 스냅샷 __요약 __추가 자료 11장. 마이크로서비스 배포 __기술 요구 사항 ____코드 __쿠버네티스 디플로이먼트 __여러 환경에 배포 __배포 전략 이해 ____재생성 배포 ____롤링 업데이트 ____블루-그린 배포 ____카나리아 배포 __배포 롤백 ____표준 쿠버네티스 디플로이먼트 롤백 ____블루-그린 배포 롤백 ____카나리아 배포 롤백 ____스키마, API, 페이로드 변경 후 롤백 처리 __버전과 종속성 관리 ____공개 API 관리 ____서비스 간 종속성 관리 ____타사 종속성 관리 ____인프라와 툴체인 관리 __로컬 개발 배포 ____Ko ____Ksync ____드래프트 ____스카폴드 ____틸트 __요약 __추가 자료 12장. 모니터링, 로깅 그리고 메트릭 __기술 요구 사항 ____코드 __쿠버네티스로 자가 치유 ____컨테이너 고장 ____노드 장애 ____시스템 고장 __쿠버네티스 클러스터 오토 스케일링 ____수평 포드 오토 스케일링 ____수평 포드 오토 스케일러 사용 ____클러스터 오토 스케일링 ____수직 포드 오토 스케일링 __쿠버네티스에 리소스 프로비저닝 ____어떤 리소스를 프로비저닝할까? ____컨테이너 제한 정의 ____리소스 쿼터 지정 ____수동 프로비저닝 ____오토 스케일링 사용 ____자신만의 오토 프로비저닝 사용 __올바른 성능 얻기 ____성능과 사용자 경험 ____성능과 고가용성 ____성능과 비용 ____성능과 보안 __로깅 ____무엇을 로깅해야 할까? ____로깅 대 오류 보고 ____완벽한 Go 로깅 인터페이스를 위한 노력 ____Go-kit으로 로깅 __쿠버네티스에서 메트릭 수집 ____쿠버네티스 메트릭스 API 소개 ____쿠버네티스 메트릭 서버 이해 ____프로메테우스 사용 __경보 ____구성 요소 장애 수용 ____시스템 장애 수용 ____인적 요인 고려 ____프로메테우스 경보 관리자 활용 __분산 추적 ____예거 설치 ____서비스에 추적 추가 __요약 __추가 자료 13장. 서비스 메시-이스티오 __기술 요구 사항 ____코드 __서비스 메시란 무엇인가? ____모놀리스와 마이크로서비스 비교 ____공유 라이브러리를 사용해 마이크로서비스의 교차 문제 관리 ____서비스 메시를 사용해 마이크로서비스의 교차 문제 관리 ____쿠버네티스와 서비스 메시의 관계 이해 __이스티오는 무엇을 제공하는가? ____이스티오 아키텍처 알아보기 ____이스티오로 트래픽 관리 ____이스티오로 클러스터 보안 ____이스티오 정책 적용 ____이스티오로 메트릭 수집 ____이스티오를 사용해서는 안 될 때는 언제일까? __이스티오를 적용한 Delinkcious ____서비스 간 상호 인증 제거 ____더 나은 카나리아 배포 활용 ____자동 로깅과 오류 보고 ____NATS 수용 ____이스티오 풋프린트 검사 __이스티오 대안 ____링커드 2.0 ____엔보이 ____하시코프 콘슬 ____AWS 앱 메시 ____기타 ____메시 사용하지 않음 __요약 __추가 자료 14장. 마이크로서비스와 쿠버네티스의 미래 __마이크로서비스의 미래 ____마이크로서비스와 서버리스 함수 ____마이크로서비스, 컨테이너 및 오케스트레이션 ____gRPC와 gRPC-Web ____GraphQL ____HTTP/3의 등장 __쿠버네티스의 미래 ____쿠버네티스 확장성 ____서비스 메시 통합 ____쿠버네티스의 서버리스 컴퓨팅 ____쿠버네티스와 가상머신 ____클러스터 자동 확장 ____오퍼레이터 사용 ____페더레이션 __요약 __추가 자료 |
Gigi Sayfan
기기 사이판의 다른 상품
황주필의 다른 상품
|
★ 이 책에서 다루는 내용 ★
■ 쿠버네티스와 마이크로서비스의 시너지 이해 ■ 쿠버네티스에서 마이크로서비스를 위한 완전한 CI/CD 파이프라인 생성 ■ 모범 사례로 Go-Kit 프레임워크를 사용해 쿠버네티스에서 마이크로서비스 개발 ■ 쿠버네티스와 오픈 소스 도구를 사용한 시스템 관리와 모니터링 ■ REST와 gRPC API로 서비스 노출 ■ 서버리스 함수를 서비스로 구현, 배포 ■ 외부 인증/인가 사용과 서비스 메시를 사용한 트래픽 셰이핑 ■ 구글 쿠버네티스 엔진(GKE) 클라우드에서 쿠버네티스 클러스터 실행 ★ 이 책의 대상 독자 ★ 대규모 소프트웨어 엔지니어링을 하려는 개발자와 데브옵스 엔지니어를 대상으로 한다. 하나 이상의 시스템에서 컨테이너를 사용해 배포해봤으며 여러 팀에서 개발한 대규모 소프트웨어 시스템을 개발한 경험이 있다면 도움이 될 것이다. ★ 이 책의 구성 ★ 1장, ‘개발자를 위한 쿠버네티스 소개’에서는 쿠버네티스를 소개한다. 쿠버네티스의 간단한 소개와 쿠버네티스가 마이크로서비스와 얼마나 잘 조화되는지 그 아이디어를 얻게 될 것이다. 2장, ‘마이크로서비스 시작’에서는 마이크로서비스 기반 시스템의 일반적인 문제의 다양한 측면, 패턴, 접근 방식과 모놀리스를 대규모 서비스 같은 다른 일반적인 아키텍처와 비교하는 방법을 설명한다. 3장, ‘Delinkcious - 샘플 애플리케이션’에서는 Go를 Delinkcious의 프로그래밍 언어로 선택해야 하는 이유를 설명한다. 그런 다음 Go-kit을 살펴볼 것이다. 4장, ‘CI/CD 파이프 라인 설정’에서는 CI/CD 파이프라인이 해결하는 문제를 설명하고 쿠버네티스의 CI/CD 파이프라인에 관한 다양한 옵션을 다룬다. 마지막으로 Delinkcious를 위한 CI/ CD 파이프라인 구축을 살펴본다. 5장, ‘쿠버네티스를 사용한 마이크로서비스 구성’에서는 실용적이고 실제적인 마이크로서비스 구성 영역을 살펴본다. 또한 쿠버네티스 관련 옵션, 특히 컨피그맵(ConfigMap)을 설명한다. 6장, ‘쿠버네티스에서 마이크로서비스 보안’에서는 쿠버네티스에서 마이크로서비스를 심층적으로 보호하는 방법을 설명한다. 또한 쿠버네티스에서 마이크로서비스 보안의 기반이 되는 원칙도 논의한다. 7장, ‘외부와 통신- API와 로드밸런서’에서는 Delinkcious를 클러스터 외부에서 사용자와 상호작용할 수 있게 하는 것을 살펴본다. 또한 사용자가 다른 사용자에 대한 뉴스를 얻고자 할 때 이용할 수 있는 gRPC 기반 뉴스 서비스를 추가할 것이다. 마지막으로 서비스가 느슨하게 연결된 방식으로 통신할 수 있도록 메시지 대기열을 추가할 것이다. 8장, ‘스테이트풀 서비스 사용하기’에서는 쿠버네티스 스토리지 모델을 설명한다. 또한 Delinkcious 뉴스 서비스를 확장해 데이터를 메모리 대신 Redis에 저장한다 9장, ‘쿠버네티스에서 서버리스 작업 실행’에서는 클라우드 네이티브 시스템에서 가장 인기 있는 트렌드인 서버리스 컴퓨팅을 소개한다. 쿠버네티스에서 서버리스 컴퓨팅을 수행하는 다른 방법도 다룬다. 10장, ‘마이크로서비스 테스트’에서는 테스트 주제와 다양한 특징(단위 테스트, 통합 테스트, 모든 종류의 종단 간(end-to-end) 테스트)을 소개한다. 또한 Delinkcious 테스트가 구성되는 방법도 자세히 살핀다. 11장, ‘마이크로서비스 배포’에서는 프로덕션 배포와 개발 배포라는, 관련이 있지만 별도인 두 가지 테마를 다룬다. 12장, ‘모니터링, 로깅, 메트릭’에서는 쿠버네티스에서 대규모 분산 시스템을 실행하는 운영 측면과 시스템 설계 방법 그리고 최고 수준의 운영 환경을 보장하기 위해 고려해야 할 사항에 중점을 둔다. 13장, ‘서비스 메시-이스티오’에서는 서비스 메시의 뜨거운 주제인 이스티오(Istio)를 검토한다. 서비스 메시가 진정한 판도를 바꾸는 것이기 때문에 흥미로울 것이다. 14장, ‘마이크로서비스와 쿠버네티스의 미래’에서는 쿠버네티스와 마이크로서비스를 다루며 새로운 기술을 채택하고 투자할 적절한 시기를 결정하는 방법을 배우도록 도와줄 것이다 ★ 지은이의 말 ★ 이 책은 바로 여러분이 기다리던 책이다. 마이크로서비스를 개발하고 쿠버네티스에 배포하는 두 가지 과정을 안내한다. 마이크로서비스 기반 아키텍트와 쿠버네티스의 시너지 효과는 매우 강력하다. 이 책은 모든 각도를 망라하고 있다. 마이크로서비스와 쿠버네티스의 기본 개념을 설명하고, 실제 문제와 장단점을 알아본 후, 척척 만들어지는 마이크로서비스 기반 시스템의 개발 과정을 안내하고 모범 사례와 권장 사항을 제공한다. 엄청난 양의 근거를 아주 깊이 있게 설명하기 위한 작업 코드를 다룬다. 마이크로서비스 기반 아키텍트를 설계하고, 마이크로서비스를 만들고, 만들어진 마이크로서비스를 테스트하고, 도커 이미지로 패키징하는 방법을 알게 될 것이다. 그런 다음 도커 이미지 패키지로 시스템을 쿠버네티스에 배포하며 관리하는 방법을 배우게 될 것이다. 그 과정에서 자동화된 CI/CD, gRPC 기반 마이크로서비스, 서버리스(serverless) 컴퓨팅, 서비스 메시와 같은 중요한 트렌드에 익숙해질 것이다. 끝에서는 쿠버네티스에 배포된 마이크로서비스 기반 아키텍트를 사용해 대규모 클라우드 네이티브 시스템을 계획, 개발, 운영할 수 있는 많은 지식과 실무 경험을 얻게 될 것이다 ★ 옮긴이의 말 ★ 쿠버네티스는 굉장히 방대한 플랫폼이다. 쿠버네티스 하나만 자세히 알기에도 벅차다. 하지만 쿠버네티스에 애플리케이션을 배포, 운영하려고 한다면 고민해야 할 부분이 무척 많을 것이다. 국내에 수많은 쿠버네티스 관련 서적이 나와 있기는 하지만 쿠버네티스 자체 기능과 쿠버네티스에 애플리케이션을 배포하고 관리하는 방법에만 초점을 맞추고 있다. 이 책은 저자의 다양한 경험을 통해 마이크로서비스 아키텍트(MSA) 기반 애플리케이션을 쿠버네티스에 적용하기 위한 다양한 사례를 솔직하게 이야기하고 있어서 좋았다. 한 가지 단점 아닌 단점이라고 한다면, 아직까지 국내에서는 Java를 이용해 애플리케이션을 개발하는 경우가 많다. 그러나 이 책에서는 Go를 애플리케이션 개발 언어로 사용해, Go 언어에 익숙하지 않은 개발자나 운영자에게는 고민이 될 수도 있다. 그렇지만 Go뿐만 아니라 파이썬(Python), 러스트(Rust) 등의 다양한 언어도 사용한다. 어렵게 생각하지 말고 그 부분은 과감하게 건너뛰어도 상관이 없으므로 큰 부담을 갖지 않았으면 좋겠다. 마이크로서비스 애플리케이션을 만드는 방법을 알고자 하는 독자에게는 이 책의 앞 부분이 도움이 될 것이고, 마이크로서비스 아키텍트 입장에서 쿠버네티스와 다양한 툴 (CI/CD, Serverless, 모니터링, 서비스 메시 등)을 활용하는 방법을 자세히 알고 싶다면 중반 이후가 유용할 것이다. |