티스토리 뷰

마이크로서비스와 관련해서 여러 가지 책과 블로그 글을 봤지만 이렇게 담백하게 팩트로 때리는 책은 처음입니다. 실제 마이크로서비스를 도입하며 겪게 되는 문제(현상)와 그걸 해결하기 위한 방법을 제시합니다. 또한 마이크로서비스가 정답이 아니라는 이야기도 덤덤하게 적혀있어요. 혹시 유행 따라 마이크로서비스 도입을 검토하고 계신가요? 이 책을 추천드립니다. - 마이크로서비스 도입 이렇게 한다

표지부터 강렬하다

 

마이크로서비스와 관련된 개인적인 생각들이 책에 잘 정리되어 있어서 인용해봅니다.

시스템을 설계하는 모든 조직은... 불가피하게 조직의 커뮤니케이션 구조를 본떠 시스템 구조를 만들어 낼 것이다. - 멜빈 콘웨이

 

조직의 구조가 때로는 시스템(서비스)에 영향을 주게 됩니다. 특히 빠르게 발전하는 서비스의 경우 특히 더욱 그렇죠. 서비스 아키텍처는 유행, 혹은 필요에 따라 변화/진화하고 있는데 조직 구조는 그대로 머물러 있지는 않은지, 현재 구조가 최선인지는 시스템을 발전시키는 것만큼 중요한 과제일 겁니다.

"안타깝게도 사람들은 모놀리스를 피해야 할 뭔가로, 본질적으로 문제가 되는 것으로 바라보게 되었다. 모놀리스라는 용어를 레거시와 동의어로 취급하는 사람들을 여럿 만났다. 그게 바로 문제다. 모놀리스 아키텍처는 선택이며 그 자체로 유효하다. 모든 상황에서 모놀리스가 올바른 선택이 아닐 수도 있고, 혹은 마이크로서비스를 뛰어넘을지도 모르지만, 그럼에도 모놀리스 또한 선택사항이다. 소프트웨어 배포를 위한 실현 가능한 선택지로서 모놀리스를 고의적으로 폄하하는 함정에 빠지면, 우리 스스로나 우리 소프트웨어 사용자가 올바르게 작업을 수행하지 못할 위험에 직면하게 된다."

혹시 모놀리스 == 레거시로 취급하지는 않으셨나요? 요즘이야 레거시라는 용어에 대한 인식도 많이 바뀌었지요. 레거시는 과거의 유산으로, 그때 당시 최선의 결과물이었을 테니까요. 모놀리스는 훌륭합니다. 책에서도 설명하고 있지만 서비스 MVP를 빠르게 만들어서 검토하는 과정에서 MSA는 분명 사치입니다. 일을 훨씬 더 복잡하게 만들 겁니다. 또한 서비스가 궤도에 올라갔다고 해도 모놀리스 때문에 발생하는 문제는 사실 상당히 적습니다. 특히 데이터베이스 부하 문제가 자주 언급되는데 그건 시스템을 그렇게 설계&개발한 게 문제지 모놀리스 잘못이 아니거든요. 또한 모놀리스도 단일 프로세스 모놀리스, 모듈식 모놀리스(modular monolith), 분산 모놀리스(distributed monolith)로 나눠지는데 잘 설계됐다면 MSA가 필요한 상황은 오지 않을 겁니다. 하지만 대부분은 모놀리스 = 모듈식 모놀리스로 인식됩니다.

모듈식 모놀리스

한편, 분산 모놀리스는 데이터베이스가 N개로 늘어납니다. 모듈 별로 데이터베이스를 사용하는 개념이에요. 많은 회사들이 분산 모놀리스를 MSA라고 착각하는 모습을 지켜본 적이 있습니다. 아무튼, MSA를 시작하기에 앞서 바로 쿠버네티스 책부터 펼쳐보시는 분들 계시죠. 이 책에서는 MSA != 쿠버네티스라는 점도 강조를 합니다. 

"나는 쿠버네티스에 경도된 사람들이 쿠버네티스를 마이크로서비스 도입 과정의 전제조건으로 여기는 광경을 많이 봐왔다. 하지만 오히려 그 반대다. 쿠버네티스 같은 플랫폼은 여러 프로세스를 관리하는 능력은 탁월하지만, 우리는 쿠버네티스를 사용하기 앞서 현재 사용 중인 방식과 기술이 운영에 부담을 주기 시작할 만큼 프로세스가 복잡해질 때까지 기다릴 필요가 있다. 여러분은 마이크로서비스 5개면 충분하며, 기존 솔루션으로 이를 행복하게 처리할 수 있음을 느끼게 될 것이다. 물론 이 경우는 훌륭하다! 여러분을 제외한 모든 사람이 쿠버네티스로 뭔가를 하며 이를 마이크로서비스라고 부른다고 해서, 무작정 쿠버네티스 기반 플랫폼을 채택하지는 말자!"

책에서 알려주는 다양한 문제 해결 방법과 용어들은 엔지니어에게 무척 흥미롭습니다. 모든 주제에 공감할 수 있었어요. 특히 경험이나 개념만 있던 패턴(혹은 배포 방법론)도 책을 통해 어느 정도 표준화된 용어로 익힐 수 있었던 점이 특히 좋았습니다. 한 가지 예를 들면 "교살자 무화과 애플리케이션(strangler fig application)"이 있는데요, 사실 돌아서면 용어 자체는 잊겠지만 이런 방법론이 널리 쓰이고 있다는 사실은 잊히지 않겠죠!

책의 부록에는 역자(박재호 님)의 경험에서 나오는 MSA에 대한 이야기가 담겨있습니다. 부록은 책의 압축본 같은 느낌인데요, 역사를 빨리 감기 한 듯한 느낌을 받으며 재밌게 읽었습니다. 아마도 이 책은 마이크로서비스를 도입하려는 많은 기업에 필수 서적이 되지 않을까 하는 생각이 드네요. 마이크로서비스 도입을 검토 중이신가요? 이 책을 추천드립니다.

댓글
댓글쓰기 폼