장점을 극대화하고 잠재적인 단점을 회피할 수 있는 마이크로서비스의 경계에 대해 생각해보는 장이다. 그러기 위해서는 작업할 대상이 먼저 필요하다.

뮤직코퍼레이션 

     좋은 사례를 통해 마이크로서비스의 개념이 어떻게 현실 세계에서 작용하는지 살펴보자. 뮤직코퍼레이션은 가능한 한 쉽게 변하는      것에 기회가 있다고 판단했다. 그 성공의 열쇠가 마이크로 서비스다.  

무엇이 좋은 서비스를 만든가?

느슨한 결합 : 마이크로서비스의 요점은 시스템의 그 어떤 부분도 추가 변경할 필요 없이 특정 서비스를 변경하고 배포할 수 있다는 것. 강한 결합을 일으키는 요인은 서비스를 서로 강하게 엮는 통합 방식을 택하는 것이다. 

강한 응집력 : 특정 행위를 변경하고자 할 땐느 한 곳에서 변경하고 가능한 한 신속하게 릴리즈할 수 있어야 한다. 서로 연관된 행위가 한 곳에 모이고, 다른 경계와는 가능한 한 느슨하게 소통할 수 있도록 우리 문제 영역내에서 경계를 찾고자 한다.

경계가 있는 콘텍스트

실제세상의 도메인을 모델링하는 시스템 구축 방법. 모든 도메인은 다수의 경계가 있는 콘텍스트로 구성되며, 각 콘텍스트 내에는 외부와 통신할 필요가 없는 것뿐만 아니라 경계가 있는 다른 콘텍스트 외부와 공유되는 것이 함께 존재한다. 경계가 있는 모든 콘텍스트에는 명백한 인터페이스가 존재하며, 그것은 어떤 모델이 다른 콘텍스트와 공유될지 결정한다.  또다른 정의는 명료한 경계에 의해 강제된 구체적인 책임이다. 도메인은 운영 중인 전체 사업에 해당한다. 잘 와닿지 않음.. 

감춰진 공유 모델 : 두 경계가 있는 콘텍스트 간에 공유될 필요가 있는 모델이 있으며, 필요한 부분만 노출한다. 모든 것을 노출할 필요는 없다. 

모듈과 서비스 : 경계가 있는 콘텍스트여야 구성 요소의 경계 구분에 적합하다. 도메인에서 경계가 있는 콘텍스트들을 발견했다면 공유되고 감춰진 모델을 이용하여 그것들을 여러분 코드 내에서 몯듈로 모델링 하라. 

성급한 분해 : 소트워크스의 성급한 분해 사례. 서비스의 사용 사례들이 제각각 아주 미묘하게 달라지면서 서비스 경계에 대한 초기 견해가 옳지 않아 많은 비용을 치뤄야 했다. 여러모로 기존 보드베이스를 마이크로 서비스로 분해하는 것이 처음부터 마이크로서비스로 가는 것보다 훨씬 쉽다고 한다.

비지니스 능력

경계가 있는 콘텍스트에 관해 고민할 때는 공유 데이터 관점이 아닌 나머지 도메인을 제공하는 콘텍스트의 능력 관점에서 봐야 한다. 이 콘텍스트는 무엇을 하는가와 그 일을 하기 위해 어떤 데이터가 필요한가? 를 뭔저 물어보라. 이들 능력이 서비스로 모델링될 떄 그것은 네트워크를 통해 다른 협업자(서비스)에 노출될 주요 행위가 된다.

거북이 밑에 거북이

마이크로서비스의 경계를 고려할 때는 우선 더 넓고 큰 단위의 콘텍스트 관점에서 생각한 뒤 접합부의 분리를 통한 해택을 발견했을 때 내포된 콘텍스트에 따라 세분화 하라. 완전 분리 방식과 내포 방식(조직구조기반 한 팀에 의해 관리할 경우)

비지니스 콘셉트 관점에서의 커뮤니케이션

비지니스 컨셉트의 관점 / 도메인 / 경계가 있는 콘텍스트 / 마이스코서비스의 경계 / 인터페이스

기술적 경계

서비스가 부정확하게 모델링되었을 때 사례. 

모놀리식 시스템 / 수직적인 비지니스에 초첨을 맞춰 스택을 나눈다 / 동작중인 API를 수평으로 나눈다 (기술 접합부에 따라 서비스 경계를 모델링) 

+ Recent posts