이 책은 다음과 같이 구성돼 있다.
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장, ‘서비스 디스커버리와 서비스 메시: 새로운 영역을 찾아 경계를 넘어’에서는 서비스 디스커버리와 서비스 메시에 대해 설명한다. 7장에서는 CoreDNS DNS 서버와 Istio 서비스 메시를 소개한다.
8장, ‘네트워크와 정책 관리: 문지기 관찰’에서는 캘리코(Calico), 플라넬(Flannel), 실리움(Cilium)과 같은 네트워킹 인터페이스를 포함한 네트워크와 Azure Policy와 Open Policy Agent 등의 정책 관리를 다룬다.
9장, ‘분산 데이터베이스와 스토리지: 중앙 은행’에서는 Azure Storage, Vitess, Rook, TiKV 등을 중심으로 클라우드 네이티브 인프라에 영구 스토리지 시스템을 배포하는 방법에 관해 설명한다.
10장, ‘메시지’에서는 주로 NATS와 Azure 메시징 서비스와 같은 메시징과 스트리밍 플랫폼을 중점적으로 다룬다.
11장, ‘서버리스’에서는 클라우드 네이티브 랜드스케이프의 서버리스를 간단히 소개한다.
12장, ‘결론’에서는 앞서 소개한 장들에서 논의한 모든 내용을 요약한다.
◈ 옮긴이의 말 ◈
최근 ChatGPT와 OpenAI는 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상에서 클라우드 네이티브 애플리케이션을 배포 및 관리하기 위해 실제 어떤 기술들이 필요한지 기본적인 개념과 큰 흐름을 이해했으면 좋겠다. 또한 독자들이 실습을 직접 따라해보지 못하더라도, 코드로 된 명령어를 눈으로 보면서 실습의 전반적인 흐름과 구성을 따라가기만 해도 책의 목표 절반은 성취했다고 생각한다.
-최지희