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 호출
데이터 저장
이 책에서 다루는 내용
■ 쿠버네티스와 마이크로서비스의 시너지 이해
■ 쿠버네티스에서 마이크로서비스를 위한 완전한 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장, ‘