이미 소장하고 있다면 판매해 보세요.
|
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를 사용한 정책 배포 __요약 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장. 결론 __다음은 무엇일까? |
Nishant Singh
Michael Kehoe
양준기의 다른 상품
최지희의 다른 상품
|
이 책에서 다루는 내용
- 왜 클라우드 네이티브로 전환해야 하는가? - 코드로서의 인프라 사용 방법 - 애플리케이션을 컨테이너화하는 데 필요한 것 - 쿠버네티스가 "위대한 조정자"인 이유와 방법 - 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장, ‘결론’에서는 앞서 소개한 장들에서 논의한 모든 내용을 요약한다. 지은이의 말 클라우드 컴퓨팅은 성장과 혁신을 이끄는 차세대 디지털 비즈니스 혁신의 모델로 널리 채택됐다. 오늘날 고객은 빠르면서도 기존 서비스와 매끄럽게 통합되는 에코시스템을 원한다. 엔터프라이즈 관점에서 클라우드는 확장 가능하고 안정성이 높으며 가용성이 높은 방식으로 소비자와 기업을 위한 서비스를 제공한다. 그리고 최종 사용자 관점에서 클라우드는 기반 인프라와 기술을 완전히 이해하지 않아도 컴퓨팅 서비스를 얻을 수 있는 간단한 모델을 제공한다. 기존의 많은 애플리케이션은 클라우드 서비스의 속도와 민첩성을 최대한 활용하기 위해 클라우드 네이티브 애플리케이션으로 전환됐으며, 새로운 솔루션은 “cloud first”로 구축되고 있다. 클라우드 네이티브 애플리케이션은 처음부터 급격한 변화, 대규모 및 복원력을 수용하도록 구축된다. 기본적으로 클라우드 네이티브 애플리케이션 인프라는 비즈니스 요구 사항을 효율적으로 제공하는 데 중요한 역할을 한다. 기반 인프라가 올바른 방식으로 설계되지 않으면 최고의 클라우드 네이티브 애플리케이션도 프로덕션 환경에서는 실패할 수밖에 없다. 이 책은 클라우드 네이티브 애플리케이션의 다양한 요구 사항과 설계 고려 사항을 바탕으로, Azure의 최신 클라우드 네이티브 인프라를 프로덕션 환경에서 구축하고 관리할 수 있는 방법을 살펴본다 옮긴이의 말 최근 ChatGPT와 Open AI는 IT 업계의 화두다. 어떤 이는 IT 혁명이라도 하고, 어떤 이는 산업의 혁명이라고도 말한다. 이 화두의 정점에 있는 회사는 다름아닌 Microsoft다. 이 거대한 기업이 IT 시장에서 변화를 이끌어내는 것을 보면 마치 스타트업이 움직이는 것 같이 민첩하고 기민하다. Microsoft의 변화의 기반을 이끌어내는 저변에는 Azure가 있다. IT 업계, 특히 Cloud 업계에서의 3개의 공룡은 시장에서 치열하게 경쟁하고 있는데, 최근의 Microsoft의 행보를 보면 1위 가능성이 없어 보이진 않는다. 2022년 공정거래위원회가 발표한 ‘클라우드 서비스 분야 실태 조사 연구’에 따르면 한국 내에서 클라우드 시장 점유율은 AWS가 1위, Azure는 그다음을 차지하고 있다. 하지만Microsoft는 IT 종사자 또는 사용자라면 많이 사용하고 있는 Microsoft 365, GitHub, Visual Studio와 같은 친숙한 서비스를 제공하기 때문에 낯설지만은 않을 것이다. 최근 몇 년 동안 기업에서도 이런 도구들을 활용해 Microsoft Azure와 통합해 사용하는 기업들이 늘어나고 있다. 내가 만난 고객들은 서비스의 수준에 대해서 서비스의 차이는 있지만, 수준은 차이가 나지 않는다고 고백하고 있다. 내가 보는 Azure의 특징을 3가지 정도로 보고 있다(물론 개인적인 생각임을 밝혀 둔다). 첫째, Azure의 서비스는 PaaS, SaaS를 통한 서비스 통합에 중점을 두고 있다. Microsoft는 수십 년 동안 자사의 제품을 개발, 공급하고 있으며, 이 제품은 개발자가 사용하는 개발 도구부터 엔터프라이즈의 대규모 데이터를 처리하는 데이터베이스까지 없는 제품이 없을 정도로 많다. 이런 개발 노하우를 적극적으로 Azure에 반영하고 있다. 특히 자사 제품과의 서비스 통합은 비교할 수 없을 정도로 발군이다. 대표적인 예는 Active. Directory와 Azure Active Directory와의 연계 통합이다. 둘째, Azure는 기존의 Microsoft 제품을 사용하는 고객에게는 비용적으로 이점이 있다. Window Server, SQL Server를 사용하는 고객은 Azure 하이브리드 혜택을 통해 타사 대비 최대 85% 이상 절감할 수 있다. 이 하이브리드 혜택은 RHEL(Red Hat Enterprise Linux), SLES (SUSE Linux Enterprise Server)를 사용하는 Linux VM에 대해 적용할 수 있으며 최대 76%까지 비용을 아낄 수 있다. 셋째, IT 생태계 확장을 통한 서비스의 다양성이다. Microsoft Azure는 Red Hat, VMWare, Oracle과 같은 기존의 IT 강자들을 포함해 많은 오픈소스 생태계를 Azure 서비스에 담고 있다. 위에도 언급했지만 비용적인 측면뿐만 아니라 Azure의 네이티브 서비스에도 각 영역의 시장에서 유력한 제품들을 탑재하고 있다. 이는 비용과 서비스 유지보수 측면에서 아주 유리하다. 특히 Azure Spring Apps와 같은 서비스는 Azure에서 Spring Boot 애플리케이션을 바로 사용할 수 있게 해주며, VMWare Tanzu와 같은 엔터프라이즈 서비스는 마켓플레이스를 통해서 제공하고 있다. 이런 관점에서 보면 Azure는 클라우드 관련자라면 반드시 알아야 한다. 하지만 현재 국내에서 Azure와 관련된 책은 찾기가 어렵다. 특히 인프라에 초점을 맞춰 작성된 책은 더더욱 드물다. 그런 측면에서 이 책은 가치가 있다. 서문에서도 밝혔지만, 클라우드의 장점을 최대한 활용하기 위해서는 애플리케이션뿐만 아니라 인프라도 그에 맞게 네이티브 인프라로 구축돼야 한다. 이 책에서는 그렇게 하기 위한 대부분의 내용을 설명하고 있으며, 이를 Azure로 구축하기 위한 방법과 다른 컴퓨팅 솔루션을 활용하는 방법까지 폭넓게 밝히고 있다. 하지만 클라우드 시장이 빠르게 변화하는 만큼 가장 최신의 정보를 담지 못하는 점은 아쉽다. 옮긴이 주석에도 남겼지만 실제 실습을 하다 보면 수정돼야 하는 내용도 있다. 그럼에도 불구하고 이 책은 클라우드의 개념은 알면서도 Azure 기반에서 클라우드 네이티브 인프라를 구성하려는 독자에게 훌륭한 책이다. 또한 Azure 기반이 아니더라도 이 책에서 제시하는 다른 클라우드 솔루션과 접근 방법은 클라우드 인프라 담당자에게 도움이 될 수 있다. -양준기 최근 클라우드 네이티브라는 용어를 많이 들어봤을 것이다. 많은 기업이 클라우드로 전환하고 있지만 단순히 환경만 바꾼다고 해서 클라우드의 모든 이점을 갖추기는 어렵다. 따라서 클라우드의 확장성과 유연성과 같은 이점을 최대로 활용하기 위해서는 말 그대로 클라우드에서 태어난, 클라우드에 잘 맞는 환경을 함께 갖추는 것이 중요해지고 있다. 그렇다면 클라우드에 잘 맞는 환경이란 무엇일까? 클라우드 네이티브 컴퓨팅 재단 CNCF에서는 클라우드 네이티브에 관해 ‘조직이 현대적이고 역동적인 환경에서 확장 가능한 애플리케이션을 구축하고 실행할 수 있도록 지원하는 것’이라고 정의하고 있다. 이러한 예로 컨테이너, 서비스 메시, 마이크로서비스, 불변 인프라 등을 말하고 있다. 이 책에서는 CNCF의 지침에 따라 클라우드 네이티브 애플리케이션을 구축하고 배포하는 데 필요한 지식을 제공하고 있다. 특히 Azure상에서 쿠버네티스 클러스터를 배포하는 것부터 배포 관리하고 관측하기까지, 설계 단계에서 클라우드 네이티브의 특성을 최대한 활용하는 방법을 배울 수 있다. 또한 Terraform 코드를 통해 리소스를 배포하는 실습을 포함해 이를 사용하고 유지 관리하는 방법을 안내하고 있다. 번역을 진행하면서 독자들이 쉽게 잘 읽을 수 있고 내용이 잘 전달될 수 있게 하는 데 초점을 뒀다. 이러한 노력에도 일부 기술 용어를 설명하는 내용이 어색할 수 있다. 독자들이 이 책을 읽으면서 용어 하나하나 상세하게 이해하기보다는 Azure상에서 클라우드 네이티브 애플리케이션을 배포 및 관리하기 위해 실제 어떤 기술들이 필요한지 기본적인 개념과 큰 흐름을 이해했으면 좋겠다. 또한 독자들이 실습을 직접 따라 해보지 못하더라도 코드로 된 명령어를 눈으로 보면서 실습의 전반적인 흐름과 구성을 따라가기만해도 책의 목표 절반은 성취했다고 생각한다. -최지희 |
|
당신의 책상에 꼭 필요한 Azure 참고서. 클라우드에 적합한 애플리케이션 구축 방법을 설명하는 책이다. - 토드 팔리노 (LinkedIn의 수석 엔지니어, 『카프카 핵심 가이드』 공동 저자)
|