한빛출판네트워크의 도서 서평단인 "나는 리뷰어다 2022"에 선정되어 제공받은 여섯번째 책은 ‘클라우드 네이티브 애플리케이션 디자인 패턴(Design Patterns for Cloud Native Applications)'이라는 책.
IT 도서 명가인 O’Reilly에서 출간한 책의 번역본으로 막상 받아보니 생각보다 얇은 책이라 놀랐다.
1. 클라우드 네이티브(Cloud Native)란?
Linux Foundation의 산하기관인 CNCF(Cloud Native Computing Foundation)는 클라우드 네이티브에 대해 이렇게 정의하고 있다.
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 exmplify 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.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.
요약하면 클라우드 네이티브(Cloud Native)의 특징은 아래와 같다.
- 클라우드와 같은적인 환경에서 확장 가능한 애플리케이션을 개발 및 운영
- 관련 기술로는 컨테이너(Container), 서비스 메시(Service Mesh), 불변(immutable) 인프라, 선언형(Declarative) API 등을 사용
- 회복성, 관리 편의성, 가시성, 느슨하게 결합된(loosely coupled) 시스템
- 자동화 기능과 결합해 최소한의 노력으로 자주, 예측가능하게 변경 작업을 수행할 수 있음.
클라우드 네이티브 애플리케이션 디자인 패턴에 의하면, 클라우드 네이티브 애플리케이션은 독립적으로 만들어진 서비스들을 느슨하게 결합하는 것으로 설계되며, 각 서비스는 각 주어진 비즈니스 요구를 잘 충족해야한다. 그리고 이 요건들을 충족하는 것이 바로 마이크로 서비스 아키텍처(Microservice Architecture)라고 말하고 있다.
2. 클라우드 네이티브 애플리케이션 디자인 패턴 리뷰
그렇기 때문에 이 책은 클라우드 네이티브 애플리케이션 디자인 패턴에 관한 책이자 마이크로서비스 아키텍처 디자인 패턴에 관한 책이라고 할 수 있다.
이 책은 총 8개의 챕터로 구성되어있다.
맨 첫 챕터에서는 클라우드 네이티브 애플리케이션이란 무엇인가에 대해 다룬뒤, 챕터 2~7까지는 클라우드 네이티브 애플리케이션의 각 디자인패턴에 대해 알아본다. 그리고 마지막 챕터에서는 클라우드 네이티브 패턴의 적용사례를 들어 설명하고 있다.
다만 제목에서 눈치 챘을 수 있겠지만, 이 책은 어디까지나 애플리케이션 디자인 패턴에 대한 설명을 위한 책이라 코드 레벨에서의 예시는 없다(일단 책에서 다루는 범위가 매우 광대한 데에 반해 전체 400페이지도 안되는 분량이라 이미 예상하실 수 있을 듯).
따라서 특정 디자인 패턴의 특정 기술을 구현하는 방법을 알고싶은 개발자에게 적합하기 보다는, 클라우드 네이티브(Cloud Native)한 애플리케이션의 아키텍처를 구현해야하는 역할이 부여된 아키텍트들이나 시니어 개발자를 대상으로 쓰여진 책인듯 하다.
챕터 2~7를 살펴보면, 클라우드 네이티브 애플리케이션에서 적용할 수 있는 디자인 패턴과 해당 디자인 패턴에서 사용되는 기술들이 나열되어있는데, 각 기술의 개념 설명과 동작원리 뿐만 아니라 장단점, 그리고 적합한 사용예까지 기재되어있어 구현하려는 애플리케이션의 특성을 고려해 어떤 디자인 패턴을, 그리고 어떤 기술을 적용할지에 대한 가이드라인을 제시해준다.
뿐만아니라 특정 디자인 패턴에 대해 자세히 알고싶은 경우에 찾아볼만한 책도 같이 소개하고있어, 개인적으로는 아키텍트 / 시니어 개발자 외에도 내가 레거시 환경이 아닌 클라우드 네이티브 환경에서 개발을 하고있는데(혹은 하고싶은데), 어떤 디자인 패턴을 깊게 파 보아야 할지 알고싶은 주니어 개발자에게도 추천할 만한 책이었다.
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Review' 카테고리의 다른 글
[나는 리뷰어다 2022]'코드로 인프라 관리하기(2판)’ 리뷰 (0) | 2022.11.05 |
---|---|
[나는 리뷰어다 2022]'쉽게 배우는 AWS AI 서비스’ 리뷰 (0) | 2022.11.04 |
[나는 리뷰어다 2022]’혼자 공부하는 파이썬’ 리뷰 (0) | 2022.07.02 |
[나는 리뷰어다 2022]’MLOps 도입 가이드’ 리뷰 (0) | 2022.07.02 |
[나는 리뷰어다 2022]'찐 UXer가 알려주는 UX/UI 실무 가이드’ 리뷰 (0) | 2022.04.24 |