본문 바로가기

좋아하는 것_매직IT/10.microservice

6.마이크로서비스, 독립시스템(SCS, self-contained system) 은 무엇일까?

반응형

 독립시스템(SCS, self-contained system) 이란?

  • 매크로 아키텍처의 컴포넌트를 명세하는 마이크로서비스의 타입 중 하나.
  • SCS는 완전한 매크로 아키텍처를 의미하지는 않음.
  • 일부 도메인 로직의 구현에 필요한 모든 정보를 정확히 제공하는 여러 마이크로서비스를 제공, 따라서 독립시스템을 제공하는 것.
  • 로직, 데이터, UI를 포함함.
  • 변경을 더 쉽게 수행가능, 상용환경에 배포할 수 있음.
  •  SCS의 정의 
    • 참조 페이지 : http://scs-architecture.org 
      •  해당 웹사이트 내용은 아래 github 에서 소스코드로 제공되며, 누구나 변경 할 수 있음(웹사이트 콘텐츠, 크리에이티브 커먼즈 라이선스(Creative Commons License))
      • 참조 : https://github.com/innoq/SCS
  • but, SCS는 모범사례가 많더라도, 모든 상황에서 가장 적합한 아키텍처는 아님.

    

 SCS 간 통신 규칙

  •  UI 레벨에서의 통합은 이상적. 
    • 결합도는 매우 느슨함.
    • 다른 SCS는 필요에따라 UI를 표시할 수 있음.
    • UI가 변경되더라도 다른 SCS는 영향이 없음.
  • 비동기 통신
  • 동기 통신과의 통합도 가능.
    • 단, 통합 SCS의 잠재적인 실패와 느린 응답을 처리하기 위한 예방조처가 필요. 모든 동기 서비스의 응답을 기다려야 한다면 응답시간은 더 길어짐.

 SCS 개념의 중요한 기능

 

  • 각 SCS에는 고유한 웹 UI
  • SCS은 데이터와 로직을 포함함
  • 통합은 우선순위가 정해짐.
    • UI 통합은 가장 높은 우선순위
    • 다음, 비동기
    • 마지막, 동기 통합
  • 각 SCS에는 이상적으로 공통 인프라를 피하기 위한 자체 대이터베이스를 갖음.

 

SCS 와 마이크로서비스

  • SCS는 배포 모놀리스와 비교할 때 마이크로 서비스 처럼 두드러진 특징을 갖음.
  • 배포 모놀리스는 전체 애플리케이션을 배포 가능한 단일 산출물로 구현함.
  • SCS는 시스템을 여러 독립 웹 애플리케이션으로 분리함.
  • SCS는 별도의 웹 애플리케이션이므로 다른 SCS와 독립적으로 배포 할 수 있음.
  • 따라서 SCS는 독립적으로 배포 가능한 모듈이며, 결과적으로 마이크로서비스의 정의에 맞음.
  • but, SCS는 여러 마이크로서비스로 분리될 수 있음.

    

SCS 와 마이크로서비스의 다른점

  • 일반적으로 마이크로서비스는 SCS보다 작음.
  • SCS는 낮은 결합도에 중점을 둠. 반면에 마이크로서비스는 낮은 결합도를 추구한다는 규칙은 없지만, 매우 높은 결합도의 마이크로서비스는 많은 단점이 있기때문에 피해야 함.
  •  SCS에는 UI가 있어야 함. 반면에 마이크로서비스는 다른 마이크로서비스에 대한 인터페이스만 제공하지만 사용자 인터페이스는 제공하지 않음.
  • SCS는 UI 통합 또는 비동기 통신을 권장.
    • but, 동기통신은 허용되지만, 권장하지는 않음. 

결론

  •  SCS는 수많은 프로젝트에서 유용성이 입증된 마이크로서비스 구현을 위한 접근 방법.       
728x90
300x250