마이크로 서비스(MSA)로 구축할 때 모듈은 어떤 단위로 할까?

답이 없는 문제지만, 시작할 때 도움이 되는 cheatsheet 정도를 제공할 목적으로 글을 쓴다.

참조 모델

결론은 아래 그림이다.

thoughtworks 글 참조하기

thoughtworks 글 참조하기

물론, 모든 상황에 맞는 답은 없다. 우리 환경에 맞추면 REST 형태로 API를 제공하는 웹 서비스를 모듈이라는 단위로 부른다. 위 그림에서 Foundational capability와 같다. 하지만, 모듈이 하나로 배포되는지 사실은 유사한 API 묶음이 여러 개로 배포되는지는 구분하지 않는다.

응용 방법

독자들께 작은 도움이나마 드리면 좋겠지만, 누가 독자인지 모르니 여기선 그냥 우리 사례를 조금 더 풀어보자. 남의 글 하나 떨렁 옮겨놓고 글을 발행하지는 않기 위해 간단한 그림 하나를 급조했다. 모듈이라고 부르는 것외에 다른 것은 어떻게 할 것인가? 이들을 통칭하는 말을 빌딩 블록이라고 한다면, 빌딩 블록 중에 모듈이 아닌 것들을 뽑아서 대략 정리해본다. 이제 이를 동료 개발자들과 공유하고, 어떤 일이 일어나는지 지켜보고 개선한다. 🙂

빌딩블록 개요 초안

빌딩블록 개요 초안

 

3종 세트

3종 세트. 홈쇼핑에서 자주 들어서인지 편안한 느낌을 주는 말이다. 이미 김형준님이 Micro Service, Docker로 할 수 밖에 없었던 사연을 통해 MSA 아키텍처 수립 방법을 설명했다. 뒤이어 마이크로 서비스 구축 경험 공유에서 개발팀 혹은 조직 관점에서 사고법이나 전개 사례를 공유했다. 부족하긴 하지만, 이 글은 다룰 대상인 프로그램을 다루는 시작 글이다. 이들 3종 세트가 여러분에게 조금이나마 실마리를 제공하면 좋겠다. (과연~)

 

이미지 출처

https://www.thoughtworks.com/insights/blog/well-factored-approach-securing-roi-your-service-investment-part-2