donghyuk***
2017-04-24

마이크로서비스 관련 도서 리뷰
<Building Microservices - 마이크로서비스 아키텍처 구축>
책의 구성된 각 부분은 마이크로서비스 구축을 위해 필요한 세부적인 내용들로 구성되어 있습니다.
1장 - 마이크로서비스
아직 마이크로서비스가 구체적으로 어떤 것인지 모르는 저와 같은 사람들을 위해 마이크로서비스에 대한 개괄적인 내용들과 더불어 마이크로서비스가 만능은 아니라는 점에 대한 따끔한 이야기까지 다루어주고 있습니다.
즉 마이크로서비스가 규모가 큰 서비스를 잘게 나누어 유지관리를 기민하게 할수 있는 것이기도 하지만 어떤 경우에는 나누지 않느니만 못한 아키텍처가 될수도 있음을 이야기 하는 부분도 있습니다.
2장 - 진화적 아키텍트
마이크로서비스의 아키텍처를 정하는데 있어서 원칙과 필수로 필요한 기준들과 필수 요건들을 이야기 하는 부분입니다.
3장 - 서비스 모델링하기
마이크로서비스 아케텍처를 만들기 위한 원칙들과 필수적인 선결 요소들을 구성하였다면 실제적인 모델링이 들어가야 하는 법이기에
마이크로서비스를 모델링하는데 필요한 부분인 좋은 서비스를 만드는 데 필요한 것들을 이야기 하고 있습니다.
4장 - 통합
마이크로서비스라는 것이 대규모의 서비스를 작게 나누어 구성하는 것이기에 필요한 부분이 바로 통합이 아닐까 합니다.
이 부분에서는 그런 여러개의 서비스를 어떻게 통합할 것인지 고객과의 인터페이싱, 동기와 비동기 방법,
오케스트레이션과 코레오그래피와 같은 방법들을 통해 통합을 이루는 방법들을 구체적으로 살펴보는 부분입니다.
5장 - 모놀리스 분해하기
마이크로서비스와 반대되는 개념으로 모놀리식 서비스라는 말이 있는데 이 말은 한덩어리로 구성된 서비스라는 의미입니다.
기존에 이렇게 한덩어리의 서비스로 구성된 아키텍처를 마이크로서비스 아키텍처로 분해하는 방법을 설명하며
일어날 문제에 대한 해결책도 사례를 들어 설명해 주는 부분입니다.
6장 - 배포
어떤 서비스이든 수정해야 될 경우가 생기고 그에 따라 기존 서비스를 수정해서 다시 시스템에 배포하는 일이 빈번하게 일어나는 경우도 있기에
쉽게 간과하기 어려운 부분인 배포에 대해서 설명하여 주는 부분이고 여기에는 가상화에 관련된 이야기와
요즘 화두로 오르고 있는 컨테이너에 대한 내용들과 아울러 자동화에 대한 내용도 들어 있습니다.
7장 - 테스팅
배포를 한다면 따라오는 내용인 테스팅에 대한 내용입니다.
자동화 테스팅을 이야기하며 테스트의 종류와 배포를 릴리스와 분리하는 내용들을 담고 있습니다.
8장 - 모니터링
실 운영환경에 올라간 서비스를 모니터링 하는 것에 대한 내용입니다.
여러가지 운영환경에 따른 모니터링 방법에 대한 내용을 논하면서 모니터링에 필요한 내용들을 담고 있습니다.
9장 - 보안
인증과 권한부여에 대한 내용을 비롯해 서비스와 서비스 사이의 인증과 권한부여, 그외에 인증과 권한부여에 필요한 내용들을 예제를 들어 담고 있습니다.
10장 - 콘웨이의 법칙과 시스템 설계
마이크로서비스 아키텍처로의 변화는 곧 조직 문화의 변화를 수반하고 있는 작업임을 이 부분에서 이야기 해주고 있습니다.
11장 - 대규모 마이크로서비스
어느 경우에는 마이크로서비스로 나눈다 할지라도 그 규모가 생각만큼 작지 않고 큰 경우도 있음을 이야기 하고 있는 부분입니다.
그런 대규모의 마이크로서비스의 경우에 어떻게 구축할 수 있는지를 여러가지 시스템의 예를 들어서 설명하고 있습니다.
12장 - 종합 정리
다시한번 책의 전체 내용들을 정리하면서 마이크로서비스의 원칙을 짚고 넘어가면서 언제 마이크로서비스를 사용하지 않아야 하는가를 정리하는 부분입니다.
총평 - 전체적으로 요즘 화두가 되고 있는 마이크로서비스의 구축에 대한 실제적인 사례를 들어가면서 설명하여 주는 책입니다.
물론 이 책 하나로 당장 마이크로서비스를 구축할 수 있다고 보기에는 무리가 있겠지만
마이크로서비스를 모르는 분이라면 입문용으로는 적합한 책이 아닐까 생각합니다.
책의 두께도 적당하고 내용도 어느 정도는 마이크로서비스를 알기 원하는 갈급한 사람에게는 단비와 같지 않을까 싶습니다.
아직 마이크로서비스에 대하여 알지 못하는 분이 계시다면 이 책을 읽어보시기를 추천드립니다.