[Microservices] - 1

마이크로 서비스 개요

Intro


MSA 시나리오

성공적인 마이크로서비스 아키텍쳐를 조직 내에서 구성하기란 어려운 법이다. 크기를 적절히 조정하고 경계를 정하지 않으면 좋은 서비스를 구축하기에도 어렵다. 모놀리식에서 마이크로서비스, 애초부터 마이크로서비스를 도입하려는 조직이 존재할 것이다.

여기서 크기란 마이크로서비스가 감당할 수 없을 정도로 커서는 안되며 비즈니스 로직이 또한 너무 적어서는 안된다. 운영 오버헤드가 발생할 수도 있기에 올바른 크기 조정이 필요하다.

크기를 설정하는 방법에 대해 업계에서는 크게 2가지 사례로 접근한다.

도메인 기반 크기 설정

Accounts, Cards, Loans 등 여러 도메인 별로 비즈니스 로직이 존재할 것이다. 이러한 도메인을 쪼개어 마이크로서비스를 구축할 수 있다. 다만 이 부분에서 해당 도메인에 대한 지식 혹은 작업을 수행하는 사업 담당자, 기술 담당자, 설계자와 논의해야 한다.

도메인 전문가와 대화가 마이크로서비스 구획에 Key가 될 것이다.

단점으로는 시간이 많이 걸리고 좋은 능력을 갖춘 전문가가 필요하다는 점이다.

도메인 이벤트 기반 크기 설정

도메인 사이 사이 마다 발생되는 이벤트 기점으로 크기를 설정하는 방법이다. 우선 사용자의 행위로부터 일어나는 모든 기능들을 나열하는 것이 첫 단계이며

예시로 기능중 상품 결제시 카드 생성 후 결제를 시도하는 이벤트를 기점으로 카드 도메인과 결제 도메인을 분할하는 것이다.

이 접근 방식은 오랫동안 비즈니스를 잘 아는 전문가가 필요하지 않는 점이 장점이다.

Stranger Fig pattern

무화과 나무를 보면 새로운 줄기가 나무위에서 부터 자라나 땅까지 이어져 새로운 줄기를 형성한다. 그리고 죽은 줄기들은 서서히 떨어진다. 레거시 시스템 또한 이와 유사하게 차츰 차츰 변경한뒤 필요없어지는 부분은 제거하는 방식이 좋다.

이는 모놀리식 아키텍쳐에서 마이크로서비스로 차츰 전환 하는 과정이다.