[MSA + Spring] 공부하기 3일차

김준영·2022년 10월 5일
1

MSA + Spring

목록 보기
3/4
post-thumbnail

핵심 마이크로서비스 개발 패턴


  • 서비스 세분성

    비즈니스 도메인을 마이크로서비스로 분해하여 각 서비스가 적정 수준의 책임을 갖도록 하는 방법은 어떤 것이 있을까?

  • 통신 프로토콜

    개발자는 서비스와 어떻게 통신할까?

    • 동기 프로토콜 : XML, JSON = HTTP 기반 REST
    • 비동기 프로토콜 : RabbitMQ, 아파치 카프카 = AMQP
  • 인터페이스 설계

    개발자가 서비스를 호출할 때 사용될 실제 서비스 인터페이스를 설계하는 가장 좋은 방법은 어떤 것이 있을까?

  • 서비스 구성 관리

    클라우드에 있는 서로 다른 환경 간 마이크로서비스의 구성을 호환하려면 어떻게 구성을 관리해야 하는가?

  • 서비스 간 이벤트 처리

    서비스간 하드코딩된 의존성을 최소화하고 애플리케이션의 탄력성을 높이고자 이벤트를 사용하여 서비스를 분리하는 방법은 무엇인가?


    마이크로서비스 라우팅 패턴


    마이크로서비스 라우팅 패턴?

    마이크로 서비스를 사용하려는 클라이언트 애플리케이션이 서비스 위치를 발견하고 서비스로 라우팅하는 방법에 관한 것이다.


  • 서비스 디스커버리

    서비스 디스커버리와 그 핵심 기능인 서비스 레지스트리를 사용하면 마이크로서비스를 탐색 가능하여 클라이언트 애플리케이션은 서비스 위치를 하드코딩하지 않아도 서비스를 찾을 수 있다.

  • 서비스 라우팅

    API 게이트웨이를 사용하면 모든 서비스에 대한 단일 진입점을 제공하여 마이크로서비스 애플리케이션의 여러 서비스와 서비스 인스턴스에 대해 일관된 보안 정책과 라우팅 규칙을 적용할 수 있다.


    마이크로서비스 클라이언트 회복성


    마이크로서비스 아키텍처는 고도로 분산되어 있어 하나의 서비스의 문제가 연쇄적으로 서비스 소비자까지 전파되는 것을 막는 데 매우 신중해야 한다.

  • 클라이언트 부하 분산

    마이크로서비스의 여러 인스턴스에 대한 호출이 정상 인스턴스에 분산되도록 서비스 인스턴스 위치를 캐싱하는 방법이다.

  • 회로 차단기 패턴

    실패 중이거나 성능 문제를 겪고 있는 서비스를 계속 호출하지 않도록 하는 방법이다.

  • 폴백 패턴

    마이크로서비스 호출이 실패할 때 호출되는 마이크로서비스가 아닌 다른 수단으로 서비스 클라이언트가 작업을 수행하도록 '플러그인' 메커니즘을 제공하는 방법이다.

  • 벌크헤드(격벽) 패턴

    마이크로서비스 애플리케이션은 작업을 수행하는 데 많은 분산 자원을 사용한다. 이 패턴은 한 서비스의 오작동 호출이 애플리케이션의 다른 곳에 나쁜 영향을 미치지 않도록 호출을 격리하는 방법이다.


    마이크로서비스 보안 패턴


    마이크로서비스 노출을 피하려면 적절한 자격 증명을 가진 승인된 요청만 서비스를 호출할 수 있도록 보안 패턴을 아키텍처에 적용하는 것이 중요하다.


  • 인증

    서비스를 호출하는 서비스 클라이언트가 누구인지 확인하는 방법이다.

  • 인가(권한 부여)

    마이크로서비스를 호출하는 서비스 클라이언트가 수행하려는 행동에 대한 수행 자격 여부를 확인하는 방법이다.

  • 자격 증명 관리와 전파

    서비스 클라이언트가 한 트랜잭션에서 여러 서비스를 호출할 때 계속해서 자격 증명을 제시하지 않는 방법이다.
    ex) OAuth2, JWT


    마이크로서비스 로깅과 추적 패턴


    • 로그 상관관계
    • 로그 수집
    • 마이크로서비스 추적

    애플리케이션 지표 패턴


    애플리케이션 지표 패턴?

    애플리케이션이 지표를 모니터링하는 방법과 애플리케이션의 가능한 실패 원인을 경고하는 방법을 다룬다.
    이 패턴은 서비스의 잠재적인 성능 문제를 방지하고자 지표 서비스가 비즈니스와 연관된 데이터를 수집, 저장, 질의 하는 방법을 보여 준다.

    • 지표 : 애플리케이션 상태에 대해 중요한 정보를 생성하고 이 정보의 지표를 노출하는 방법이다.
    • 지표 서비스 : 애플리케이션 지표를 저장하고 질의하는 곳이다.
    • 지표 시각화 제품군 : 애플리케이션과 인프라스트럭처에 대해 비즈니스와 연관된 시계열 데이터를 시각화 한다.

    마이크로서비스 빌드/배포 패턴


    이 패턴의 목표는 인프라스트럭처 구성을 빌드/배포 프로세스에 통합해서 자바 WAR나 EAR 파일 등 소프트웨어 산출물을 이미 실행 중인 인프라스트럭처에 더 이상 배포하지 않는 것이다.
    그 대신 빌드 프로세스 일부로 수행 중인 마이크로서비스와 가상 서버 이미지를 빌드하고 컴파일한다.
    그런 다음 마이크로서비스가 배포되면 서버에서 실행 중인 전체 머신 이미지가 배포된다.

profile
ㅎㅎ

0개의 댓글