본문 바로가기

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

4.마이크로서비스, 실제적인 서비스란 무엇인가?

반응형

마이크로서비스에서의 서비스

  • 마이크로 서비스는 서비스 종단점을 API의 형태로 외부에 노출하고 실질적인 세부사항은 모두 추상화함.
  • 즉, 내부의 구현로직, 아키텍처와 프로그래밍 언어, 데이터베이스 품질 유지 체계등등 기술적인 사항들은 서비스 API 에 가려짐.

 마이크로서비스 아키텍처의 개발 조직

  • 애플리케이션 개발보다는 서비스 개발에 더 중점을 둠.

 서비스의 특징

  • 서비스 계약
    • SOA와 비슷하게 마이크로서비스도 분명하게 정의된 서비스 계약에 의해 작성됨.
    • 서비스 케뮤니케이션 방식
      • JSON / REST
        • JSON/ REST 관련 서비스 계약 정의 기법
          • JSON 스키마, WADL, Swagger, RAML 등등.
  • 느슨한 결합
    • 독립적이고 서로 느슨하게 연결되어 있음.
    • 마이크로서비스는 이벤트로 입력을 받고, 이벤트로 응답함.
      • 커뮤니케이션 수단 : 메시징, HTTP, REST
    • 메시지 기반의 종단점
      • 결합도를 낮추는 고수준의 수단을 제공함.
  • 서비스 추상화
    • 단순히 서비스의 구현실체를 추상화하는 것보다 모든 라이브러리와 제반 환경 전체를 추상화
  • 서비스 재사용
    • 마이크로서비스의 서비스는 재사용이 가능함.
  • 무상태
    • 제대로 설계된 마이크로 서비스는 상태가 없음.
    • 서비스에 의해 관리되는 어떤 공유 상태와도 아무런 정보도 공유하지 않음.
    • 상태를 관리하게 요구사항이 정의가 있다면, DB or Memory 를 이용해서 상태를 관리함.
  • 탐색가능한 서비스
    • 탐색을 통해서 찾을 수 있음.
    • 서비스는 자신의 존재를 스스로 드러내서 알리고, 탐색에 의해 찾아지고 사용될 수 있게함.
  • 서비스 호환성
    • 표준 프로토콜 / 메시지 교환 표준을 준수
      • 즉, 호환성이 좋음.
    • 전송 매커니즘
      • 메시징 / HTTP 와 같은 표준 방식 사용.
    • 커뮤니케이션 부문의 최적화
      • 프로토콜 버퍼 / 스리프트 / 아브로 / 제로엠큐 등등 다른 프토토콜 사용 가능.
      • but, 비표준 프로토콜을 사용시, 서비스의 전체적인 호환성은 제약을 받을 수 밖에 없음.
  • 서비스 조립성
    • 서비스는 조립이 가능함.
    • 조립성 확보
      • 서비스 오케스트레이션(service orchestration) / 서비스 연출(service choreography) 을 통해 확보가능.            

 참고사항

  • SOA 패턴
  • 서비스 오케스트레이션(service orchestration) 이란?
    • 메시지 교환을 담당하는 어떤 주체를 통해 메시지를 주고 받는 방식을 의미
  • 서비스 연출(service choreography) 이란?
728x90
300x250