개발자와 아키텍트, 데브옵스, 관리자를 위한 마이크로서비스 완벽 가이드!

1부에서 마이크로서비스라는 용어를 정의하고, 마이크로서비스 아키텍처는 마이크로(micro) 아키텍처와 매크로(macro) 아키텍처라는 두개의 레벨로 구성돼 있음을 설명한다. 레거시 시스템을 마이크로서비스로 마이그레이션하는 방법을 설명한다. 2부에서는 마이크로서비스를 구축할 수 있는 스택을 설명한다. 마이크로서비스를 구현할 때 사용할 수 있는 기술, 도커, 프론트 엔드의 통합, ESI, 비동기 및 통신, 아파치 카프카, Atom, 넷플릭스 스택, 컨설(Consul)과 아파치 httpd 서버, 쿠버네티스, PaaS를 클라우드 파운드리를 설명한다. 3부에서는 마이크로서비스를 지탱할 수 있는 운영을 설명한다. 많은 마이크로서비스를 안전하게 운영할 수 있는 운영의 기본 원칙과 마이크로서비스 운영이 어려운 이유를 설명한다. 모니터링 및 프로메테우스(Prometheus), 로그 데이터 분석을 위한 일래스틱 스택, 마이크로서비스 간의 호출을 추적하는 집킨(Zipkin)을 사용한다. 서비스 메시 기술인 이스티오(Istio)를 설명한다. 마지막에 마이크로서비스의 전망을 살펴본다. 예시는 스프링 부트와 스프링 클라우드, 도커를 기반으로 설명한다.



역자 : 김용환

알티캐스트, 네이버, 라인, SK Planet을 거쳐 현재 카카오에서 개발자로 일하고 있다. 이제 마흔네 살의 평범한 개발자로 다양한 도전에서 에너지를 얻으며, 개발과 실무 경험을 블로그(http://knight76.tistory.com)에 기록하고 있다. 

정보통신산업진흥원(NIPA) 산하의 소프트웨어공학포털에 개발 관련 내용을 공유했고, 여러 콘퍼런스와 세미나에서 그동안 쌓은 개발 지식을 발표하고 있다. 스스로에게는 물론 누군가에게 도움이 될 수 있다는 생각으로 번역을 시작했는데, 어느덧 15번째 책이다.


작가의 말

마이크로서비스(Microservice)는 최근 가장 중요한 소프트웨어 아키텍처 트렌드 중 하나다. 이미 지금까지 나온 마이크로서비스를 설명한 책이나 문서가 많이 있음에도 나는 마이크로서비스와 관련된 책을 출간했다. 왜 마이크로서비스에 관한 책이 필요할까? 

특정 아키텍처를 정의하는 것, 해당 아키텍처를 구현하는 것은 각기 다른 일이다. 이 책은 마이크로서비스 구현을 위한 기술을 제시하고 관련된 장점과 단점을 강조한다. 

이 책은 전체 마이크로서비스 시스템 기술에 대해 특별히 집중한다. 각 마이크로서비스는 서로 다른 기술을 사용해 구현될 수 있다. 그래서 개별 마이크로서비스에서 프레임워크를 선택하는 기술적인 결정은 전체 시스템 레벨의 결정만큼 중요하지 않다. 개별 마이크로서비스의 경우 프레임워크에 대한 결정을 쉽게 수정할 수 있다. 그러나 전체 시스템에 적용한 기술은 변경하기가 어렵다. 

이 책은 다른 마이크로서비스 책과 비교했을 때 주로 기술에 대해 이야기하며, 마이크로서비스에 대한 아키텍처와 왜 마이크로서비스가 사용되는지를 간단히 설명한다. 

각 레시피에는 구체적인 기술을 기반으로 하는 실행 가능한 예시가 있다. 예시는 개별적으로 실행할 수 있다. 예시는 다른 예시에 종속적이지 않아서, 업무와 관련 없는 예시는 건너 뛰고 각자에게 유용한 레시피를 볼 수 있도록 구성했다. 

이런 방법을 사용해서 관련 기술에 대한 개요를 얻을 수 있는 쉬운 접근 방법을 독자에게 제공하고 각자에게 적합한 기술 스택을 선택할 수 있게 했다. 책에서 제공하는 링크를 통해 관련 기술에 대한 깊이 있는 지식을 얻을 수 있다.




드뎌 번역하지 1년 만에 책이 나왔다.

2018년에 1판 번역을 진행/완료했는데, 올해 갑자기 2판이 나와 새로 업데이트 하니라 고생했다.

그래도 저자가 의도하는 바를 여러 날을 고민하기도 했고 상당히 놀랄 정도로 인사이트(Insight)가 있었다. 그 부분을 잘 보여주기 위해 많이 의역했다. 아마도 내가 번역한 책 중에 가장 많이 의역을 진행한 것 같다.(독일분이니 충분히 이해할 수 있다)

수 많은 개발 프로젝트가 산으로 가는 것은 코드, 정책, 문화가 균형있게 가기보다는 누군가의 탁월한 능력으로 한쪽으로 쏠리기 때문이다. 

이 책을 볼 때 코드, 정책, 문화 이렇게 3가지 관점으로 보면 좋을 것 같다. 고민하고 고생한 만큼 많은 도움이 되면 좋겠다.









Posted by '김용환'
,