본문 바로가기
반응형

서비스 분리3

[MSA] 서비스 분리 해야할 때와 통합 해야할 때(서비스 분해와 통합 요인) MSA에서 서비스 분리를 고려할 때 어떤 경우에 서비스를 분리해야하고 반대로 어떤 경우에 서비스를 통합해야하는지 서비스의 분해인과 통합인에 대해서 알아본다. 간단하게 모률화, 세분도라는 용어부터 알아보자모듈화: 사용상의 유연성과 다양성을 위해 표준화된 단위로 만듬, 시스템을 별도의 파트로 분해하는 것세분도: 더 큰 단위를 형성하는 많은 입자 중 하나로 구성하거나, 그렇게 보임. 모듈화로 나눠진 개별 파트의 사이즈에 관한 것MSA에서 이 세분도를 어디까지 어떻게 가져가야 하는지에 대한 고민을 많이하게 된다. 서비스를 너무 작게 나누면 관리의 복잡도, 통신 복잡도, 결국 아키텍처의 복잡도가 증가하게 되고, 너무 큰 단위로 나누게 되면 서비스간의 결합도, 영향도 등이 증가하게 된다. 아래의 서비스 분해인과 통.. 2024. 8. 31.
[MSA] 모놀리식 어플리케이션 분해 전략(서비스 분리) 모놀리식 어플리케이션을 분해하는 전략을 알아본다. 아래 내용들은 도서 '소프트웨어 아키텍처 The Hard Parts'를 참조했다.  아래 그림은 모놀리식 분해 전략을 위한 의사 결정 트리이다. 먼저 어플리케이션이 모듈화할 명분이 있는가?를 식별한다. 다시 말해 유지보수성, 테스트성, 배포성, 민첩성, 유연성 등을 필요로 하는 모놀리식 어플리케이션인지를 판단한다. 모놀리식 어플케이션 분해(모듈화)의 필요성에 대한 자세한 내용은 아래 링크를 참조한다.https://happy-jjang-a.tistory.com/323 다음으로 분해가 가능한 코드인지를 평가한다. 코드 내부 구조가 적절한지 판별하는 절대적인 기준은 없으나, 코드의 특성을 거시적으로 살펴보는 방법들을 활용하면 내부 구조(특히, 컴포넌트/패키지 .. 2024. 8. 17.
[MSA] 서비스의 데이터 오너십(소유) 종류와 처리 방법 마이크로서비스에서 일반적으로 테이블에 데이터 쓰는(Write) 서비스가 해당 데이터에 대한 오너십을 가지게 된다. 명확하게 도메인 단위로 데이터 분리가 가능하다면 오너십이 명확해지지만, 여러 서비스가 공동 오너십을 가지는 경우 복잡해지게 된다. 데이터에 대한 오너십의 종류와 처리 및 해결 방법에 대해 알아본다. 아래 내용들은 도서 '소프트웨어 아키텍처 The Hard Parts'를 참조했다.  데이터 오너십(Ownership) 종류1. 단독 오너십- 오직 한 서비만 테이블에 테이터를 쓰는 것- 가장 단순하고 명확하고 직관적이라 관리가 쉽다 2. 공통 오너십- 대부분(많은)의 서비스들이 동일한 테이블에 데이터 쓰기를 하는 경우 - 예를들어, 많은 서비스에서 공통으로 적용되는 Audit 감사 테이블 등이 .. 2024. 8. 10.
반응형