Service Connectivity

연결성을 만드는 방법 (클라우드 네이티브 애플리케이션 들을 연결):

  • 동기 or 비동기 통신 패턴을 사용하여
  • RPC 패턴
  • Pub Sub 패턴

온라인 쇼핑몰 애플리케이션의 예:

  • 상품목록이나 주문과 같이 외부 에 제공되는 서비스의 경우 REST 나 GraphQL 을 사용
  • 주문과 결제 서비스간 통신과 같은 내부 서비스간 통신에는 카프카 브로커를 이용한 비동기 메시지 패턴 사용
  • 대부분의 마이크로서비스간 통신은 gRPC 사용

세분화된 서비스가 많다면 = 연결해야하는 마이크로서비스가 많다 = 복잡도 증가:

  • 서비스를 어느 정도 단위로 세분화 할 것인지 파악해야 함
  • 서비스를 기능/도구 단위가 아닌 비지니스 기능 단위로 정의
  • 애플리케이션이 동작하는 데 꼭 필요하지 않은 기능은 사이드카(sidecar) 와 같은 다른 계층에서 구현해야함
    • 비지니스 로직과 관련되지 않은 인프라스트럭처(infrastructure)네트워크(network) 같은 정보는 연결성 구현 시 사용하거나 노출해서는 안됨.

References

  • Design Patterns for Cloud Native Applications / Kasun Indrasiri, Sriskandarajah Suhothayan Author / O'REILLY