Azure를 활용한 클라우드 네이티브 인프라 [확장 가능한 클라우드 애플리케이션 구축과 관리]
- 원서명Cloud Native Infrastructure with Azure: Building and Managing Cloud Native Applications (ISBN 9781492090960)
- 지은이니샨트 싱(Nishant Singh), 마이클 케호(Michael Kehoe)
- 옮긴이양준기, 최지희
- ISBN : 9791161757520
- 35,000원
- 2023년 04월 28일 펴냄
- 페이퍼백 | 412쪽 | 188*235mm
- 시리즈 : 클라우드 컴퓨팅
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/cloud-native-infrastructure
요약
클라우드 컴퓨팅에서 클라우드 네이티브 인프라를 구축하는 방법을 소개한다. 클라우드 네이티브 재단의 지침을 따르면서 Microsoft Azure 또는 다른 클라우드 컴퓨팅 솔루션을 사용해서 모듈성, 배포 가능성, 통합 가시성 및 자가 치유 능력을 가진 서비스를 구축하는 방법을 알려준다. 이를 통해 클라우드 애플리케이션을 빠르게 적용하고 클라우드의 탄력성과 분산적인 특성을 최대한 활용할 수 있다.
추천의 글
"당신의 책상에 꼭 필요한 Azure 참고서. 클라우드에 적합한 애플리케이션 구축 방법을 설명하는 책이다.”
—토드 팔리노(Todd Palino)
LinkedIn의 수석 엔지니어,
『카프카 핵심 가이드』(제이펍, 2023)의 공동 저자
이 책에서 다루는 내용
◆ 왜 클라우드 네이티브로 전환해야 하는가?
◆ 코드로서의 인프라 사용 방법
◆ 애플리케이션을 컨테이너화하는 데 필요한 것
◆ 쿠버네티스가 "위대한 조정자"인 이유와 방법
◆ Azure에서 쿠버네티스 클러스터를 만드는 방법
◆ 관찰성이 모니터링을 보완하는 방법
◆ 서비스 디스커버리와 서비스 메시를 사용해 새로운 영역을 찾는 방법
◆ 네트워킹과 정책 관리가 게이트 키퍼 역할을 하는 방법
◆ 분산 데이터베이스와 스토리지 작동 방식
이 책의 대상 독자
클라우드 네이티브 환경과 이런 환경을 엔지니어가 안정적으로 구축하는 데 사용하는 모든 주요 기술에 대해 간단하면서도 포괄적으로 소개한다. 이 책은 사이트 안정성 엔지니어(SRE), Site Reliability Engineer, DevOps 엔지니어, 솔루션 아키텍트, Azure를 좋아하는 사람과 일상적으로 클라우드 네이티브 워크로드 작업을 구축, 마이그레이션, 배포 및 관리하는 데 관련된 모든 사람을 대상으로 한다.
이 책은 독자가 클라우드와 DevOps 문화에 대해 전반적으로 기본 지식을 갖추고 있다고 가정한다. 그러나 클라우드 네이티브와 기타 고급 기술에 대해 더 잘 이해하고 싶은 사람도 이를 시작하는 데 적합하다.
이 책의 구성
1장, ‘소개: 왜 클라우드 네이티브인가?’에서는 클라우드에 대한 기본 소개와 클라우드 네이티브 기술과 적용의 필요성을 설명한다.
2장, ‘코드로서의 인프라: 게이트웨이 설정’에서는 테라폼(Terraform)과 패커(Packer)로 IaC Infrastructure as Code의 기본 사항을 다루고, 프로비저닝/구성 관리자로 Azure와 Ansible을 소개한다.
3장, ‘애플리케이션 컨테이너화: Box 그 이상’에서는 컨테이너와 containerd, 도커(Docker) 및 CRI-O와 같은 컨테이너 런타임을 소개한다. 다양한 유형의 컨테이너 레지스트리에 관해서도 설명한다.
4장, ‘쿠버네티스 : 그랜드 오케스트레이터’에서는 쿠버네티스에 대해 설명하고 5장에서 사용할 인프라의 필요한 세부 정보에 대해 설명한다.
5장, ‘Azure에서 쿠버네티스 클러스터 생성’에서는 특히 Azure Kubernetes Service와 Helm 패키지 관리자를 다룬다.
6장, ‘관측성: 브래드스크럼 따라가기’에서는 최신 클라우드 네이티브 인프라를 관찰할 수 있는 방법에 초점을 맞춘다.
7장, ‘서비스 디스커버리와 서비스 메시: 새로운 영역을 찾아 경계를 넘어’에서는 서비스 디스커버리와 서비스 메시에 대해 설명한다. 또한 CoreDNS DNS 서버와 Istio 서비스 메시를 소개한다.
8장, ‘네트워크와 정책 관리: 문지기 관찰’에서는 캘리코(Calico), 플라넬(Flannel), 실리움(Cilium)과 같은 네트워킹 인터페이스를 포함한 네트워크와 Azure Policy와 Open Policy Agent 등의 정책 관리를 다룬다.
9장, ‘분산 데이터베이스와 스토리지: 중앙 은행’에서는 Azure Storage, Vitess, Rook, TiKV 등을 중심으로 클라우드 네이티브 인프라에 영구 스토리지 시스템을 배포하는 방법에 관해 설명한다.
10장, ‘메시지’에서는 주로 NATS와 Azure 메시징 서비스와 같은 메시징과 스트리밍 플랫폼을 중점적으로 다룬다.
11장, ‘서버리스’에서는 클라우드 네이티브 랜드스케이프의 서버리스를 간단히 소개한다.
12장, ‘결론’에서는 앞서 소개한 장들에서 논의한 모든 내용을 요약한다.
목차
목차
- # 차례 #
- 1장. 소개: 왜 클라우드 네이티브인가?
- 클라우드 여정
- 클라우드의 과제
- 클라우드 네이티브 컴퓨팅 재단
- Azure로 클라우드 네이티브 인프라스트럭처 적용
- 요약
- 2장. 코드로서의 인프라: 게이트웨이 설정
- 코드로서의 인프라와 클라우드 네이티브 세계에서의 중요성
- Azure 시작하기와 환경 설정
- Azure 기본 사항과 환경 준비하기
- Azure 계정 생성
- Azure CLI 설치
- 주요 IaC 도구
- 테라폼
- 패커
- 앤서블
- Azure DevOps와 코드로서의 인프라
- 요약
- 3장. 애플리케이션 컨테이너화: Box 그 이상
- 왜 컨테이너인가?
- 격리
- 보안
- 패키징과 배포
- 기본 컨테이너 기본 요소
- Cgroup
- Namespace
- Copy on Write
- Capabilities
- Seccomp-BPF
- 컨테이너 실행의 컴포넌트
- 컨테이너 오케스트레이터
- 컨테이너 소프트웨어
- 컨테이너 런타임
- 컨테이너
- 운영체제
- 오픈 컨테이너 이니셔티브 스펙
- OCI 이미지 스펙
- OCI 런타임 스펙
- 도커
- 첫 번째 도커 이미지 빌드
- 도커 사용 모범 사례
- 다른 컨테이너 플랫폼
- 카타 컨테이너
- LXC와 LXD
- 컨테이너 레지스트리
- Harbor로 안전하게 이미지 저장
- Azure 컨테이너 레지스트리로 안전하게 이미지 저장
- 레지스트리에 도커 이미지 저장
- Azure에서 도커 실행
- Azure 컨테이너 인스턴스
- Azure 컨테이너 인스턴스 배포
- 도커 컨테이너 엔진 실행
- 요약
- 왜 컨테이너인가?
- 4장. 쿠버네티스 : 그랜드 오케스트레이터
- 쿠버네티스 컴포넌트
- 컨트롤 플레인
- 워커 노드
- 쿠버네티스 API 서버 오브젝트
- 포드
- 레플리카셋
- 디플로이먼트
- 서비스
- 네임스페이스
- 레이블과 셀렉터
- 어노테이션
- 인그레스 컨트롤러
- 스테이트풀셋
- 데몬셋
- 잡
- kubectl로 쿠버네티스 클러스터 관측, 운영 및 관리
- 일반적인 클러스터 정보와 명령어
- 포드 관리
- 프로덕션에서의 쿠버네티스
- 요약
- 쿠버네티스 컴포넌트
- 5장. Azure에서 쿠버네티스 클러스터 생성
- 쿠버네티스 클러스터를 맨 처음부터 생성
- 리소스 그룹 생성
- 워커와 컨트롤러의 머신 이미지 생성
- 스토리지 계정 생성
- Azure 가상 네트워크 생성
- 로드 밸런서의 퍼블릭 IP 생성
- 워커 인스턴스와 컨트롤러 인스턴스 생성
- 앤서블로 쿠버네티스 컨트롤러 노드의 배포와 구성
- 앤서블로 쿠버네티스 워커 노드의 배포와 구성
- 포드 네트워크와 라우팅 설정
- 원격 접속과 클러스터 검증을 위한 kubeconfig 파일 생성
- Azure 쿠버네티스 서비스
- Helm으로 애플리케이션과 서비스 배포: 쿠버네티스의 패키지 관리자
- Helm의 기본
- Helm 설치와 관리
- Helm 릴리스 관리
- 애플리케이션을 차트로 생성
- 요약
- 쿠버네티스 클러스터를 맨 처음부터 생성
- 6장. 관측성: 브래드스크럼 따라가기
- 관측성 소개
- 관측성: 세 개 이상의 핵심 요소
- 관측성: 모니터링의 슈퍼셋
- 관측성-기반 개발
- 클라우드 네이티브 세계에서 프로메테우스 모니터링 메트릭
- 프로메테우스 컴포넌트와 아키텍처
- 프로메테우스 설치와 구성
- node_exporter
- 애플리케이션 계측
- 호스트 찾기
- 쿠버네티스에서의 프로메테우스
- 클라우드 네이티브 세계에서의 로깅
- Fluentd를 이용한 로깅
- 쿠버네티스에서의 Fluentd
- 클라우드 네이티브 세계에서의 분산 추적
- 추적: 핵심 개념
- 일반적인 추적 시스템 아키텍처와 추적 조합
- 추적 표준, 도구, 코드 계측
- Azure Monitor
- 요약
- 관측성 소개
- 7장. 서비스 디스커버리와 서비스 메시: 새로운 영역을 찾아 경계를 넘어
- 서비스 디스커버리
- CoreDNS 소개
- CoreDNS 설치와 구성
- CoreDNS와 쿠버네티스 서비스 디스커버리
- Azure DNS
- 서비스 메시
- Istio 소개
- Azure Kubernetes Service에서 Istio 설치
- 사이드카 프록시(Envoy 프록시) 자동화
- Kiali를 사용한 Istio 서비스 메시 관리
- 요약
- 서비스 디스커버리
- 8장. 네트워크와 정책 관리: 문지기 관찰
- 컨테이너 네트워크 인터페이스(CNI)
- CNI를 사용하는 이유
- Azure에서 CNI가 작동하는 방법
- 다양한 CNI 프로젝트
- 캘리코
- 캘리코를 사용하는 이유
- 기본 아키텍처
- 캘리코 배포
- 캘리코 깊게 살펴보기
- 캘리코 보안 정책 구현
- 실리움
- 실리움 배포
- 클라우드에 실리움 통합
- 호스트 방화벽
- 플라넬
- 플라넬 배포
- 플라넬 깊게 살펴보기
- Azure Policy
- Azure Policy 빠르게 시작하기
- Azure Policy 생성
- 쿠버네티스와 Azure Policy
- 오픈 정책 에이전트
- 쿠버네티스에서 OPA 배포
- OPA를 사용한 정책 배포
- 요약
- 컨테이너 네트워크 인터페이스(CNI)
- 9장. 분산 데이터베이스와 스토리지: 중앙 은행
- 클라우드 네이티브 아키텍처에서의 분산 데이터베이스 필요성
- Azure 스토리지와 데이터베이스 옵션
- Vitess 소개: 분산 샤딩 MySQL
- Vitess를 사용하는 이유
- Vitess 아키텍처
- 쿠버네티스에 Vitess 배포
- Rook 소개 : 쿠버네티스의 스토리지 오케스트레이터
- Rook 아키텍처
- 쿠버네티스에 Rook 배포
- TiKV 소개
- TiKV를 사용하는 이유
- TiKV 아키텍처
- 쿠버네티스에 TiKV 배포
- etcd에 대해 더 살펴보기
- 하드웨어 플랫폼
- 오토스케일링과 자동 재조정
- 가용성과 보안
- 요약
- 클라우드 네이티브 아키텍처에서의 분산 데이터베이스 필요성
- 10장. 메시지
- 메시징의 필요성
- 샘플 메시징 유스 케이스: 로그 수집(Ingestion)과 분석
- 1세대: 큐 없음
- 2세대: 클라우드 큐와 오브젝트 스토리지
- 3세대: 메모리 기반의 게시/구독 큐
- 메시징 플랫폼의 기본
- 메시징 대 스트리밍
- 메시징 기초
- 생산자와 소비자
- 브로커와 클러스터링
- 견고성과 영속성
- 메시지 전달
- 보안
- 공통 메시징 패턴
- 심플 큐
- 게시와 구독
- 견고한 큐
- 대표적인 클라우드 네이티브 메시징 플랫폼 개요
- RabbitMQ
- Apache Kafka
- CNCF CloudEvents
- NATS를 사용해 클라우드 메시징 깊게 살펴보기
- NATS 프로토콜 아키텍처
- JetStream과 NATS 지속성
- NATS 보안
- 쿠버네티스에 NATS 배포
- Azure 메시징 서비스
- Azure Service Bus
- Azure Event Hubs
- Azure Event Grid
- 요약
- 11장. 서버리스
- 서버리스 컴퓨팅 소개
- 서버리스란?
- 서버리스 Function이란?
- 서버리스 살펴보기
- 서버리스의 장점
- 서버리스의 잠재적 단점
- Azure Function 앱
- Function 앱 아키텍처
- Function 앱 생성
- Knative
- Knative 아키텍처
- 쿠버네티스에서 Knative Serving 설치와 실행
- 쿠버네티스에서 Knative Eventing 설치와 실행
- KEDA
- KEDA 아키텍처
- 쿠버네티스에 KEDA 설치
- OpenFaaS
- OpenFaaS 아키텍처
- OpenFaaS 설치
- OpenFaaS Function 작성
- 요약
- 서버리스 컴퓨팅 소개
- 12장. 결론