메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

클라우드 네이티브

클라우드 네이티브 애플리케이션을 설계, 개발, 운영하는 핵심 가이드

한빛미디어

번역서

판매중

  • 저자 : 보리스 숄 , 트렌트 스완슨 , 피터 야우쇼베츠
  • 번역 : 정원천
  • 출간 : 2020-06-13
  • 페이지 : 252 쪽
  • ISBN : 9791162243183
  • 물류코드 :10318
  • 초급 초중급 중급 중고급 고급
4.4점 (22명)
좋아요 : 0

최신 클라우드 네이티브 애플리케이션 개념을 익히고 모범 사례를 배워보자!

 

클라우드를 처음 접할 때는 누구나 어려움을 겪는다. 분산 시스템을 배우고 컨테이너와 함수를 익혀야 하며, 어렵지만 이를 한 번에 다루는 방법도 알아야 한다. 

 

이 책은 최신 클라우드 네이티브 애플리케이션 아키텍처의 구성 요소를 설명한다. 컨테이너, 서버리스 컴퓨팅, 스토리지, 애플리케이션의 이식성 개념 설명부터 클라우드 네이티브 애플리케이션 개발에 필요한 패턴, 메시징, 이벤팅, 데브옵스 같은 모범 사례까지 살펴본다. 클라우드 네이티브 환경에서 애플리케이션을 어떻게 설계, 개발, 운영해야 할지 고민이라면 이 책으로 시작해보자.

 

  • 클라우드 네이티브 애플리케이션 설계에 필요한 기술을 살펴본다.
  • 컨테이너와 함수를 분리하고 언제 사용하는지 배운다.
  • 데이터 관련 요구 사항이 있는 애플리케이션을 설계한다.
  • 애플리케이션 개발, 테스팅, 운영에 필요한 기본 개념과 데브옵스 방법을 배운다.
  • 클라우드 네이티브 애플리케이션을 개발하고 관리하는 팁, 기술, 모범 사례 등을 학습한다.
  • 이식성 있는 애플리케이션의 장단점과 구축 비용을 알아본다.

 

클라우드 네이티브_상세이미지_700.jpg

보리스 숄 저자

보리스 숄

마이크로소프트 애저 컴퓨트 팀의 수석 프로그램 관리자. 애저 컴퓨트 팀에서 제품 아키텍트로 일하며 차세대 분산 시스템 플랫폼과 애플리케이션 모델에 집중하고 있다.

트렌트 스완슨 저자

트렌트 스완슨

소프트웨어 솔루션 설계를 돕는 컨설팅 회사인 Full Scale 180의 공동창업가 및 컨설턴트. 마이크로소프트의 고객들이 애플리케이션을 마이그레이션하고 개발할 수 있도록 돕고 있다.

피터 야우쇼베츠 저자

피터 야우쇼베츠

소프트웨어 개발 분야에서 10년 이상 경력을 지닌 소프트웨어 엔지니어. 마이크로소프트에서 애저 개발과 클라우드 툴링을 개발한 경험이 있다. 최근에는 분산 시스템 및 클라우드 네이티브 솔루션 개발에 집중하고 있다.

정원천 역자

정원천

클라우드 개발 업무를 하고 있으며 커뮤니티 스피커로 관련 분야의 발표를 진행한 경험이 있다. 최근에는 클라우드 분야에 남다른 열정으로 개인 블로그에 관련 지식을 업로드하고 있다.

『쿠버네티스 입문』(동양북스, 2020)를 집필했고,  『자바 프로그래밍 면접, 이렇게 준비한다』(한빛미디어, 2015), 『C++ 버그 헌팅』(한빛미디어, 2013), 『클라우드 컴퓨팅 바이블』(길벗, 2012), 『프로 윈도우 폰 7 개발』(길벗, 2012)을 번역했다.

 

CHAPTER 1 클라우드 네이티브 소개

1.1 분산 시스템

1.2 12요소 앱

1.3 가용성과 서비스 수준 협약서

1.4 마치며

 

CHAPTER 2 기본 지식

2.1 컨테이너

2.2 서버리스 컴퓨팅

2.3 함수

2.4 VM부터 클라우드 네이티브까지

2.5 마이크로서비스

2.6 마치며

 

CHAPTER 3 클라우드 네이티브 애플리케이션 설계

3.1 클라우드 네이티브 애플리케이션 기초

3.2 클라우드 네이티브 vs 전통적인 아키텍처

3.4 API 설계와 버저닝

3.5 서비스 커뮤니케이션

3.6 게이트웨이

3.7 이그레스

3.8 서비스 메시

3.9 아키텍처 예제

3.10 마치며

 

CHAPTER 4 데이터 다루기

4.1 데이터 스토리지 시스템

4.2 다양한 데이터스토어 데이터

4.3 클라이언트가 데이터에 접근하기

4.4 빠르게 확장 가능한 데이터

4.5 데이터 분석

4.6 쿠버네티스상 데이터베이스

4.7 마치며

 

CHAPTER 5 데브옵스

5.1 데브옵스란?

5.2 테스팅

5.3 개발 환경과 도구

5.4 CI/CD

5.5 모니터링

5.6 설정 관리

5.7 예제 CI/CD 흐름

5.8 마치며

 

CHAPTER 6 모범 사례

6.1 클라우드 네이티브로 이동하기

6.2 회복력 확인

6.3 보안 강화

6.4 데이터 다루기

6.5 성능과 확장성

6.6 함수

6.7 운용

6.8 로깅, 모니터링, 알림

6.9 서비스 커뮤니케이션

6.10 컨테이너

6.11 마치며

 

CHAPTER 7 이식성

7.1 왜 애플리케이션을 이식할 수 있게 만드는가?

7.2 이식성 비용

7.3 이식성을 언제, 어떻게 구현할 것인가?

7.4 마치며

 

찾아보기

전문가들은 2025년쯤에는 애플리케이션의 90% 이상이 클라우드 네이티브로 구현될 것이라고 말한다. 클라우드 네이티브 기술은 현대적인 퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드와 같이 동적인 환경에서 확장성 있는 애플리케이션을 만들고 운영할 수 있다. 따라서 기존 애플리케이션은 클라우드 네이티브 애플리케이션으로 점차 전환하고 있으며, 앞으로는 모든 산업 분야에 큰 영향을 미칠 것이다.

 

이 책은 클라우드 네이티브 애플리케이션 설계에 필요한 개념을 다룬다. 가장 기본적이고 중요한 개념인 데브옵스, 애자일 방법론, 마이크로서비스, 클라우드 플랫폼, 쿠버네티스 및 도커 등을 설명한다. 실무에서 풀지 못한 문제를 해결하는 데 도움되는 내용으로 채웠다. 클라우드 환경에서의 실무 경험이 풍부한 저자들이 이론과 실무에서의 괴리감을 속 시원하게 해결해준다. 클라우드 환경이 아닌 곳에서 실행 중인 앱을 클라우드 환경으로 이전할 때 한 번에 이전하는 것이 아닌 단계적으로 이전하는 방법을 알려준다. 이 책을 읽고 클라우드 네이티브하게 애플리케이션 개발에 성공하길 바란다.

 



[주요 내용]

- 클로스 토폴로지

- 네트워크 분리

- 네트워크 운영체제 선정

- 라우팅 프로토콜 선정

- 컨테이너 네트워킹

- 네트워크 가상화와 EVPN

- 네트워크 자동화


[대상 독자]

네트워크 아키텍트, 네트워크 운영자, 네트워크 애플리케이션 개발자


[서평]


이 책의 구성은 크게 세 부분으로 구성되어 있다.

아키텍처

1장과 2장에서는 아키텍처를 다룬다. 새로운 아키텍처의 필요성 과 네트워크 아키텍처에 대해 소개한다.


기술

3장부터 7장까지는 아키텍처 뼈대에 살을 붙이고 생기를 돋게 하는 다양한 기술을 소개합니다. 기술 선택과 프로토콜, 생동하는 네트워크 아키텍처를 설계하는 방법을 다룹니다.


실행

7장 이후에는 아키텍처에서 묘사한 기술을 사용하는 방법을 다룹니다. 네트워크를 구성할 때 적지만 더 나은 개념을 적용하는 방법을 포함하여 네트워크 구성과 유효성 검증을 다룹니다.


확장 가능한 네트워크를 만들고

운영하기 위한 아키텍처부터 프로토콜과 실전 기술까지!


가상화, 클라우드 기술 발전으로 데이터 센터 네트워크가 더욱 복잡해지고 있습니다. 이럴 때일수록 클라우드 네이티브 환경뿐만 아니라 앞으로도 계속 변화할 환경 속에서도 네트워크를 현명하게 구축할 수 있어야 합니다. 데이터 센터 네트워크를 강건하고 민첩하게 만들 수 있도록 데이터 센터 네트워킹 지식을 쌓아야 합니다.


이 책에서 컴퓨트와 네트워킹으로 분리된 서로 다른 두 분야를 하나로 합치고 데이터 센터 엔지니어와 아키텍트를 넓고 깊은 지식을 배울수 있습니다. 리눅스라는 강건한 네트워킹 능력을 지닌 운여에체제와 더욱 분산된 애플리케이션, 고품질 오픈소스 라우팅 제품군이 등장함에 따라 네트워크와 컴퓨트 간의 인위적인 분리는 더 이상 적용되지 않아도 됩니다.  

좀더 자세히 소개하자면 클라우드 네이티브라는 특정한 방법으로 데이터 센터 네트워크 설계하는 방법을 배우고, 복잡한 데이터 센터 네트워킹 개념을 뒷받침하는 훌륭한 예제와 친절한 설명으로 클라우드 환경에 적합한 네트워크 구축 준비를 마칠 수 있습니다. 


이 실전 가이드로 데이터 센터 네트워크 고도화를 위한 기술을 익혀보길 바랍니다.



 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

2020년 6월에 출간된 <클라우드 네이티브>에 대해 살펴보겠습니다. 한빛미디어 리뷰 평가단에 참가하며, 처음으로 필자가 신청한 책이 아닌 책을 리뷰하게 되어 조금 당황스러웠지만, 이 책은 필자의 호기심을 유발하는 내용이 듬뿍 담긴 매력적인 책이었습니다.

이 책의 저자분은 마이크로소프트 애저 서비스와 관련 있는 분들입니다. 그러므로 클라우드 서비스에 높은 이해를 보유하고 있는 분들이라고 생각합니다. 이 책은 클라우드 네이티브를 이해하기 위해 필요한 내용을 군더더기 없이 요약하고, 설명하고 있습니다. 단, 필자의 사견으로는 클라우드에 대해 전혀 모르는 분이 읽기에는 다소 어려움을 느낄 수도 있습니다.

번역자인 정원천 님은 현업에서 클라우드 개발업무를 진행하는 분으로, 번역 품질을 고려하지 않아도 될 것 같습니다.  실제로 필자는 읽기에 어색함 없이 편하게 읽을 수 있었습니다.

<클라우드 네이티브>는 약 250여 페이지로 구성되어 있어 휴대하면서 읽기에 부담스럽지 않습니다. 또한, 이 책은 전차잭으로도 만나볼 수 있음으로 전자책 뷰어가 있으신 분은 전자책으로 보셔도 좋을 것 같습니다. 

 

 

한빛미디어 리뷰 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다. 
 

이 책의 매력은?

<클라우드 네이티브>에 관한 내용을 250여 페이지에서 다루는 것은 어렵습니다. 이 책은 전반적으로 다루는 내용이 방대합니다. 그래서 클라우드 관련 지식에 대해 이해가 부족한 분은 어렵게 느껴질 수 있습니다. 

이미 어느 정도 지식을 내재하고 있는 독자라면, 이 책은 <클라우드 네이티브>에 대한 이해를 도와줄 수 있는 매력적인 책입니다. 내재한 지식을 정리할 수 있으며, 클라우드 네이티브를 도입하며 고려해야 할 다양한 요소들이 담겨 있으므로 부족한 부분을 극복하기 위한 학습 포인트와 미처 예상하지 못했던 다양한 포인트들을 놓치지 않을 수 있습니다.

또한, 이 책에서 이야기하는 주요 포인트들에 대해 깊이 있게 설명하지 않습니다. 또한, 약간 불친절하게 느껴지는 부분도 있습니다. 따라서 각 부분마다 정확하기 이해하기 위해서는 추가적으로 학습이 필요합니다.

이 책은 <클라우드 네이티브> 모델 도입의 지침서라고 생각합니다. 이 책을 기반으로 부족한 부분을 조금씩 채워가다보면 멋진 클라우드 네이티브 모델을 완성해 나갈 수 있을 것으로 판단합니다. 
 

마치면서

<클라우드 네이티브>는 7개의 챕터로 구성되어 있습니다. 클라우드 네이티브의 소개부터 기본적으로 알아야 할 내용을 담고 있으며, 애플리케이션 설계 방법과 데이터를 다루는 방법, 최근 관심이 높아지고 있는 DevOps를 소개합니다. 이후 모범 사례 등을 소개하며, 마지막으로 온프레이스나 클라우드를 선택해서 배포해야 요구 사항을 대비하는 방법을 안내합니다. 

옮긴이의 말에서 "이 책은 저자들이 수년간 컨설팅 경험에서 쌓아온 다양한 노하우를 소개합니다."라는 구절이 있습니다. 이 책에 대해 잘 요약한 문장이라고 생각합니다. 이 책은 국내에서 인기 있는 따라하기 방법의 책은 아닙니다. 따라서 다소 어렵게 느껴질 수 있지만, 이 책을 기반으로 외연을 넓혀나간다면 매우 효과적으로 학습할 수 있을 것으로 생각합니다. 

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

 

이번에 리뷰하게 된 책은 클라우드 네이티브입니다.
클라우드 네이티브 어플리케이션은 고객 요구사항에 빠르게 대응하기 위해서 빠른 업데이트와 수정 배포 탄력적인 확장 그리고 이를 위해 클라우드 환경에서 제공되는 잇점을 최대한 활용하는 서비스를 말합니다.

요즘 어플리케이션 개발의 키워드들은 마이크로 서비스, 도커, 컨테이너, 쿠버네티스, CI/CD 들을 꼽을 수 있습니다. 하나하나가 자세히 설명하려면 거의 책 한 권 이상이 나올 수도 있는 내용들입니다. 그러나 가끔은 나무가 보는 것이 아닌 전체적인 숲의 안내도를 먼저 보는게 도움이 될 때가 있습니다. 
 
이 책은 250p 정도의 짧은 분량이지만 앱이 네트웍 클라우드 상의 분산시스템으로 이동됨으로써 발생하는 오류(고려해야하는 점)들로 시작하여 클라우드서비스가 갖추어야 할 12요소를 설명하고, 이를 만족시키기 위해서 어떤 구조 아키텍쳐를 가져야 하며, 모범 사례등을 알려주고 있습니다.

호환성을 위해 API설계를 어떻게 할 것이며 어떤 프로토콜로 어떻게(동기/비동기) 주고 받을지 
게이트웨이 및 트래픽 관리 장애처리 보안 모니터링
클라우드환경에서 데이타는 어떻게 다룰 것인지
데이타의 보안, 분석, 상태관리
데브옵스, 테스팅, CI/CD
모범사례 격리, 확장, 보안, 함수, 모니터링, 컨테이너 
등을 적절한 그림 설명과 함께 간결하게 적었습니다.
중간중간 모르는 용어나 내용들이 나와서 이해가 어려운 부분들도 있었습니다. 독자의 사전 지식에 따라 이해도는 충분할 수도 있고 부족할 수도 있다고 생각합니다.
 
어떤 기능 사용법이나  따라하기 그런 스타일의 책은 아니고 구체적인 How 보다는 무엇을 해야하고 왜 해야하는지를 알려주므로 실무적용시에는 추가적인  공부가 필요합니다.
어느정도 서비스운영을 해보았거나 도커나 쿠버네티스같은 것을 접해보거나 관련지식을 습득한 상태에서 이 책을 보면 더 얻는 것이 많을것으로 생각됩니다. 

KakaoTalk_Photo_2021-04-18-21-14-33.jpeg

 

 

이 리뷰는 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

요즘 대부분의 스타트업들은 클라우드 네이티브 환경으로 인프라를 구축하는 것이 대세인 것 같다. 그 이유는 다른 인프라 환경에 비해 그나마 쉽고 빠르게 인프라를 구축할 수 있기 때문일 것이다. 또한 대부분 클라우드 네이티브 환경에서의 MSA 를 구축하게 될텐데 이 책은 그 때 알아야 할 개념들에 대해서 알려주고 있다. 책 자체가 250 페이지 정도로 짧기 때문에 많은 내용이 담겨 있지는 않고 함축적으로 특정 개념들에 대해서 설명해준다.

 

우선 처음에 클라우드 네이티브를 왜 해야 하는 것인지부터 설명을 하기 시작한다. 모놀로틱부터 마이크로서비스로 가면서 클라우드 네이티브로의 이관은 필수불가결하다는 것을 거의 전제로 시작한다. 하지만 개인적으로는 초반부부터 컨테이너에 대한 이야기를 하면서 그렇게 시작해야 하나 싶기도 했다.

 

그 후에 클라우드 네이티브 방식으로 애플리케이션을 개발하기 위한 설계, 방식, 패턴 등에 대해서 설명해주는데 장점이라 하면 "쿠버네티스의 구성 방식과 왜 그렇게 이루어져 있는지" 를 이해할 수 있었다는 것이다. 하지만 단점이라면 너무 그쪽으로만 치우쳐 있어서 다른 클라우드 네이티브 애플리케이션 설계는 어떻게 할 수 있을까 하는 의문을 들게 만들었다.

 

이후에는 이러한 책의 구성에서 빠질 수 없는 데브옵스에 대해서 이야기하고 결국엔 CI/CD 에 대한 이야기를 하게 된다. 그런데 여기서도 대부분의 초점이 쿠버네티스와 연관되어 있어 약간 실망감을 감추기 어려웠었다. (이럴꺼면 그냥 쿠버네티스 책을 읽는게 좋지 않을까 싶기도 했다.)

 

개인적으로 그나마 마음에 들었던 챕터가 6장, 7장 이였는데 이는 모놀로틱인 레거시에서 마이크로서비스로 어떻게 옮길 것인지, 어떤 패턴을 써야 하는지 언제 옮기는게 괜찮은지 등에 대한 이야기를 해준다.

 

이번 책은 조금 실망스럽기도 한 책이였다. 이 책이 그냥 쿠버네티스에 대한 이야기를 잘 풀어놓은 책이라는 생각이 많이 들었다. 하지만 그래도 특정 패턴에 대한 지식과 개념에 대해서 알 수 있어서 다행이였다. 개인적으로는 쿠버네티스 외적인 이야기가 좀 더 있었으면 더 와닿지 않았을까 하는 생각이 많이 들었었다. 물론, 클라우드 네이티브라는 것이 특정 프로바이더에 대해, 예를들어 AWS 에 대해 이야기하면 이게 AWS 책인지 아닌지 헤깔리게 될 수도 있을지도 모른다.

 

이 책은 클라우드 네이티브에 대해서 관심이 있는 사람이 가볍게 읽을 수 있는 책이 아닌가 싶다.

한빛 미디어 도서 서평단 <나는 리뷰어다 2021>

* 세 번째 도서! - Cloud Native(클라우드 네이티브)

내가 가장 관심있어하는 클라우드&분산 분야로 가장 선정됐으면 했던 책이다

도서 배송 받고 기대감에 두근두근 설렜던 책

* 도서 서평단 시스템은 희망 도서 3권을 선택하여 그중 랜덤으로 한 권이 발송된다




 

 

Cloud Native

 

 

 

먼저 이 책은 위에서도 기술했지만 개인적으 관심있는 분야였던 클라우드 네이티브를 설명한 책이고 이전 책보다 더 관심을 기울이며 읽었다

Cloud Native 책에 대한 추천평은 'Cloud Native를 대략적으로 알고있으며 더 넓게 알고 싶다면 읽어라'이다

 

책은 Cloud Native를  7개의 대분류로 나누어 설명하고 대략적 내용은 다음과 같다

Chapter 1,2: Cloud Native 개념 및 기초 지식 설명

Chapter 3: Cloud Native Application 설계

Chapter 4: Cloud Native Application에서 Data 다루기 

Chapter 5: Devops

Chapter 6: Cloud Native Application 활용 팁 & 유의 사항

Chapter 7: Cloud Native Application 이식성(확장성)

 

Chapter 1,2에서 Cloud Native 기초 개념을 설명하는데 이 중 분산 시스템의 오류들을 기술한 내용이 눈길을 끌었다

Cloud 환경에서 분산 시스템은 필연적인 환경으로 독자층을 감안하면 모를 수가 없는 개념이다 이 때 저자는 네트워크면에서 간과할 수 있는 이슈 발생 포인트를 설명하여 Cloud Native Application 개발 활용도를 높였다 또 CAP 이론을 언급하여 분산 시스템을 구축을 보다 탄탄하게 만든다

자원 확장 부분에선 클라우드 환경에 적합한 수평적 확장을 짚어주고 12요소 앱을 기술하여 Cloud Native Application 개발에서 가져가야 할 특징들을 설명한다. 예를 들자면 7번 항목이다.

'7. 데이터 격리: 각 서비스가 자신의 데이터를 관리'에서 서비스로부터 데0이터를 분리하는 것은 Cloud Native Application의 데이터를 다루는 기본 패턴이자 마이크로 서비스 아키텍쳐의 핵심 요소로 데이터에 대한 직접 접근을 금지해야 한다.

Cloud Native Application 구현에 대해서는 컴퓨트 관점과 아키텍처 관점으로 나누어 접근한 부분은 Cloud Native에 대해 다각적으로 사고하는 태도를 배우게 되어 좋았는데, 그 중 컨테이너 기술 부분에서 쿠버네티스 설명 부분이 인상 깊었다.

'쿠버네티스는 컨테이너 플랫폼, 마이크로서비스 플랫폼, 클라우드 이식성 레이어로 간주됩니다. 현재는 모든 주요 클라우드 제공 업체에서 관리형 쿠버네티스를 제공합니다' - 32p

가끔 개념서를 읽다보면 설명은 장황한데 무슨 소리인지 이해하기 어려울 때가 있다. 그러나 Cloud Native책은 한 줄로 Kubernetes(k8s) 니즈(Needs)를 표현한 것을 대표하여 대부분의 문장들이 간단 명료하다. 개념과 정보 전달 방식이 깔끔하니 이해하기 쉬웠고, 명확한 전달 방식이 앎과 모름의 경계를 뚜렷이 구분해주어 Cloud Native에 관한 길잡이 책으론 확실하단 느낌을 받았다. 

5장 Devops 파트에서는 마이크로서비스 아키텍쳐 특징을 활용하는 데브옵스(Devops)를 설명한다. 서비스 지향 아키텍쳐는 지속적 혁신이 가능한만큼 빠르고 안정적인 배포가 필요한데 이 때 여러 개의 테스트들과 각각의 장/단점을 설명하여 가장 적절한 선택을 하도록 돕는다. 또 각 테스트들에 맞는 주기 설명, 내부 테스트/실 서비스 차이에 따라 전략을 달리하는 것을 주장하는데, 충분히 납득될한만 상황과 근거들을 제시하여 Cloud Native 개발의 어려움을 한번 더 상기시켰다. 또 모니터링과 관련하여 모니터링 메트릭 중 서비스 성능에 중요한 메트릭 항목 제시, 현존 인기 있는 모니터링 도구(그라파나) 소개, 실제 소스 등을 작성하는 등의 자세한 메트릭 수집 방식 설명은 현 시점에서 활용도 극강이라 생각했다.

Cloud Native 개발을 하고 있거나/할 예정인 개발자들에겐 책 한 장, 한 장, 넘기기 아까울 정도로 유익한 내용이 많다. 그렇지만 분산 처리, 데브옵스, 리눅스 등 개발과 관련한 전반적인 정보가 부족하면 이해하기 어려울 수 있다. DB도 관계형/비관계형을 다루고 하드웨어 기반 가상화/커널 기반 가상화 등의 용어도 등장하여 개발 기초가 잡혀 있어야 책의 흐름이라도 따라갈 수 있다고 생각한다. 나조차도 일회독은 끝났지만 앞으로 다독을 실천하여 책의 내용을 내 것으로 만들 생각이다. Cloud Native 개발을 생각하는 사람에게 꼭 이 책을 추천한다.

 

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

클라우드 서비스, 데브 옵스, 인프라 운영에 대한 개념을 담은 책 입니다. 

클라우드 서비스를 구축하고 운영, 배포하시는데 어려움이 있으신 분에게 추천드리고 싶습니다. 

저같은 경우는 이제 데브 옵스 분야에 입문하려고 하는 학생이라, 책에서 다루는 분산 시스템 및 어플리케이션 배포에 대해 익숙하지 않아서 개념을 받아들이는데 어려움이 있었습니다. 

하지만 이는, 전혀 경험해보지 못한 분야이기 떄문에 발생한 일이었고 마치 OS의 개념을 그대로 받아들이듯이 공부했더니 비교적 쉽게 개념을 따라갈 수 있었습니다. 하나 아쉬운 점이 있다면, 개념만 다룰뿐 어떠한 실습을 진행하기에는 무리가 있습니다. 실제로 도커나 쿠버네티스를 활용한 시스템을 구축하는 예제가 있고 이를 고도화하는 과정이 포함되었으면 더 좋을 것 같습니다. 

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 


최근에 Docker, Kubernetes 관련하여 조금씩 접하게 되면서, 나는 인프라 엔지니어와 데브옵스 엔지니어가 하는 일이 정확히 무엇인지를 알고 싶어졌다. 이 도서는 현재 나와 같은 상황의 개발자에게 유효한 것으로 보인다.

초반부의 클라우드 네이티브 애플리케이션 개발을 위한, 잘 정리된 '12 요소 앱 방법론' 개념이 무개념의 철없는 나에게 잽을 날린다.

코드베이스, 종속성, 설정, 백엔드 서비스, 빌드/릴리즈/실행 자동화, 상태 없는 프로세스, 서비스별 데이터 격리, 각 서비스와 함수의 수평적 확장, 폐기 가능, 개발/실서비스의 종속성 패키지 일치화, 로그, 관리 프로세스.이후에는 당연하게도 컨테이너와 오케스트레이션, 쿠버네티스, 마이크로 서비스에 대한 기본적인 개념들을 소개하고 있고, 이어지는 '클라우드 네이티브 아키텍처 설계' 를 위한 기본 사항과 주의점에 대해 다루는 부분이 묵직한 훅을 날리는 것이다. 이 부분이 이 도서의 핵심 중 하나로 보인다.

 

개인적으로 반가운 내용은 게이트웨이에 대한 내용으로, 본인이 부끄럽게도 이 부분에 대한 이해가 그닥 없기 때문이다. 'ㅅ') 

내게는 시간을 꼭 내서 정독해야 할 부분이다.

 

'데브옵스' 에 관련된 부분에서는, 데브옵스 엔지니어가 다루는 인프라, CI/CD, 테스팅 자동화, 배포 등 수없이 많은 이슈를 다루고 있는데 인프라 다루시는 분들에 대한 급 존경심이 든다는...

 

하나의 기술이나 개념에 대해 엄청나게 깊숙히 설명한다기보다는, 클라우드 네이티브 애플리케이션 개발을 위해 필요한 부분들에 대한 전체적인 큰 그림을 그려주는 느낌이 드는 도서이다. 본인이 Docker, Kubernetes 를 공부해나가고 있는 단계라면 읽어볼만한 책으로 추천한다..

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.".

클라우드의 사용은 선택이 아닌 필수가 되버렸다. 클라우드는 단순히 서버를 자체적으로 운영하던 환경의 변화만이 아닌 개발 환경, 아키텍처의 변화도 수반되었으며 개발 목적에 맞는 적절한 아키텍처의 설계와 개발 방법을 통해서 성공적인 목적을 달성할 수 있다.

'클라우드 네이티브' 용어 자체는 명확하다. 그러나, 옮긴이가 서두에서 밝혔듯 단순히 클라우드 네이티브로 전환하는 것은 컨테이너를 사용하고 lamda 함수로 변경하는 것을 말하지 않는다. 애플리케이션이 사요하는 데이터를 어떠한 구조롤 어디에 저장할지, 마이크로 서비스 아키텍처를 어떻게 잘 적용할지, 모니터링을 어떻게 하는지 등 많은 부분에서 레거시 환경과는 다른 환경을 잘 선택하여 적용할 수 있는 통찰력이 필요하다. 그 점에 있어서, 수많은 프로젝트를 경험한 3명의 저자의 풍부한 경험을 독자에게 잘 전달해 주고자 하는 노력이 책 여러곳에서 찾을 수 있다. 범용적인 내용외 후반부(챕터 6이후)에 여러 사례가 제시되어 목차를 참고하여, 후에 유사 프로젝트를 진행함에 있어 훌륭한 가이드가 될 수 있을 것이다.

한빛미디어 홈페이지에 짤게 기재된 '책소개'글에서 매우 간결하고 매우 쉽게 '클라우드 네이티브'에 대해서 요약하고 있는데, 이 책은 초보서는 아니다. 이미 클라우드 환경에서의 개발 경험이 어느 정도 있는 상태에서 좀더 나은 아키텍처의 선택과 자원을 잘 활용하기 위한 중급서임을 알아두고 책장 한편에 두고 필요할때마다 요긴하게 참고할 수 있는 서적이 될 수 있을 것이다.

 

간간히 눈에 띄는 오탈자가 있긴 하지만 크게 거슬리지는 않는다(이미 대부분의 정오표는 등록되어 있으니 참고). 다만, 번역서 특유의 딱딱함과 역주가 없는 점은 아쉬움으로 남는다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

 

SE-f8cbb5d6-a361-4b96-9080-2777081ee063.jpg

 

 

클라우드 네이티브?

 

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

 

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

 

(https://github.com/cncf/foundation/blob/master/charter.md#1-mission-of-the-cloud-native-computing-foundation)

 

 

인프라알못이다.

쿠버네티스, 서버리스 컴퓨팅, 마이크로서비스, 오케스트레이션 등 어디서 많이 주워듣기는 했는데 이해가 깊지 않아서 보게 된 책.

어렵고 머리 아픈데, IDC가 2025년 애플리케이션의 90% 이상이 클라우드 네이티브에서 구동될 것이라고 했다. 공부해야 한다.

 

 

클라우드 네이티브를 간단히 소개하며 컨테이너, 서버리스 컴퓨팅, 함수, 마이크로서비스 등 기본 지식에 대해 설명하는 것으로 시작한다.

 

클라우드 네이티브 애플리케이션 설계, 데이터 다루기를 거쳐 데브옵스의 기본과 실습, 예제를 보여주고 모범 사례와 이식성에 대한 이야기를 하며 책을 끝낸다.

 

 

약 250페이지 분량의 두껍지 않은 책인데 기본적인 내용부터 실무에서 참고하기 좋은 내용과 팁까지 빼곡히 담고 있다. '이 책 하나면 클라우드 네이티브 정복!'은 아니지만 인프라알못이 전체 개념을 잡기에 좋은 책이라고 생각한다.

 

 

 



 

최근 보고 있는 미드 실리콘 밸리에선 스타트업 개발자가 데모 개발을 하다 클라우드 개발에 어려움을 겪는 장면이 나온다. 효율적인 압축과 바이너리 상태에서 검색까지 가능한 제품을 만든 프로그래머가 클라우드를 모르다니? 그러다 이 쇼가 2014년에 방영했다는 걸 알게 됐다. 2014년은 내가 일을 시작한 해이기도 하고 그 당시엔 클라우드니 빅데이터니 하는 단어들은 나와는 조금 떨어진 개념이었다. 작년에 처음 클라우드 서비스를 활용한 프로젝트를 진행하면서 클라우드를 경험했는데 아쉬움이 많이 남았다. 마이크로 서비스 아키텍처, 비동기 상황에서 발생하는 사이드 이펙트를 처리하는데 많은 어려움을 겪었고 다음에는 이런 문제점을 해결하고 싶었다.

 

때마침 클라우드 네이티브 를 리뷰할 기회가 생겼다. 이 책은 클라우드 환경에서 발생할 수 있는 상황에 대한 모범 사례, 아키텍처를 구성할 때 고려해야 할 점, 12 Factors 등 다양한 키워드를 제공한다. 목차는 크게 클라우드의 주 요소, 아키텍처, 데이터 핸들링, 데브 옵스, 모범 사례로 구성되어 있다. 각 개념을 설명하며 AWS나 애져, GCP의 서비스에 대해서도 언급하기도 한다. 그리고 FaaS, 컨테이너와 같은 선택의 기로에서 어떤 기준으로 선택해야 하는지 도움을 준다. 설명이 더 풍부했으면 좋겠지만, 그랬다면 이 책의 분량은 천 페이지가 넘어갔을지도 모르겠다. 클라우드를 어느 정도 경험해본 사람이 더 나은 서비스를 구성하고 싶을 때 이 책의 키워드를 문제 해결의 시작점으로 삼는다면 좋겠다.

 

bookcover.jpg

 

클라우드 위에서 동작하는 애플리케이션을 더욱 클라우드답게 또는 클라우드스럽게 하기 위해서는 그에 따른 최적의 방법론이 요구 된다. 클라우드가 IT 세계의 중심으로 자리 잡으며 클라우드와 관련 된 다양한 기술들이 병행 발전 되고 있는 바, 클라우드에 최적화 된 애플리케이션 설계 방법론으로 명실공히 위상을 떨치고 있는 '클라우드 네이티브'를 다루고 있는 책이 출판 되었으니, 오늘은 그 서적에 대해 이야기를 풀어 보고자 한다.

 

 

 

 

 

 

 

 

우선 이 책은 소프트웨어 개발 및 아키텍처, 컨설팅 등의 각 분야에서 전문 지식을 오랫동안 축적해 온 IT 전문가 3인방이 그들의 소중한 노하우와 경험을 고스란히 책에 녹여 놓았다는 것에 방점을 찍을 수 있다. 클라우드 네이티브로 향하는 여정에 있어 이들의 역할을 톡톡히 빛을 발한다.  또한 해당 서적의 역자를 맡은 정원천님의 군더더기 없은 깔끔한 번역은 책의 퀄리티를 한층 높여 주기에 손색이 없을 정도다. 

 

 

 

 

 

 

 

 

이 책은 클라우드 네이티브가 무엇인지에 대한 개념을 풀어 나가는 것을 위시하여 현대 클라우드 컴퓨팅과 관련 된 다양한 기술들에 대한 기본지식을 풀어 나가고 있다. 이를테면 컨테이너, 서버리스 컴퓨팅, 함수(Function) 등과 같이 최근 들어 퍼블릭 클라우드에서 주요한 플랫폼으로 자리를 잡아 가고 있는 기술들을 다루고 있으며 마이크로 서비스와 관련 된 개념까지 서슴 없이 풀어 나가고 있다. 

 

클라우드 네이티브 환경을 구성하는데에 있어 무엇보다 중요한 것은 바로 '설계'이다. 클라우드 네이티브위에서 동작하는 애플리케이션에 대한 기초를 비롯하여 클라우드 네이티브와 레거시 환경의 아케틱처를 비교, 대조한다. 또한 API에 대한 설계를 포함하여 게이트웨이, 이그레스, 서비스 메시등과 같은 컨테이너 환경 또는 마이크로 서비스 아키텍처 환경에서 주요하게 등장하고 있는 개념에 대한 이야기가 친절하게 전개 된다.

 

애플리케이션이 활용하고 수집하는 '데이터'에 대한 이야기도 빠질 수가 없다. 데이터를 저장하기 위한 다양한 스토리지 시스템에 대한 개념부터 클라이언트가 데이터에 접근하는 사례와 보다 빠르고 확장 가능한 데이터를 위한 방법과 데이터 분석등에 이르기까지 '데이터 다루기'의 정수를 맛볼 수 있게 된다. 

 

책의 후반부로 접어 들며 현대 소프트웨어 개발 문화의 대세로 확고한 위상을 굳히고 있는 '데브옵스'에 대한 이야기를 다루게 된다. 데브옵스의 개념을 시작으로 데브옵스의 근간을 이루는 기술의 양대산맥인 CI/CD와 모니터링, 설정 관리 등의 실질적인 사례를 경험할 수 있다. 

 

끝으로 클라우드 네이티브 환경을 구축하고 구성하기 위한 베스트 프랙티스에 대한 여러가지 주제들, 예컨대 회복력, 성능과 확장성, 로깅, 모니터링, 알림 등에 대한 효율 적인 가이드라인을 제공 받을 수 있으며 '이식성'에 대한 담백하고 실천적인 조언으로 이 책은 마무리 된다. 

 

클라우드 위에서 동작하는 애플케이션이라고 해서 반드시 클라우드가 제공하는 모든 이점을 충분히 누릴 수 있는 것은 아니다. 오직 클라우드다운 애플리케이션, 클라우드스러운 애플리케이션으로 설계 되었을 때, 클라우드 위에서 동작하는 애플리케션으로서 클라우드의 효용성과 장점을 십분 누릴 수 있다. 클라우드 네이티브한, 제대 로 된 클라우드스러운 애플리케이션을 설계하고 싶나요? 클라우드 네이티브를 향한 여정의 첫발을 이 책과 함께 떼길 권해 봅니다. 

 

P.S :   
한빛미디어 '나는 리뷰어' 이벤트에 당첨 되어 제공 받은 도서를 바탕으로 작성된 후기입니다.

 

오늘 리뷰할 도서는 [클라우드 네이티브] 이다.
 
 
 
작년 여름 스프링 클라우드 넷플릭스에 대해 며칠 동안 빡세게 스터디를 했었다. 
 
거의 일년이나 지났기 때문에 상당 부분 기억 속에서 사라졌지만 
 
지난 월~수 3일 동안 도커, 쿠버네티스 관련 교육을 받게 되어 이 책을 리뷰 하기에도 아주 시기 적절했다.
 
책을 본 후에 약간의 혼란이 있었다. 이 책의 내용이 어떤 것인지 예상 했던 것과 많은 차이가 있어서였다.
 
그러나 그건 내 착각이었던 것이지 이 책은 나름 충실하게 본연의 내용을 다루고 있었다.
 
정리 하면 다음과 같다. 일단 개발이나 IT 초보들을 위한 책은 절대로 아니다.
 
도커, 쿠버네티스에 대한 언급은 있으나 자세한 내용은 없다. 
 
따라서 도커, 쿠버네티스에 대해 모른다면 이 책을 보는데 어려움이 있을 것이다.
 
수 많은 용어들이 나온다. 경험 있는 사람들도 낯설어 할만한 용어들이 제법 많이 나온다.
 
또한 클라우드 관련 디자인 패턴에 대해서도 많은 내용이 나온다. 
 
이런 부분들은 별도 다른 책이나 레퍼런스를 보지 않으면 이해가 안갈 것이다.
 
예를 들어 아래 그림처럼 "상태 있는 애플리케이션" 패턴도 클라우드로 넘어오면서 고려할 대상인 것이지, 
 
전형적인 레거시 시스템에서는 당연한 것이다.
 
 
개발 언어에 대해서는 별 다른 언급도 없고 어떤 특정 언어에 관련된 내용도 나오지 않는다. 
 
대신에 마이크로 서비스, 아키텍쳐, 프로토콜, 배포 등... 범용적인 내용과 설계에 대한 내용을 주로 다룬다.
 
 
이 책을 완전히 이해한다고 해도 다루는 내용으로 인하여 "Hello World" 는 볼 수 없을 것이다.
 
이제 정리하면 이 책은 개발, 코딩,...  이런 내용과는 거리가 멀다.
 
개념서, 아키텍쳐, 설계 이런 내용이 주로 있는 책이므로 초보자나 경험이 별로 없는 사람들에게는
 
권하고 싶지 않다. 내 생각에는 클라우드에 어느 정도 경험 있는 사람이 정리하기 위해 보면 좋은 내용의 책이다.
 
분량도 250페이지 정도 밖에 안되어 부담 없이 볼 수 있다.

안녕하세요, 괴짜 개발자 namedboy 입니다.

제가 오늘 리뷰할 책은 Cloud Native 입니다.

이 책은 O'REILLY 에서 나온 책을 번역한 책입니다.

O'REILLY 책은 제가 믿고 보는 책 중 하나인데 꽤 많은 개발 서적을 내고 있기도 하고 내용도 괜찮기 때문입니다.
그래서 O'REILLY 책이 번역되어 나오면 한번쯤 내용을 훑어 봅니다.

이 책 역시 약간은 그런 믿음을 가지고 보기 시작했는데 역시나 책 구성부터 내용까지 좋았던 것 같네요.

번역 상태도 괜찮은 느낌입니다.

사실 Cloud Native라는 제목 때문에 이제는 대세이다 못해 필수가 되어 버린 Kubernetes를 바닥부터 구성하는 내용을 담고 있나 싶은 생각을 했었지만,

책을 펼쳐보고는 인프라를 공부하기에 참 좋은 책이란 생각을 지울 수 없었습니다.

보통 인프라를 공부할 수 있는 수단이 많지가 않은데 이 책이 훌륭한 길잡이 역할을 할 수 있겠다는 생각이 들었습니다.

클라우드를 구성할 때 필요한 지식과 함께 구성할 때 무엇이 꼭 필요하고 어떤 상황에서 어떻게 쓰는지,
그리고 조심해야 할 부분이 어떤 부분인지에 대해 세세하게 다루고 있어 클라우드를 통해 인프라를 구성하고자 하려는 분들에게는 많은 도움이 될 것 같다는 생각이 들었습니다.

저 역시도 현재 AWS를 사용해서 인프라를 구성하고 있는 만큼 많은 도움이 되었고 앞으로 내용을 더 읽어 보면서
현재 회사의 시스템에서 부족한 부분은 무엇인지 내가 놓치고 있는 것이 또 무엇인지 생각해 볼 수 있었습니다.

AWS 또는 GCP를 사용해서 클라우드를 구성하다 보면 막히는 부분이 도대체 지금 규모에서 어느정도로 인프라를 구성하고,
어디까지 대비를 해야 하는지 도움을 받을 수 있는 툴은 어떤 것들이 있는지 궁금할 때가 많습니다.

책의 저자도 그런 부분을 느꼈었는지 관련된 오픈소스 툴이나 서비스도 함께 소개하고 있어 인프라를 구성하는데 더 많은 도움을 받을 수 있었습니다.

클라우드로 인프라를 구성해야 하는데, 내가 클라우드는 정확히 모른다. 하시는 분들은 많은 도움이 되지 않을까 생각합니다.

Cloud Native책은 링크에서 확인하실 수 있습니다.

클라우드가 무엇인지 궁금한 결과

최근 새로운 프로젝트를 시작하기에 앞서 SDK 관련 웹 사이트들을 벤치마킹하였다.

거의 대부분의 서비스가 요금제 방식이었으며 클라우드로 서비스되는 것 같았다.

하여 클라우드로 서비스하는 것에 대한 궁금증이 있었는데 마침 한빛미디어에서 기회를 얻었다.

그러나 본 도서는 제목과 같이 클라우드 이야기도 포함하지만 클라우드 네이티브에 관한 이야기였다.

페이지 수만큼 정제된(요약된) 내용들과 겁 없이 뛰어든 결과

너무 원론적인 이야기는 처음 접하기에 거부감이 들 것 같아서 페이지수가 적은 본 도서로 골랐다.

그러나 너무 모르는 분야에 대해서 겁 없이 뛰어들었다는 생각이 들었다.

전체적으로 큰 그림도 잘 그려주고 설명도 충분하지만 생소한 용어가 너무 많았다.

기술들이 무슨 목적으로 생겼으며 어떠한 이해관계를 가지고 발전해 나아가는지 까지 넓은 범위를 설명해 주는 것은 큰 그림을 그리기는데 도움을 주었다.

그러나 들어본 적 있는 것들(분산 시스템, 컨테이너, 서버리스, 쿠버네티스, 데브옵스 등등)이었지만 말 그대로 들어만 보았고 어떤 역할을 한다고만 어렴풋이 알고 있었던 것들이라 정제된 설명을 글자로는 읽지만 머리로는 이해하기 힘들었다. 

그럼에도 불구하고 좋았던 점

  1. 큰 그림을 그려주는 설명 방식
  2. 적은 페이지로도 충분한 개념 설명(내 머리로는 조금 어려웠지만 설명은 매우 충실)
  3. 개념 설명을 뒷받침해주기 위한 많은 그림들(구성도)

그럼에도 불구하고 아쉬운 점

  1. 클라우드를 처음 접해보는 사람들한테는 아무리 충분한 설명이라도 진도 빼기가 어려움(나만 그럴지도)
  2. 강조 글, 그림 모두 흑백이라 컬러였다면 어땠을까
  3. 큰 그림, 개념 설명하다가 어떤 내용은 갑자기 너무 깊게 들어가는 듯한 느낌(이 역시 나만 그럴지도)

총평

클라우드에 대한 지식이 어느 정도 있고 환경을 접해본 사람이라면 훨씬 수월하게 이해할 것 같다.

처음 접하는 사람이라면 아무래도 용어 따라가기가 벅찰 것으로 보인다.

클라우드는 접해보았는데 내가 그래서 클라우드로 개발하려면 어떤 것들을 신경 쓰면서 해야 하는지를 알려주는 지침서가 될 수 있다고 본다.

그러므로 일단 클라우드는 접해봤고 클라우드 환경에 최적화된 개발을 하고 싶거나 해야 한다면 읽어보길 추천

cloudnative.jpg

 

 

 책을 구성할 때 모든 내용을 다 집어넣고 싶어하는 책이 있고 주제의 핵심적인 내용만 짚어주며 필요한 부분들은 독자들 이 직접 찾아 습득하는 방식의 책이 있습니다. 개인적으로는 후자의 책을 더 선호하는데 아무리 저자가 뛰어나다고 하더라도 책 한권에 모든 내용을 다 담는 것이 어려운 일일 뿐 아니라 만약 담았다고 하더라도 독자가 충분하게 이해할 만큼의 설명을 넣는 것은 쉽지 않습니다.

 

 이 책에서는 후자의 형태를 따르고 있습니다. 클라우드 네이티브로 개발하기 위한 개발 방법론과 가이드를 제시해 주지만 실제로 운영되는 서비스를 통해서 구현하는 방법은 다루지 않습니다. 전공서로 따지면 심화된 내용을 배우기 위한 개론에 가까운 내용들을 다룬다고 할 수 있습니다. 그러면서도 CDN, API버전관리, 데브옵스 등 웹 어플리케이션을 개발하면서 마주하는 다양한 이슈들까지 훑어주며 독자들에게 '어디서 들어본 것 같은' 느낌을 주어 직장 상사가 말할때 알아 듣는 척 하고 자리에서 찾아볼 수 있는 역량을 심어 줍니다.

(사실 이 책을 읽으며  IT개발 전반에 대한 내용을 설명한 책인 스타트업 인 액션과 비슷한 느낌을 받았는데, 시간 되시면 한번 보아도 좋을 것 같습니다.)

 

 저자가 생각한 대상독자는 모놀리식(monolithic) 레거지를 운영하다가 클라우드 베이스로 넘어가려고 하는 IT 종사자라고 생각합니다. IT전문 용어가 쏟아져 나오고 실제 서비스를 운영해 보지 않고서는 직관적으로 이해하기 힘든 내용들이 많기 때문에 독자의 입장에서도 대학생이나 클라우드에 관심을 가지고 있는 비전공자가 이 책을 읽는 것을 추천하기 어렵습니다. 하지만 클라우드 네이티브로 서비스를 운영하려는 스타트업의 CTO나 개발자, 그리고 Digital Transformation의 물결에 휩쓸려 클라우드로 시스템을 마이그레이션 하려는 IT 부서의 사람들이 읽어봄직한 내용이라고 생각됩니다. 

 

이 책의 또다른 장접은 도식화를 적시적소에 사용한 점입니다. 저자가 시스템 설계자, 컨설턴트 출신이어서 그런지 중간중간 개념을 설명하기 위한 도표들은 컨설팅 보고서에서, 혹은 실무진이 경영자를 이해시키기 위해 사용한 것 처럼 명확하고 간결합니다. 다만 6장의 모범 사례에서는 도식이 거의 사용되지 않고 상위 주제에 따른 단편적인 설명으로만 이루어져있어 이해하고 와닿는 느낌보다는 사전처럼 나중에 찾아봐야 할 것 같은 느낌을 받았습니다. 시나리오 형식으로 이루어 졌다면 독자들의 기억속에 조금 더 남지 않았을까 하는 아쉬움이 있습니다.

 

 최근에 팀을 이루어 서비스 개발을 하려고 기획하고 있는데, 이 책이 많은 도움이 되었습니다. 다만, 실무에 바로 적용하실 분들보다는 본인의 실력을 한단계 올릴 발판으로 삼으실 분들에게 이 책이 필요할 것이라고 생각됩니다.

 

본 리뷰는 한빛미디어의 도서 지원으로 작성되었습니다.

 

 

 

 벌써 2-3년 전 일이다. 회사에서 개발하던 제품을 클라우드 서비스를 해보자는 이야기가 나와서 잠깐 설계했던 적이 있다. 하지만 우선순위가 밀려서 설계 도중 프로젝트는 중단되고 다른 작업을 하게 되었다. 그 당시 팀에 클라우드 전문가(?)가 없기도 했고 운영조차 안 해봐서 설계에 많은 어려움이 있었다. 이 책에서는 클라우드 네이티브 애플리케이션을 설계하고 개발하는데 필요한 지식을 전달해준다. 회사에서 다시 클라우드 이야기가 나오면 도움이 되지 않을까 하는 생각에 책을 읽게 되었다.

 현재 담당하는 제품도 크기가 꽤 크다. 책에서 말하는 모놀리식, 레거시 시스템에 가까운 형태이다. 클라우드에 관한 지식이 별로 없었음에도, 설계 당시에 주로 고려했던 내용은 어떻게 서비스 중단 없이, 쉬운 확장성을 갖는 시스템을 만들 수 있을까?라는 것이었다. 그러다 보니 자연스럽게 관리 모듈, 사용자 정보, 테넌트 관리, 제품의 메인 프로세스 모듈, 웹 서비스, 로그 등등을 분리되었다. 그리고 각각의 서비스는 클라우드 서비스 공급업체에서 제공해주는 기능 중 가장 적절한 형태의 것에 배치하려고 했다. 

 클라우드 관련 프로젝트가 중단되었지만 대신 제품 버전 업그레이드를 맡게 되었다. 새로운 기능을 추가하면서 기존에 있던 불필요한 모듈도 제거하고 많은 부분 리팩토링을 진행했다. 클라우드도 아니고 그냥 서버에 설치되는 제품이지만, 한번 클라우드 관련 설계를 해 본 경험이 생겨서인지 구조적으로 개선하고 싶은 부분이 많이 생기기도 했다. 그리고 일부 클라우드 설계 내용을 적용하면 나중에 다시 클라우드 서비스를 개발할 때 좀 더 쉽게 이전이 가능하지 않을까 하는 기대도 있었다.

 처음 설계를 시작하게 되었을 때 가장 힘들었던 부분은, 경험이 없기 때문에 레거시 시스템을 어떻게 분리해서 옮겨야 하는지 전혀 몰랐다는 점이다. 어떻게 보면 다른 서비스 제공 업체에서 어떻게 이전을 설계하고 진행했는지가 궁금했다. 

 이 책에서는 전통적인 구조에서 클라우드 형태의 서비스를 단계별로 설명해준다. 또 서비스를 분리하는 방법과, 데이터의 분리 및 관리, 확장성을 고려하는 부분까지 다루고 있다. 가장 마음에 들었던 부분은 후반부에 모범 사례 챕터였다. 

 입문서로는 조금 어려운 게 아닌가라는 생각이 들기도 했다. 생소한 용어들이 너무 다양하게 나왔는데 그게 바로바로 예시로 소개가 되고 있어서 쉽게 이해되지 않는 부분도 많았다. 그리고 설계라는 게 무척 어려운 부분인데, 많은 내용을 소개해주려고 하다 보니 설명이 부족하다는 생각도 들었다. 하지만 용어에 좀 익숙해지고, 어느 정도 스케치를 해볼 수 있는 만큼 지식 전달은 해주는 것 같다. 항상 강조하는 부분이지만, 나중에 코드로 구현해야 할 시기가 왔을 때 '아 그런 게 있었던 것 같은데, 한번 더 찾아봐야지'라고 떠오르기만 해도 훌륭한 학습을 했다 생각한다.

1. 제목

클라우드 네이티브

2. 책 소개 링크 

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=242159789

 

 

클라우드 네이티브

최신 클라우드 네이티브 애플리케이션 아키텍처의 구성 요소를 설명한다. 컨테이너, 서버리스 컴퓨팅, 스토리지, 애플리케이션의 이식성 개념 설명부터 클라우드 네이티브 애플리케이션 개발��

www.aladin.co.kr

3. 출판사 책 소개

최신 클라우드 네이티브 애플리케이션 아키텍처의 구성 요소를 설명한다. 컨테이너, 서버리스 컴퓨팅, 스토리지, 애플리케이션의 이식성 개념 설명부터 클라우드 네이티브 애플리케이션 개발에 필요한 패턴, 메시징, 이벤팅, 데브옵스 같은 모범 사례까지 살펴본다. 클라우드 네이티브 환경에서 애플리케이션을 어떻게 설계, 개발, 운영해야 할지 고민이라면 이 책으로 시작해보자.

4. 후기

 클라우드 네이티브 애플리케이션이란 단일 처리에 특화된 최소한의 서비스 단위로 개발을 하고, 이를 커테이너 환경에서 실행하는 개발 방식입니다. 기존에 서버를 하나하나씩 늘려서 성능을 조절하던 온프레미스 방식과 클라우드 네이티브 환경의 구조는 다르기 때문에, 다른 점을 고려해서 개발을 해야합니다. 아래와 같은 사항들을 고려해야 합니다.

  • 사용하는 어플리케이션에 맞는 데이터 구조와 저장 위치
  • 배포를 위한 CI/CD 환경의 구성
  • 모니터링 방법

 책에서는 이러한 사항에 대하여 하나하나 설명해 주고 있는데, 가장 먼저 먼저 클라우드 환경에 대하여 기본적으로 알아야 할 지식들에 대하여 설명하고 있습니다.

  • 컨테이너 : 프로세스 별로 운영체제를 독립적으로 사용. 커널을 공유하여 VM보다 속도가 빠름. 컨테이너를 관리할 때에는 쿠버네티스 사용
  • 서버리스 컴퓨팅 : 클라우드 공급자가 infra를 컨트롤하기 때문에, 어플리케이션에 자동을 할당하거나 해제하는 작업을 신경쓰지 않아도 되는 환경
  • 함수 : AWS Lambda, Azure Functions 와 같은 Faas 개념
  • VM & 클라우드 네이티브 : VM에서 실행되다가 생산성을 높이기 위하여 함수로 실행하게 된 진화 과정
  • 마이크로 서비스 : 애플리케이션들이 기능 단위로 연결된 서비스로 나뉜 서비스 지향 아키텍쳐

 위와 같은 내용을 언급한 후에는 '효율적인 서비스를 구축하기 위한 아키텍처 구조', '데이터를 효율적으로 저장하는 방법', '데브옵스'와 같은 내용들을 설명합니다. 책 전체를 살펴보면 전반적으로 어떠한 것들이 필요한지 A to Z와 같은 방식으로 설명을 해주고 있습니다. 초보자 입장에서는 모르는 개념이 뭔지를 모르는 경우가 많기 때문에, 초보자가 클라우드 서비스 앱 개발의 전체적인 개념을 잡는데 이용하기 좋은 책인 것 같습니다. 클라우드 환경에서 전반적으로 실제 개발을 하는 데 있어서 필요한 점들을 잘 정리하여 적었다는 느낌이 듭니다. 

 

 또, 책의 가독성은 좋은 편입니다. 설명도 간단하고 설명에 대한 다이어그램이나 부가 그림도 잘 들어가있는 편입니다. 내용이 어렵게 실리지 않고 깔끔하게 정리되어 있어서 책도 잘 읽힙니다.

 

 다만, 이 책을 이용하여 개발을 직접 따라하면서 하는 내용은 언급되어 있지 않기 때문에, 초보자 입장에서는 다른 책과 함께 보면서 직접 해보는 것이 개념파악에 훨씬 도움이 될 것 같습니다. 책 하나만으로는 실제 사례가 많은 책이 아니기 때문에, 이해가 다소 어려울 것 같습니다. 다른 책과 꼭 함께 보면서 개발을 직접 해야 될 것 같습니다. 

클라우드 시대, 클라우드는 이제 보편적인 서비스, 기술이라는 것이다.

그럼에도 가끔은 어디서 부터 시작해야 하는지 의문점이 들 때가 많다.

애초에 클라우드 서비스로 부터 시작한 사람들은 그런 질문자체가 없을 것이다.

하지만 기존에 레가시를 사용하는 사람들에게 전환이라는 과제는 만만치가 않기 때문이다.

 

그래서 마이크로 서비스 아키텍처, 컨테이너, 도커, 쿠버네티스 등의 키워드에 함몰되기가 싶다.

그러니 파편되지가 쉽다는 것이다. 그래서 항상 무언가 부족함을 느끼게 되는 것이었다.

그러면에서 시작점으로 선택할 수 있는 책이 나온 것은 고무적이라고 생각한다.

 

클라우드 네이티브, 애플리케이션을 설계, 개발, 운영하는 핵심 가이드 

 

h4.jpg

 

1.옮긴이의 말에서 

이 책은 클라우드 네이티브로 전환하고자 하는 독자에게 유용하다고 하였다.

그러면서 클라우드 네이티브로 전환한다는 것은 단순히 애플리케이션을 컨테이너나 함수로 변경하는 것이 아니라고 한다.

애플리케이션이 다루는 데이터는 어디로 어떤 구조로 저장해야 하는지

마이크로서비스에서 비동기 통신은 어떻게 동작하는지

배포를 위한 CI/CD환경은 어떻게 구성해야 하는지

운영 중인 앱의 모니터링을 어떻게 하는지

멀티 클라우드 공급자를 사용할 때는 무엇을 주의해야 하는지 

등 전반적인 내용을 이 책에서 접할 수 있다고 한다.

 

h1.jpg

 

2. 이 책에 대하여 저자는

클라우드 네이티브 애플리케이션을 회사가 시장에서 고객 요구에 빠르게 반응할 수 있도록 구성되어 있고, 짧은 기간 안에 서비스를 업데이트 및 수정해서 배포할 수 있고, 최신 기술을 사용하고, 클라우드가 제공하는 경제적인 장점을 누리고 있다는 것이다. 

그리고 클라우드 네이티브 애플리케이션(클레애)의 심장은 컨텐이너, 함수, 데이터라고 합니다. 독자가 분산 컴퓨팅의 기본 개념을 이해하고, 그 개념들이 클라우드 클네애와 어떤 관련이 있는지 이해하는 것에서 시작한다고 한다. 그리고 그다음 컨테이너와 함수를 자세히 살펴보고, 추가로 서비스 커뮤니케이션 패턴, 회복성, 데이터 패턴과 언제 사용하는지에 대한 방향도 제시한다고 합니다.

그리고 이 책은 측정한 요구 사항을 만족하는 클네애 개발에 필요한 단게적인 구현 방법을 제공하지 않으나, 성공적인 클네애의 설계, 개발, 운영하는데 도움이 되는 지식을 얻을 수 있다고 합니다. 바로 기본개념을 이해한다는 것입니다. 

 

h2.jpg

 

책을 들고 야외로 나옵니다. 어딘가 벤치에서

h3.jpg

 

한빛출판사 모바일 사이트에서 책에 대한 내용을 더 확인해 봅니다.

h5.jpg

 

한빛 미디어의 미디어 서비스를 엄청 조아라 합니다.

책느낌도 있고, 주요정보 뿐만 아니라 맛보기 미리보기 서비스로 구매여부를 최종 판단하게 됩니다.

 

https://preview2.hanbit.co.kr/books/aimd/#p=1

 

h7.jpg

 

표지

h6.jpg

 

h8.jpg

 

옮긴이의 말

h9.jpg

이 책에 대하여

h10.jpg

 

목차

h11.jpg

 

가로모드에서 상세히

 

h13.jpg

 

기본 지식 컨테이너

h14.jpg

 

h15.jpg

 

뒷면

h16.jpg

 

책에 관하여

 

마이크로서비스 아키텍처 개념

h17.jpg

 

크러스터와 오케스트레이터

h18.jpg

 

데브옵스

h19.jpg

 

시작이 반입니다.

그리고 어느정도 윤곽이 나오면 더 빠르게 접근할 수 있는 것입니다.

물론 방법은 여러가지 그중의 한가지라고 생각합니다. 일단 시작하는 것이 답입니다.

 

총평

클라우드가 보편화된 시대에 클라우드에 적합한 어플리케이션/아키텍쳐를 이용하기 위한 거의 모든 사항을 담아놓은 듯한 책이다. 모든 사항을 자세하게 설명하는 건 불가능하기 때문에 때로는 소개에 그치는 경우도 있지만, 중요한 사항을 잘 설명하고 있다. 클라우드 네이티브에 필요한 핵심 요소로 마이크로서비스, CI/CD, DevOps, 컨테이너를 들 수 있고 이 책에서 여러 페이지에 걸쳐 설명하고 있는데, 사실 클라우드 네이티브 어플리케이션이 아니더라도 이미 여러가지 문제를 해결하기 위해 사용하던 중요한 기술들이다. 각각의 기술을 더 깊게 살펴봐야 할 때는 당연히 전문 서적을 더 봐야겠지만, 혹시 모르는 기술이 있거나, 전체적인 조망이 필요하다면 이 책은 정말 큰 도움이 된다.

Ch1. 클라우드 네이티브 소개

기본 개념 및 가정 소개. 분산 시스템에서 하지 말아야 할 가정(e.g. 네트워크가 안정적이고 지연이 없다)과 NoSQL을 통해 널리 알려진 CAP 이론, 12요소 앱 https://12factor.net, SLA 등을 설명한다. 다른 건 다 알고 있었지만 12요소 앱은 처음 들었는데, 하나 하나 따로 보면 무심코 지나치더라도 생각해보면 중요한 항목들을 모아서 잘 정리했음을 알 수 있었다. 평소에 생각하던 logging의 중요성을 별도의 항목으로 한게 특히 마음에 들었다.

Ch2. 기본지식

도커와 쿠버네티스로 대표되는 컨테이너 기술로 시작한다. 특성상 컨테이너가 기본적으로 필요한 사항이기도 하지만 의도적으로 기본지식의 첫 번째로 배치하지 않았을까 생각이 들었다. 도커와 쿠버네티스의 기본적인 용어나 기초적인 이해를 위한 설명을 한다.

서버리스 컴퓨팅과 함수 항목은 하나로 묶어서 이야기해도 될 거 같다. 서버리스 컴퓨팅에 대한 설명은 한 페이지도 되지 않아서 조금 부족한 느낌이 있지만, 함수 부분에서 FaaS (Function as a Service)를 이야기하며 그 부족함을 약간이나마 채워준다.

마지막으로는 마이크로서비스의 장단점을 논한다. 이미 흐름은 MSA가 최선인 듯한 분위기로 넘어갔으나, 사실 하나의 서비스 파악은 용이해도 전체 서비스 파악은 오히려 어려워질 수도 있다는 점(네트워크로 호출하면서 오히려 전체 시스템의 흐름이 복잡해질 수 있음, 로깅/디버깅/테스트/모니터링의 어려움 등), 을 감안하면 적절한 수준에서 서비스를 나눠야 하는데, 분야를 막론하고 “적절함"은 항상 정해진 기준이 없고 상황에 따라 가변적이라는 점에서 쉽게 결정할 수 없는 문제이다.

Ch3. 클라우드 네이티브 어플리케이션 설계

기초에 해당하는 키워드는 다음과 같다. 자동화 모니터링 문서화 점진적인 변화 장애대비 보안 신뢰성 가용성 확장성 비용. 경험상 자동화와 모니터링은 비교적 잘 하기 쉬운 부분이고, 문서화와 점진적인 변화는 대부분의 기업에서 제대로 되지 않을 가능성이 높고, 나머지 항목은 비용에 영향을 받는 경우가 많다.

그 다음으로 클라우드 네이티브 어플리케이션과 전통적인 아키텍쳐의 차이점을 보여주는 데 가장 큰 차이점은 상태가 어플리케이션 외부에 존재한다는 점이며, 이로 인해 마치 함수형 프로그래밍과 같이 확장이 용이하지만 데이터의 흐름은 이해하기 어려운 문제가 생긴다.

API 문서화는 개인적으로 가장 중요한 부분 중 하나라고 생각하는데, swagger를 이용해 API 문서화를 자동화하는게 보편화되었지만, 여전히 이런 자동 생성된 API 문서는 실제 사용할 때 종종 어떻게 동작하는지 이해하기 어려운 경우가 있어서 이것만으로 만족하면 안된다고 생각한다.

이후로는 서비스 커뮤니케이션 — 프로토콜, 멱등성, pub/sub, 동기/비동기, 게이트웨이, 서비스 메시 등 시스템 디자인에 필요한 여러가지 항목이 나오고 마지막으로 아키텍쳐 예제를 통해 몇 가지 간단한 아키텍쳐 다이어그램과 기본적인 사항을 알려준다.

Ch4. 데이터 다루기

데이터 스토리지 시스템의 종류에 대해 설명하는 걸로 시작한다. 저장 유형에 따른 분류(오브젝트, 파일, 분산파일시스템 등)와 키밸류, 문서, 관계형, 그래프, 컬럼, 시계열 뿐만 아니라, 스트림/큐, 블록체인까지 같이 이야기한다. 이렇게 다양한 데이터 시스템을 선택하는 기준을 기능/비기능 요구 사항에 따라 20가지 넘게 제시하는데, 개인적으로는 언제나 시작은 99% 관계형 DB로 하고 서비스 성숙도 및 사용자 증가에 따라 필요시 다른 형태로 바꾸는 게 맞다고 본다.

클라우드를 설명하는 책이기 때문에 데이터도 분산 저장하게 되는데, 이 때 가장 어려운 문제는 일관성과 무결성을 제공하는 일이다. 로그나 트랜잭션을 수행해 이런 문제를 해결할 수 있다. 데이터를 수집하면 이걸 분석해야 서비스 향상을 위한 자료로 사용할 수 있는데 이를 위해 ETL 및 데이터 레이크도 사용할 수 있다. 어플리케이션 확장을 위해 데이터 복제를 해야 하므로 데이터 샤딩으로 부하를 분산하기도 하고, 응답속도 향상을 위해 캐싱이나 CDN을 이용할 수도 있다.

Ch5. 데브옵스

인프라의 발전이나, 클라우드 사용이 증가하면서 많은 부분이 자동화되었지만 여전히 설정이나 운영 측면에서 사람의 손이 많이 간다. 그래서 기술 서적이지만 사람, 협업, 공유의 중요성을 강조하면서 이번 장을 시작한다.

두번째는 테스팅인데, 아마 여기 나오는 모든 테스팅 종류를 실천은 고사하고 모두 아는 사람도 드물지 않을까 하는 생각이 들었다. 유닛, 서비스, UI, 젭슨, 성능, 부하, 보안, 침투, A/B, 인수, 이용성, 설정, 스모크, 통합, 카오스, 퍼지, 카나리 테스트.

이외에도 개발 도구와 환경, CI/CD, 모니터링, 설정 관리 등 서비스 운영에 필요한 거의 모든 부분을 설명한다.

Ch6. 모범사례

기존 모놀리스 아키텍쳐를 이전할 때 고려할 점, 장애와 보안에 대해 생각할 점, 데이터 관리와 성능 및 확장성을 위해 필요한 점, 서버리스 아키텍쳐에서 알아둘 점, 운영, 로깅, 모니터링, 알림, 서비스 커뮤니케이션(서비스나 클라이언트, DB와의 통신 등), 컨테이너까지 각 항목 별로 점검하고 참고할만한 사항을 알려준다. 이 장은 일종의 팁 모음과도 같단 생각이 들었다.

Ch7. 이식성

본문의 설명처럼 고객의 요구에 따라 특정 클라우드 서비스를 이용하는 경우뿐만 아니라 자사의 인프라가 변경되는 경우에도 어플리케이션을 다시 배포할 필요가 발생한다. 그러므로 이식성은 아키텍쳐만큼이나 중요한 요구 사항이다. 특정 벤더에 종속되는 상황을 피하기 위해서는 당연히 유연하게 이식이 가능해야 하는데, 이런 기능 구현을 위해서는 시간과 비용 및 복잡도가 증가하기 때문에 다른 아키텍쳐 요구 사항을 고려할 때처럼 트레이드 오프를 고려해야 한다.

어플리케이션 이식성과 마찬가지로, 아니, 더 중요한 정도로 데이터 이식성도 고려해야 하는데, 데이터가 클수록 이전도 어렵기 때문에 아마존의 경우 이미 몇 년 전에 스노우볼이라는 물리 디스크를 통한 데이터 이전을 지원하는 서비스를 발표하기도 했다.

이식성에서 가장 중요한 건 표준화된 인터페이스를 사용하는 부분인데, 이런 표준화된 인터페이스가 존재하면 훨씬 용이하게 이식을 할 수 있겠지만 실제로는 모든 상황을 만족하는 경우는 존재하지 않기때문에, 특정 벤더에 종속된 부분은 직접 구현해야만 한다. 이런 이식성 관련 도구들 중 인프라 관리를 추상화하기 위해 하시코프의 테라폼을 이용할 수 있는데, 대부분은 동일하지만 결국 특정 벤더에 관련된 부분이 없을 수는 없다. 스토리지 추상화를 위해 MinIO를 이용해 AWS, Azure, Google Cloud 및 로컬 파일시스템을 이용할 수 있다(고 한다. 이건 처음 들어봄).

여기서 다시 쿠버네티스가 나오는데, 클라우드 공급자 인프라를 추상화하기 위해 사용이 가능하다. 쿠버네티스가 사실상의 표준이 되면서 거의 모든 클라우드에서 관리형 쿠버네티스 서비스를 제공하기 때문에 가장 효율적이면서 동시에 거의 유일한 인프라 추상화 방법이다.

 

[한줄평]

클라우드 네이티브 아키텍처 애플리케이션 개발을 하고 싶은 아키텍처와 개발자들에게 추천합니다.


[목차구성]

CHAPTER 1 클라우드 네이티브 소개

CHAPTER 2 기본 지식

CHAPTER 3 클라우드 네이티브 애플리케이션 설계

CHAPTER 4 데이터 다루기

CHAPTER 5 데브옵스

CHAPTER 6 모범 사례

CHAPTER 7 이식성


[이 책의 특징]

●클라우드 네이티브 애플리케이션 설계에 필요한 기술을 살펴본다.

●컨테이너와 함수를 분리하고 언제 사용하는지 배운다.

●데이터 관련 요구 사항이 있는 애플리케이션을 설계한다.

●애플리케이션 개발, 테스팅, 운영에 필요한 기본 개념과 데브옵스 방법을 배운다.

●클라우드 네이티브 애플리케이션을 개발하고 관리하는 팁, 기술, 모범 사례 등을 학습한다.

●이식성 있는 애플리케이션의 장단점과 구축 비용을 알아본다.

 

[이 책의 대상 독자]

●개발, 테스트, 운영 입문자

●서비스 단위에서 개발하고 싶은 개발자

●컨테이너 환경에서 실행하는 애플리케이션 개발을 하고 싶은 운영자

 

 

[서평]

몇년전만 해도 클라우드 플랫폼은 먼 미래의 일이라 생각 했습니다. 요즘 기술이 정말 빠르게 발전하고 있습니다. 정부기관 에서도 클라우드플랫폼으로 변화하고 있습니다. 그리고 많은 스타트업 기업과 대기업에서도 클라우드 플랫폼으로 이동하고 있습니다. 클라우드 네이티브는 선택이 아닌 필수가 되었습니다. 클라우드 플랫폼을 사용하면 무중단, 무한한 확장, 짧은 피드백주기, 비용 관리등 많은 효과를 얻을수 있습니다. 하지만 단순하게 기존 프레임에서 클라우드로 변경하면 가능 한것이 아닙니다. 설계부터 구축 개발, 운영까지 모든 것이 다 클라우드 환경에 맞게 변경되어야 합니다.


이책에서는 클라우드 네이티브 애플리케이션의 설계 모델과 함께 구축을 지원하는 패턴, 사례 및 도구를 제시하고 있으며 앱, 데이터, 서비스, 라우팅 등을 다루는 실사례와 개발, 테스팅, 운영에 필요한 기본개념과 데브옵스 방법을 배웁니다. 이 책을 끝마칠 즘 클라우드의 기본 특성을 이해할 수 있습니다.


클라우드 네이티브 애플리케이션으로 전환 또는 개발 환경을 구축하는데 이책이 도움이 될것이라 생각되어 추천 합니다.

클라우드 네이티브 애플리케이션에 대해 지식이 없었지만 이 책을 통해 얻은 몇 가지를 정리하고자 한다.

아래 요약한 몇 가지 내용들만 읽어봐도 이 책이 꽤 클라우드 네이티브에 대해 잘 기술했다는 것을 알 수 있다.

 

클라우드 네이티브한 방법으로 개발한 서비스를 클라우드 네이티브 애플리케이션이라고 한다.

클라우드 네이티브 애플리케이션의 심장은 컨테이너(Container), 함수(Function), 데이터(Data)가 있다.

 

CAP의 이론은 분산시스템에서 자주 언급되는 이론이다. CAP이론은 모든 네트워크 공유 데이터 시스템의 다음 세 가지 중 두 가지만 만족한다는 내용이다.

1. 일관성 (Consistency)

2. 데이터의 고가용성 (Availability)

3. 네트워크 파티션 (Partition)

 

현실에서는 항상 네트워크 파티션이 발생한다. 그러므로 CAP 이론에 따르면 일관성과 고가용성만 최적화할 수 있다. 카산드라 같은 NoSQL 데이터베이스들은 가용성을 최적화한다. 그러나 SQL 기반 시스템들은 ACID(Atomicity, Consistency, Isolation, Durability) 원리를 지키기 위해 일관성을 최적화한다.

 

3장 에서는 아키텍처 예제를 소개하고 있다. Hot, Warm, Cold경로를 통해 스트리밍 데이터를 나눠서 처리하는 것을 람다 아키텍처(Lambda Architecture)라고 한다. 97p이다.


여느 서비스들은 잡을 실행하기 위해 쿠버네티스의 가상 큐블릿을 통해 CaaS 컴퓨트 모델을 사용한다. p99이다.

 

 

페이스북의 프레스토 같은 분산 쿼리 엔진은 수 분 수 초 내에 쿼리 결과를 반환할 수 있다. 대략적으로 보면, 클라이언트는 쿼리를 분산 쿼리 엔진에 제출한다. 코디네이터가 쿼리를 해석해서 워커 풀에 작업을 할당하는 역활을 한다. 137p이다.

 

 

이외에 스토리지 볼륨으로 퍼시스턴트 볼륨, 퍼시스턴스 볼륨 클레임, 스토리지 클래스에 대해 다루고 있으며 해당 개념에 대해 그림으로 잘 나타내 두었다. 139p이다.

 

 

데브옵스에 대해 자세한 설명을 하고 있으며 기존 코드와 새로 개발한 코드를 출시하기 위해 빌드, 테스트 통합을 자동으로 하는 방법인 CI와 코드가 실서비스에 배포될 준비가 됐는지 확인하기 위해 추가 테스트를 하는 CD에 대해 설명하고 있다. 다음은 CI/CD의 절차의 일부인 여러 단계를 그림으로 보여주고있다. 168p이다.

 

 

이후엔 클라우드 네이티브의 모범사례와 이식성에 대해 설명하며 책을 마무리 하고 있다.

모범사례 중 마이크로서비스와 함수로 바꾸긱 위해 모놀리스 애플리케이션을 분해할 때, 게이트웨이와 스트랭글러 패턴 사용할 수 있다는 내용을 다루고 있는데, 스트랭글러 패턴의 아이디어는 백엔드 모놀리스를 새로운 아키텍처로 서비스, 함수, 또는 둘다를 천천히 옮기는 동안 파사드로 게이트웨이를 사용한다. 아래의 그림과 같이 모놀리스를 분해하고 서비스나 함수로 일부 기능들을 구현하는 과정 동안 새 기능으로 요청을 리다이렉트하도록 게이트웨이를 업데이트하는 것이다. 206p이다.

 


이번에 책을 읽으며 클라우드 네이티브에 관해 많은 내용을 살펴볼 수 있었다. 이미 클라우드라는 단어는 우리들의 일상생활의 곳곳에 침투해 활동하고 있다. 기술은 빠르게 변화하고 있으며 이전과 비슷한 내용인 듯 하지만 또 다른 사고와 개념을 형성하여 진화하고 있다고 생각한다.

 

클라우드 네이티브란 개념을 한 눈에 정리하고자 한다면 이 책이 그 길잡이가 되어 줄 수 있다고 생각한다.

이미 MS, 아마존, 구글을 비롯한 많은 기업들이 클라우드 네이티브 애플리케이션 산업을 주도하고자 진화 중이다.

 

유저에게 서비스를 제공하는 개발자들이라면 한번 쯤 이 책을 통해 클라우드 네이티브란 개념을 정리하는 시간을 가지면 좋을 것이라 생각한다.



결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
클라우드 네이티브
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
클라우드 네이티브
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
클라우드 네이티브
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실