[도커를 활용한 마이크로서비스 배포] 마이크로서비스의 크기 조정과 서비스 경계 식별

날아올라돼지야·2024년 8월 26일
0

마이크로서비스를 성공적으로 구축하려면 각 서비스의 크기를 적절하게 조정하고 서비스 경계를 명확히 식별하는 것이 중요합니다. 너무 큰 서비스는 마이크로서비스의 장점을 살릴 수 없고, 너무 작은 서비스는 운영상의 오버헤드를 증가시킬 수 있습니다.

도메인 기반 크기 조정 (Domain-Driven Sizing)

도메인 기반 크기 조정은 비즈니스 도메인과 밀접하게 연관된 마이크로서비스를 정의하는 방법입니다. 예를 들어, 은행 애플리케이션에서는 계좌, 대출, 카드와 같은 도메인별로 마이크로서비스를 구축할 수 있습니다.

  • 장점: 비즈니스 논리와 밀접하게 연결되어 이해하기 쉬움.
  • 단점: 시간과 노력이 많이 소요되며, 비즈니스 전문가와의 협력이 필수적임.
    이 방법을 사용하려면 도메인 전문가, 비즈니스 리더, 기술 리더와 협력하여 각 도메인의 역할과 기능을 이해하고 마이크로서비스의 크기를 조정해야 합니다. 이 과정은 시간이 많이 걸리며 반복적으로 크기를 조정할 필요가 있을 수 있습니다.

이벤트 스토밍 기반 크기 조정 (Event-Storming Sizing)

이벤트 스토밍은 다양한 이해관계자가 참여하여 이벤트, 명령, 반응을 식별하고 이를 기반으로 마이크로서비스를 정의하는 방법입니다.

장점: 신속하고 직관적이며, 다양한 이해관계자의 참여를 통해 광범위한 의견을 수렴할 수 있음.
단점: 도메인 전문가가 반드시 필요하지 않으나, 이벤트와 반응을 정확히 이해해야 함.
이벤트 스토밍은 다음과 같은 과정을 거칩니다:

  • 이해관계자 참여: 제품 소유자, 개발자, 테스터, 비즈니스 리더 등 다양한 이해관계자가 참여합니다.
  • 이벤트 식별: 이해관계자들이 생각할 수 있는 모든 이벤트를 포스트잇에 작성합니다.
  • 명령 및 반응 식별: 각 이벤트에 대한 명령과 반응을 식별합니다. 예를 들어, 결제 완료 이벤트의 경우, 결제 버튼 클릭이 명령이고, 계좌에서 금액이 차감되는 것이 반응입니다.
  • 도메인별 분류: 식별된 이벤트, 명령, 반응을 도메인별로 분류하여 마이크로서비스의 경계를 정의합니다.

이 과정은 신속하고 직관적이며, 다양한 이해관계자의 의견을 반영하여 효율적으로 마이크로서비스를 정의할 수 있습니다.

마이크로서비스 크기 조정의 지속적 개선

마이크로서비스의 초기 크기는 최적이 아닐 수 있으며, 운영하면서 크기를 조정하는 과정이 필요할 수 있습니다. 운영 중 발생하는 문제를 해결하기 위해 마이크로서비스를 분리하거나 결합하여 최적의 크기를 찾아가는 과정이 필요합니다.

마이크로서비스의 적절한 크기를 조정하고 서비스 경계를 식별하는 것은 마이크로서비스 아키텍처의 성공을 위해 필수적입니다. 도메인 기반 크기 조정과 이벤트 스토밍 기법은 이를 달성하기 위한 두 가지 주요 방법입니다. 각 방법은 장단점이 있으며, 상황에 따라 적절한 방법을 선택하여 적용해야 합니다.

뱅킹 애플리케이션에서의 마이크로서비스 크기 조정

저축 계좌, 거래 계좌, 카드, 대출을 각각 별도의 마이크로서비스로 나누었습니다. 이 접근 방식은 적절한 크기 조정으로, 각 팀이 독립적으로 기능을 개선하고 유지보수할 수 있는 유연성을 제공합니다.

모놀리식을 마이크로서비스 아키텍처로 전환하면 이루는 장점

모놀리식 아키텍처 문제점:

애플리케이션이 복잡해져 한 사람이 전체 애플리케이션을 이해하기 어려워집니다.
작은 변경 사항에도 전체 애플리케이션을 재배포해야 하며, 하나의 불안정한 구성 요소가 전체 시스템을 무너뜨릴 수 있습니다.
새로운 기술이나 프레임워크로 전환하기 어렵고, 애자일 방식의 독립적인 팀 구성이 불가능합니다.

마이크로서비스 아키텍처 전환:

모놀리식 애플리케이션을 독립적인 마이크로서비스로 분리하여 각 서비스가 독립적으로 개발, 배포, 유지보수될 수 있도록 했습니다.
API 게이트웨이를 통해 클라이언트 애플리케이션이 모든 마이크로서비스와 통신할 수 있도록 설정했습니다.
각 마이크로서비스는 자신의 데이터베이스와 기술 스택을 가질 수 있으며, 이벤트 스트리밍을 통해 비동기 작업을 처리합니다.

profile
무슨 생각하며 사니

0개의 댓글