도서 리뷰 : 클라우드 네이티브 애플리케이션 디자인 패턴

nofence 2022. 7. 24. 23:47

현대의 모든 시스템은 두 가지로 분류할 수 있다. 클라우드 환경에 기반을 두고 있는 워크로드와 그렇지 않은 것으로 말이다. 그만큼 대부분의 워크로드는 클라우드 위에 자리잡고 있고, 일부는 온프레미스에 존재하지만 머잖아 모든 워크로드가 클라우드 환경으로 마이그레이션 될 상황은 시간의 문제일 뿐, 그 여정은 언제든지 시작될 수 있다. 

 

그런데 클라우드 환경에 애플리케이션이 구성되어 있다고 해서 그게 과연 클라우드 다운 모습을 갖추고 있다고 말할 수 있을까? 그렇다면 클라우드 다운 워크로드 또는 애플리케이션은 무엇이란 말인가? 클라우드에 기반한 애플리케이션을 클라우드 답게 만들기 위해선 무엇이 필요하단 말인가? 이 질문에 대한 답을 제공하는 책을 오늘 소개하고자 한다. '클라우드 네이티브 애플리케이션 디자인 패턴'이 바로 그 주인공이다. 

온프레미스에 기거하고 있던 애플리케이션을 클라우드로 이전하여 서비스를 실행하거나 혹은 애초에 클라우드 환경 위에 애플리케이션이 구동되는 환경을 마련하는 일은 이제 더이상 생경한 풍경이 아니게 되었다. 모든 워크로드는 클라우드로의 여정을 준비하고 있거나, 그 시기를 저울질 하고 있을 뿐, 더이상 클라우드를 빼 놓고 IT 서비스를 논의하는 게 무의미해지는 시대에 노정돼 있다. 

그런데 애플리케이션을 클라우드위에 구축했다고 해서 과연 클라우드가 제공하는 이점을 충분히 활용할 수 있을까? 단순히 애플리케이션이 클라우드 환경에 존재하는 것 자체가 은탄환이 될 수 있을까? 이에 대한 물음에 조응하여 탄생한 개념이 바로 '클라우드 네이티브'이다. 보다 자세히 말하면 클라우드 네이티브한 애플리케이션을 개발하기 위한 다양한 방법론이 클라우드 네이티브의 본질이라고 할 수 있겠다. 그렇다면 도대체 클라우드 네이티브한 애플리케이션이란 또 무엇인가?

 

이 책은 클라우드 네이티브 애플리케이션이 무엇인지에 대한 개념을 풀어 놓은 것으로 서막을 열고 있다. 클라우드 네이티브 애플리케이션 방법론과 그에 따른 디자인 패턴 그리고 참조 모델을 통해서 진정한 클라우드 네이티브 애플리케이션의 핵심 가치를 정립할 수 있게 된다. 

 

이윽고 MSA 환경에서 주로 사용되는 통신 패턴에 대해 상세한 설명을 이어 간다. 동기 메시징 패턴, 비동기 메시지 패턴, 서비스 정의 패턴 등의 개념과 장단점을 접하게 되며 어느 상황에 어떤 패턴을 사용할 수 있을지에 대한 명징한 솔루션을 얻게 된다. 

 

이어서 연결성 및 조합 패턴, 데이터 관리 패턴, 이벤트 주도 아키텍처 패턴, 스트림 프로세싱 패턴, API 관리 및 사용 패턴 등의 다양한 패턴과 활용 사례, 특징, 핵심 가치 등에 대해 학습하게 되면서 클라우드 네이티브 환경에서 애플리케이션을 전개할 수 있는 패턴의 정수를 접하게 된다. 그리고 마지막으로 클라우드 네이티브 패턴을 적용할 수 있는 여러 상황과 사례들을 다시 한번 들추어 내어 클라우드 내이티브의 애플리케이션 디자인 패턴이 제공하는 이점을 여실히 깨닫게 된다. 

 

클라우드 네이티브 환경과 짝을 이루는 컴포넌트들은 다양하게 존재한다. MSA, 컨테이너, CI/CD, 데브옵스 등등. 클라우드 네이티브 애플리케이션 디자인 패턴이 온전히 현실 세계에 적용되기 위해선 각각의 컴포넌트들이 뒷받침 되어야 하며, 그 컴포넌트들과 유기적인 합일을 이룰 때 비로소 클라우드 네이티브 환경이 갖춰질 수 있음은 두말 하면 잔소리다.

 

번역서임에도 불구하고 매끄러운 번역을 통해 책을 읽는 내내 텍스를 재해석하는 일이 없어서 무척 좋았고, 다양한 그림을 통해 클라우드 네이티브 애클리케이션 디자인 패턴의 개념을 큰 어려움 없이 소화할 수 있어서 학습 효과가 배가되었다. 클라우드 환경에 애플리케이션을 이전하거나 새로 구성해야하는 모든 이해관계자들은 이 책을 통해 진정한 클라우드 네이티브 애플리케이션의 개발의 정수를 꼭 맛보길 강권한다. 

 

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